@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/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @objectstack/runtime@3.
|
|
2
|
+
> @objectstack/runtime@3.1.1 build /home/runner/work/spec/spec/packages/runtime
|
|
3
3
|
> tsup --config ../../tsup.config.ts
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m Building entry: src/index.ts
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
[34mCLI[39m Cleaning output folder
|
|
11
11
|
[34mESM[39m Build start
|
|
12
12
|
[34mCJS[39m Build start
|
|
13
|
-
[
|
|
14
|
-
[
|
|
15
|
-
[
|
|
16
|
-
[
|
|
17
|
-
[
|
|
18
|
-
[
|
|
13
|
+
[32mCJS[39m [1mdist/index.cjs [22m[32m57.43 KB[39m
|
|
14
|
+
[32mCJS[39m [1mdist/index.cjs.map [22m[32m123.73 KB[39m
|
|
15
|
+
[32mCJS[39m ⚡️ Build success in 149ms
|
|
16
|
+
[32mESM[39m [1mdist/index.js [22m[32m55.51 KB[39m
|
|
17
|
+
[32mESM[39m [1mdist/index.js.map [22m[32m123.66 KB[39m
|
|
18
|
+
[32mESM[39m ⚡️ Build success in 167ms
|
|
19
19
|
[34mDTS[39m Build start
|
|
20
|
-
[32mDTS[39m ⚡️ Build success in
|
|
21
|
-
[32mDTS[39m [1mdist/index.d.ts [22m[32m20.
|
|
22
|
-
[32mDTS[39m [1mdist/index.d.cts [22m[32m20.
|
|
20
|
+
[32mDTS[39m ⚡️ Build success in 7492ms
|
|
21
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m20.64 KB[39m
|
|
22
|
+
[32mDTS[39m [1mdist/index.d.cts [22m[32m20.64 KB[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @objectstack/runtime
|
|
2
2
|
|
|
3
|
+
## 3.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [953d667]
|
|
8
|
+
- @objectstack/spec@3.1.1
|
|
9
|
+
- @objectstack/core@3.1.1
|
|
10
|
+
- @objectstack/rest@3.1.1
|
|
11
|
+
- @objectstack/types@3.1.1
|
|
12
|
+
|
|
13
|
+
## 3.1.0
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [0088830]
|
|
18
|
+
- @objectstack/spec@3.1.0
|
|
19
|
+
- @objectstack/core@3.1.0
|
|
20
|
+
- @objectstack/rest@3.1.0
|
|
21
|
+
- @objectstack/types@3.1.0
|
|
22
|
+
|
|
3
23
|
## 3.0.11
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/dist/index.cjs
CHANGED
|
@@ -376,6 +376,21 @@ var HttpDispatcher = class {
|
|
|
376
376
|
return { handled: true, response: this.success({ types: ["object", "app", "plugin"] }) };
|
|
377
377
|
}
|
|
378
378
|
}
|
|
379
|
+
if (parts.length === 3 && parts[2] === "published" && (!method || method === "GET")) {
|
|
380
|
+
const [type, name] = parts;
|
|
381
|
+
const metadataService = await this.getService(import_system.CoreServiceName.enum.metadata);
|
|
382
|
+
if (metadataService && typeof metadataService.getPublished === "function") {
|
|
383
|
+
const data = await metadataService.getPublished(type, name);
|
|
384
|
+
if (data === void 0) return { handled: true, response: this.error("Not found", 404) };
|
|
385
|
+
return { handled: true, response: this.success(data) };
|
|
386
|
+
}
|
|
387
|
+
try {
|
|
388
|
+
const data = await broker.call("metadata.getPublished", { type, name }, { request: context.request });
|
|
389
|
+
return { handled: true, response: this.success(data) };
|
|
390
|
+
} catch (e) {
|
|
391
|
+
return { handled: true, response: this.error(e.message, 404) };
|
|
392
|
+
}
|
|
393
|
+
}
|
|
379
394
|
if (parts.length === 2) {
|
|
380
395
|
const [type, name] = parts;
|
|
381
396
|
if (method === "PUT" && body) {
|
|
@@ -550,6 +565,8 @@ var HttpDispatcher = class {
|
|
|
550
565
|
* - DELETE /packages/:id → uninstall a package
|
|
551
566
|
* - PATCH /packages/:id/enable → enable a package
|
|
552
567
|
* - PATCH /packages/:id/disable → disable a package
|
|
568
|
+
* - POST /packages/:id/publish → publish a package (metadata snapshot)
|
|
569
|
+
* - POST /packages/:id/revert → revert a package to last published state
|
|
553
570
|
*
|
|
554
571
|
* Uses ObjectQL SchemaRegistry directly (via the 'objectql' service)
|
|
555
572
|
* with broker fallback for backward compatibility.
|
|
@@ -594,6 +611,32 @@ var HttpDispatcher = class {
|
|
|
594
611
|
if (!pkg) return { handled: true, response: this.error(`Package '${id}' not found`, 404) };
|
|
595
612
|
return { handled: true, response: this.success(pkg) };
|
|
596
613
|
}
|
|
614
|
+
if (parts.length === 2 && parts[1] === "publish" && m === "POST") {
|
|
615
|
+
const id = decodeURIComponent(parts[0]);
|
|
616
|
+
const metadataService = await this.getService(import_system.CoreServiceName.enum.metadata);
|
|
617
|
+
if (metadataService && typeof metadataService.publishPackage === "function") {
|
|
618
|
+
const result = await metadataService.publishPackage(id, body || {});
|
|
619
|
+
return { handled: true, response: this.success(result) };
|
|
620
|
+
}
|
|
621
|
+
if (this.kernel.broker) {
|
|
622
|
+
const result = await this.kernel.broker.call("metadata.publishPackage", { packageId: id, ...body }, { request: context.request });
|
|
623
|
+
return { handled: true, response: this.success(result) };
|
|
624
|
+
}
|
|
625
|
+
return { handled: true, response: this.error("Metadata service not available", 503) };
|
|
626
|
+
}
|
|
627
|
+
if (parts.length === 2 && parts[1] === "revert" && m === "POST") {
|
|
628
|
+
const id = decodeURIComponent(parts[0]);
|
|
629
|
+
const metadataService = await this.getService(import_system.CoreServiceName.enum.metadata);
|
|
630
|
+
if (metadataService && typeof metadataService.revertPackage === "function") {
|
|
631
|
+
await metadataService.revertPackage(id);
|
|
632
|
+
return { handled: true, response: this.success({ success: true }) };
|
|
633
|
+
}
|
|
634
|
+
if (this.kernel.broker) {
|
|
635
|
+
await this.kernel.broker.call("metadata.revertPackage", { packageId: id }, { request: context.request });
|
|
636
|
+
return { handled: true, response: this.success({ success: true }) };
|
|
637
|
+
}
|
|
638
|
+
return { handled: true, response: this.error("Metadata service not available", 503) };
|
|
639
|
+
}
|
|
597
640
|
if (parts.length === 1 && m === "GET") {
|
|
598
641
|
const id = decodeURIComponent(parts[0]);
|
|
599
642
|
const pkg = registry.getPackage(id);
|
|
@@ -1093,6 +1136,22 @@ function createDispatcherPlugin(config = {}) {
|
|
|
1093
1136
|
errorResponse(err, res);
|
|
1094
1137
|
}
|
|
1095
1138
|
});
|
|
1139
|
+
server.post(`${prefix}/packages/:id/publish`, async (req, res) => {
|
|
1140
|
+
try {
|
|
1141
|
+
const result = await dispatcher.handlePackages(`/${req.params.id}/publish`, "POST", req.body, {}, { request: req });
|
|
1142
|
+
sendResult(result, res);
|
|
1143
|
+
} catch (err) {
|
|
1144
|
+
errorResponse(err, res);
|
|
1145
|
+
}
|
|
1146
|
+
});
|
|
1147
|
+
server.post(`${prefix}/packages/:id/revert`, async (req, res) => {
|
|
1148
|
+
try {
|
|
1149
|
+
const result = await dispatcher.handlePackages(`/${req.params.id}/revert`, "POST", req.body, {}, { request: req });
|
|
1150
|
+
sendResult(result, res);
|
|
1151
|
+
} catch (err) {
|
|
1152
|
+
errorResponse(err, res);
|
|
1153
|
+
}
|
|
1154
|
+
});
|
|
1096
1155
|
server.post(`${prefix}/storage/upload`, async (req, res) => {
|
|
1097
1156
|
try {
|
|
1098
1157
|
const result = await dispatcher.handleStorage("upload", "POST", req.body, { request: req });
|