@objectstack/objectql 0.9.2 → 1.0.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.
- package/CHANGELOG.md +16 -0
- package/README.md +11 -375
- package/dist/engine.d.ts +67 -54
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +16 -0
- package/dist/plugin.d.ts +2 -2
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +33 -33
- package/dist/protocol.d.ts +19 -2
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +31 -2
- package/dist/registry.d.ts +515 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +29 -0
- package/package.json +5 -4
- package/src/engine.test.ts +156 -0
- package/src/engine.ts +17 -0
- package/src/plugin.ts +2 -2
- package/src/protocol.ts +37 -2
- package/src/registry.ts +30 -2
package/dist/plugin.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export declare class ObjectQLPlugin implements Plugin {
|
|
|
8
8
|
private ql;
|
|
9
9
|
private hostContext?;
|
|
10
10
|
constructor(ql?: ObjectQL, hostContext?: Record<string, any>);
|
|
11
|
-
init(ctx: PluginContext)
|
|
12
|
-
start(ctx: PluginContext)
|
|
11
|
+
init: (ctx: PluginContext) => Promise<void>;
|
|
12
|
+
start: (ctx: PluginContext) => Promise<void>;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=plugin.d.ts.map
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE1D,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AAEtC,qBAAa,cAAe,YAAW,MAAM;IAC3C,IAAI,SAAqC;IACzC,IAAI,EAAG,UAAU,CAAU;IAC3B,OAAO,SAAW;IAElB,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,WAAW,CAAC,CAAsB;gBAE9B,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE1D,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AAEtC,qBAAa,cAAe,YAAW,MAAM;IAC3C,IAAI,SAAqC;IACzC,IAAI,EAAG,UAAU,CAAU;IAC3B,OAAO,SAAW;IAElB,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,WAAW,CAAC,CAAsB;gBAE9B,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAS5D,IAAI,GAAU,KAAK,aAAa,mBAgB/B;IAED,KAAK,GAAU,KAAK,aAAa,mBAmBhC;CACF"}
|
package/dist/plugin.js
CHANGED
|
@@ -5,6 +5,39 @@ export class ObjectQLPlugin {
|
|
|
5
5
|
this.name = 'com.objectstack.engine.objectql';
|
|
6
6
|
this.type = 'objectql';
|
|
7
7
|
this.version = '1.0.0';
|
|
8
|
+
this.init = async (ctx) => {
|
|
9
|
+
if (!this.ql) {
|
|
10
|
+
this.ql = new ObjectQL(this.hostContext);
|
|
11
|
+
}
|
|
12
|
+
ctx.registerService('objectql', this.ql);
|
|
13
|
+
ctx.logger.info('ObjectQL engine registered as service');
|
|
14
|
+
// Register Protocol Implementation
|
|
15
|
+
if (!this.ql) {
|
|
16
|
+
throw new Error('ObjectQL engine not initialized');
|
|
17
|
+
}
|
|
18
|
+
const protocolShim = new ObjectStackProtocolImplementation(this.ql);
|
|
19
|
+
ctx.registerService('protocol', protocolShim);
|
|
20
|
+
ctx.logger.info('Protocol service registered');
|
|
21
|
+
};
|
|
22
|
+
this.start = async (ctx) => {
|
|
23
|
+
ctx.logger.info('ObjectQL engine initialized');
|
|
24
|
+
// Discover features from Kernel Services
|
|
25
|
+
if (ctx.getServices && this.ql) {
|
|
26
|
+
const services = ctx.getServices();
|
|
27
|
+
for (const [name, service] of services.entries()) {
|
|
28
|
+
if (name.startsWith('driver.')) {
|
|
29
|
+
// Register Driver
|
|
30
|
+
this.ql.registerDriver(service);
|
|
31
|
+
ctx.logger.debug('Discovered and registered driver service', { serviceName: name });
|
|
32
|
+
}
|
|
33
|
+
if (name.startsWith('app.')) {
|
|
34
|
+
// Register App
|
|
35
|
+
this.ql.registerApp(service); // service is Manifest
|
|
36
|
+
ctx.logger.debug('Discovered and registered app service', { serviceName: name });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
8
41
|
if (ql) {
|
|
9
42
|
this.ql = ql;
|
|
10
43
|
}
|
|
@@ -13,37 +46,4 @@ export class ObjectQLPlugin {
|
|
|
13
46
|
// Lazily created in init
|
|
14
47
|
}
|
|
15
48
|
}
|
|
16
|
-
async init(ctx) {
|
|
17
|
-
if (!this.ql) {
|
|
18
|
-
this.ql = new ObjectQL(this.hostContext);
|
|
19
|
-
}
|
|
20
|
-
ctx.registerService('objectql', this.ql);
|
|
21
|
-
ctx.logger.info('ObjectQL engine registered as service');
|
|
22
|
-
// Register Protocol Implementation
|
|
23
|
-
if (!this.ql) {
|
|
24
|
-
throw new Error('ObjectQL engine not initialized');
|
|
25
|
-
}
|
|
26
|
-
const protocolShim = new ObjectStackProtocolImplementation(this.ql);
|
|
27
|
-
ctx.registerService('protocol', protocolShim);
|
|
28
|
-
ctx.logger.info('Protocol service registered');
|
|
29
|
-
}
|
|
30
|
-
async start(ctx) {
|
|
31
|
-
ctx.logger.info('ObjectQL engine initialized');
|
|
32
|
-
// Discover features from Kernel Services
|
|
33
|
-
if (ctx.getServices && this.ql) {
|
|
34
|
-
const services = ctx.getServices();
|
|
35
|
-
for (const [name, service] of services.entries()) {
|
|
36
|
-
if (name.startsWith('driver.')) {
|
|
37
|
-
// Register Driver
|
|
38
|
-
this.ql.registerDriver(service);
|
|
39
|
-
ctx.logger.debug('Discovered and registered driver service', { serviceName: name });
|
|
40
|
-
}
|
|
41
|
-
if (name.startsWith('app.')) {
|
|
42
|
-
// Register App
|
|
43
|
-
this.ql.registerApp(service); // service is Manifest
|
|
44
|
-
ctx.logger.debug('Discovered and registered app service', { serviceName: name });
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
49
|
}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -8,8 +8,19 @@ export declare class ObjectStackProtocolImplementation implements ObjectStackPro
|
|
|
8
8
|
getDiscovery(_request: {}): Promise<{
|
|
9
9
|
version: string;
|
|
10
10
|
apiName: string;
|
|
11
|
-
capabilities:
|
|
12
|
-
|
|
11
|
+
capabilities: {
|
|
12
|
+
graphql: boolean;
|
|
13
|
+
search: boolean;
|
|
14
|
+
websockets: boolean;
|
|
15
|
+
files: boolean;
|
|
16
|
+
analytics: boolean;
|
|
17
|
+
hub: boolean;
|
|
18
|
+
};
|
|
19
|
+
endpoints: {
|
|
20
|
+
data: string;
|
|
21
|
+
metadata: string;
|
|
22
|
+
auth: string;
|
|
23
|
+
};
|
|
13
24
|
}>;
|
|
14
25
|
getMetaTypes(_request: {}): Promise<{
|
|
15
26
|
types: string[];
|
|
@@ -89,6 +100,12 @@ export declare class ObjectStackProtocolImplementation implements ObjectStackPro
|
|
|
89
100
|
records: any[];
|
|
90
101
|
}): Promise<any>;
|
|
91
102
|
updateManyData(_request: UpdateManyDataRequest): Promise<any>;
|
|
103
|
+
analyticsQuery(_request: any): Promise<any>;
|
|
104
|
+
getAnalyticsMeta(_request: any): Promise<any>;
|
|
105
|
+
triggerAutomation(_request: any): Promise<any>;
|
|
106
|
+
listSpaces(_request: any): Promise<any>;
|
|
107
|
+
createSpace(_request: any): Promise<any>;
|
|
108
|
+
installPlugin(_request: any): Promise<any>;
|
|
92
109
|
deleteManyData(request: DeleteManyDataRequest): Promise<any>;
|
|
93
110
|
}
|
|
94
111
|
//# sourceMappingURL=protocol.d.ts.map
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EACR,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAmBzF,qBAAa,iCAAkC,YAAW,mBAAmB;IACzE,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,WAAW;IAIzB,YAAY,CAAC,QAAQ,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EACR,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAmBzF,qBAAa,iCAAkC,YAAW,mBAAmB;IACzE,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,WAAW;IAIzB,YAAY,CAAC,QAAQ,EAAE,EAAE;;;;;;;;;;;;;;;;;IAoBzB,YAAY,CAAC,QAAQ,EAAE,EAAE;;;IAMzB,YAAY,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;;IAOtC,WAAW,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;IAQnD,SAAS,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IA+B5D,QAAQ,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE;;;;;;;IAsBjD,OAAO,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE;;;;;IAc/C,UAAU,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;;;;;IASjD,UAAU,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;;;;;IAU7D,UAAU,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE;;;;;IAclD,iBAAiB,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA4C/H,SAAS,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,kBAAkB,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQlG,cAAc,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IASzE,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC;IAK7D,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAI3C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7C,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9C,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvC,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAIxC,aAAa,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAI1C,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC;CAQrE"}
|
package/dist/protocol.js
CHANGED
|
@@ -21,8 +21,19 @@ export class ObjectStackProtocolImplementation {
|
|
|
21
21
|
return {
|
|
22
22
|
version: '1.0',
|
|
23
23
|
apiName: 'ObjectStack API',
|
|
24
|
-
capabilities:
|
|
25
|
-
|
|
24
|
+
capabilities: {
|
|
25
|
+
graphql: false,
|
|
26
|
+
search: false,
|
|
27
|
+
websockets: false,
|
|
28
|
+
files: true,
|
|
29
|
+
analytics: false,
|
|
30
|
+
hub: false
|
|
31
|
+
},
|
|
32
|
+
endpoints: {
|
|
33
|
+
data: '/api/data',
|
|
34
|
+
metadata: '/api/meta',
|
|
35
|
+
auth: '/api/auth'
|
|
36
|
+
}
|
|
26
37
|
};
|
|
27
38
|
}
|
|
28
39
|
async getMetaTypes(_request) {
|
|
@@ -197,6 +208,24 @@ export class ObjectStackProtocolImplementation {
|
|
|
197
208
|
// TODO: Implement proper updateMany in DataEngine
|
|
198
209
|
throw new Error('updateManyData not implemented');
|
|
199
210
|
}
|
|
211
|
+
async analyticsQuery(_request) {
|
|
212
|
+
throw new Error('analyticsQuery not implemented');
|
|
213
|
+
}
|
|
214
|
+
async getAnalyticsMeta(_request) {
|
|
215
|
+
throw new Error('getAnalyticsMeta not implemented');
|
|
216
|
+
}
|
|
217
|
+
async triggerAutomation(_request) {
|
|
218
|
+
throw new Error('triggerAutomation not implemented');
|
|
219
|
+
}
|
|
220
|
+
async listSpaces(_request) {
|
|
221
|
+
throw new Error('listSpaces not implemented');
|
|
222
|
+
}
|
|
223
|
+
async createSpace(_request) {
|
|
224
|
+
throw new Error('createSpace not implemented');
|
|
225
|
+
}
|
|
226
|
+
async installPlugin(_request) {
|
|
227
|
+
throw new Error('installPlugin not implemented');
|
|
228
|
+
}
|
|
200
229
|
async deleteManyData(request) {
|
|
201
230
|
// This expects deleting by IDs.
|
|
202
231
|
return this.engine.delete(request.object, {
|