@objectstack/runtime 3.0.11 → 3.1.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 +10 -10
- package/CHANGELOG.md +20 -0
- package/dist/index.cjs +59 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/src/dispatcher-plugin.ts +18 -0
- package/src/http-dispatcher.test.ts +120 -0
- package/src/http-dispatcher.ts +52 -0
package/dist/index.d.cts
CHANGED
|
@@ -491,6 +491,8 @@ declare class HttpDispatcher {
|
|
|
491
491
|
* - DELETE /packages/:id → uninstall a package
|
|
492
492
|
* - PATCH /packages/:id/enable → enable a package
|
|
493
493
|
* - PATCH /packages/:id/disable → disable a package
|
|
494
|
+
* - POST /packages/:id/publish → publish a package (metadata snapshot)
|
|
495
|
+
* - POST /packages/:id/revert → revert a package to last published state
|
|
494
496
|
*
|
|
495
497
|
* Uses ObjectQL SchemaRegistry directly (via the 'objectql' service)
|
|
496
498
|
* with broker fallback for backward compatibility.
|
package/dist/index.d.ts
CHANGED
|
@@ -491,6 +491,8 @@ declare class HttpDispatcher {
|
|
|
491
491
|
* - DELETE /packages/:id → uninstall a package
|
|
492
492
|
* - PATCH /packages/:id/enable → enable a package
|
|
493
493
|
* - PATCH /packages/:id/disable → disable a package
|
|
494
|
+
* - POST /packages/:id/publish → publish a package (metadata snapshot)
|
|
495
|
+
* - POST /packages/:id/revert → revert a package to last published state
|
|
494
496
|
*
|
|
495
497
|
* Uses ObjectQL SchemaRegistry directly (via the 'objectql' service)
|
|
496
498
|
* with broker fallback for backward compatibility.
|
package/dist/index.js
CHANGED
|
@@ -340,6 +340,21 @@ var HttpDispatcher = class {
|
|
|
340
340
|
return { handled: true, response: this.success({ types: ["object", "app", "plugin"] }) };
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
|
+
if (parts.length === 3 && parts[2] === "published" && (!method || method === "GET")) {
|
|
344
|
+
const [type, name] = parts;
|
|
345
|
+
const metadataService = await this.getService(CoreServiceName.enum.metadata);
|
|
346
|
+
if (metadataService && typeof metadataService.getPublished === "function") {
|
|
347
|
+
const data = await metadataService.getPublished(type, name);
|
|
348
|
+
if (data === void 0) return { handled: true, response: this.error("Not found", 404) };
|
|
349
|
+
return { handled: true, response: this.success(data) };
|
|
350
|
+
}
|
|
351
|
+
try {
|
|
352
|
+
const data = await broker.call("metadata.getPublished", { type, name }, { request: context.request });
|
|
353
|
+
return { handled: true, response: this.success(data) };
|
|
354
|
+
} catch (e) {
|
|
355
|
+
return { handled: true, response: this.error(e.message, 404) };
|
|
356
|
+
}
|
|
357
|
+
}
|
|
343
358
|
if (parts.length === 2) {
|
|
344
359
|
const [type, name] = parts;
|
|
345
360
|
if (method === "PUT" && body) {
|
|
@@ -514,6 +529,8 @@ var HttpDispatcher = class {
|
|
|
514
529
|
* - DELETE /packages/:id → uninstall a package
|
|
515
530
|
* - PATCH /packages/:id/enable → enable a package
|
|
516
531
|
* - PATCH /packages/:id/disable → disable a package
|
|
532
|
+
* - POST /packages/:id/publish → publish a package (metadata snapshot)
|
|
533
|
+
* - POST /packages/:id/revert → revert a package to last published state
|
|
517
534
|
*
|
|
518
535
|
* Uses ObjectQL SchemaRegistry directly (via the 'objectql' service)
|
|
519
536
|
* with broker fallback for backward compatibility.
|
|
@@ -558,6 +575,32 @@ var HttpDispatcher = class {
|
|
|
558
575
|
if (!pkg) return { handled: true, response: this.error(`Package '${id}' not found`, 404) };
|
|
559
576
|
return { handled: true, response: this.success(pkg) };
|
|
560
577
|
}
|
|
578
|
+
if (parts.length === 2 && parts[1] === "publish" && m === "POST") {
|
|
579
|
+
const id = decodeURIComponent(parts[0]);
|
|
580
|
+
const metadataService = await this.getService(CoreServiceName.enum.metadata);
|
|
581
|
+
if (metadataService && typeof metadataService.publishPackage === "function") {
|
|
582
|
+
const result = await metadataService.publishPackage(id, body || {});
|
|
583
|
+
return { handled: true, response: this.success(result) };
|
|
584
|
+
}
|
|
585
|
+
if (this.kernel.broker) {
|
|
586
|
+
const result = await this.kernel.broker.call("metadata.publishPackage", { packageId: id, ...body }, { request: context.request });
|
|
587
|
+
return { handled: true, response: this.success(result) };
|
|
588
|
+
}
|
|
589
|
+
return { handled: true, response: this.error("Metadata service not available", 503) };
|
|
590
|
+
}
|
|
591
|
+
if (parts.length === 2 && parts[1] === "revert" && m === "POST") {
|
|
592
|
+
const id = decodeURIComponent(parts[0]);
|
|
593
|
+
const metadataService = await this.getService(CoreServiceName.enum.metadata);
|
|
594
|
+
if (metadataService && typeof metadataService.revertPackage === "function") {
|
|
595
|
+
await metadataService.revertPackage(id);
|
|
596
|
+
return { handled: true, response: this.success({ success: true }) };
|
|
597
|
+
}
|
|
598
|
+
if (this.kernel.broker) {
|
|
599
|
+
await this.kernel.broker.call("metadata.revertPackage", { packageId: id }, { request: context.request });
|
|
600
|
+
return { handled: true, response: this.success({ success: true }) };
|
|
601
|
+
}
|
|
602
|
+
return { handled: true, response: this.error("Metadata service not available", 503) };
|
|
603
|
+
}
|
|
561
604
|
if (parts.length === 1 && m === "GET") {
|
|
562
605
|
const id = decodeURIComponent(parts[0]);
|
|
563
606
|
const pkg = registry.getPackage(id);
|
|
@@ -1057,6 +1100,22 @@ function createDispatcherPlugin(config = {}) {
|
|
|
1057
1100
|
errorResponse(err, res);
|
|
1058
1101
|
}
|
|
1059
1102
|
});
|
|
1103
|
+
server.post(`${prefix}/packages/:id/publish`, async (req, res) => {
|
|
1104
|
+
try {
|
|
1105
|
+
const result = await dispatcher.handlePackages(`/${req.params.id}/publish`, "POST", req.body, {}, { request: req });
|
|
1106
|
+
sendResult(result, res);
|
|
1107
|
+
} catch (err) {
|
|
1108
|
+
errorResponse(err, res);
|
|
1109
|
+
}
|
|
1110
|
+
});
|
|
1111
|
+
server.post(`${prefix}/packages/:id/revert`, async (req, res) => {
|
|
1112
|
+
try {
|
|
1113
|
+
const result = await dispatcher.handlePackages(`/${req.params.id}/revert`, "POST", req.body, {}, { request: req });
|
|
1114
|
+
sendResult(result, res);
|
|
1115
|
+
} catch (err) {
|
|
1116
|
+
errorResponse(err, res);
|
|
1117
|
+
}
|
|
1118
|
+
});
|
|
1060
1119
|
server.post(`${prefix}/storage/upload`, async (req, res) => {
|
|
1061
1120
|
try {
|
|
1062
1121
|
const result = await dispatcher.handleStorage("upload", "POST", req.body, { request: req });
|