Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
97314842eb | ||
|
|
e52474b96b |
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"monorepoCommit": "099bb9f5d64bce50b20b6cb51d5333f009b8d418",
|
||||||
|
"sourcePath": "quixos-instance/packages/project-react-runtime"
|
||||||
|
}
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
|
# Generated by qx-scaffold-v1
|
||||||
package_id: "package:project-react-runtime"
|
package_id: "package:project-react-runtime"
|
||||||
package_revision_id: "package:project-react-runtime@1"
|
package_revision_id: "package:project-react-runtime@1"
|
||||||
runtime_protocol_version: "quixos-capabilities-v1"
|
runtime_protocol_version: "quixos-capabilities-v1"
|
||||||
exports: { export_id: "export:project-react-runtime:create-component" runtime_symbol: "createComponent" }
|
exports: { export_id: "export:project-react-runtime:create-component" runtime_symbol: "createComponent" }
|
||||||
exports: { export_id: "export:project-react-runtime:source-get" runtime_symbol: "source.get" }
|
exports: { export_id: "export:project-react-runtime:source-get" runtime_symbol: "sourceGet" }
|
||||||
exports: { export_id: "export:project-react-runtime:props-get" runtime_symbol: "props.get" }
|
exports: { export_id: "export:project-react-runtime:props-get" runtime_symbol: "propsGet" }
|
||||||
exports: { export_id: "export:project-react-runtime:props-watch" runtime_symbol: "props.watch" }
|
exports: { export_id: "export:project-react-runtime:props-watch" runtime_symbol: "propsWatch" }
|
||||||
exports: { export_id: "export:project-react-runtime:props-watch-stop" runtime_symbol: "props.watchStop" }
|
exports: { export_id: "export:project-react-runtime:props-watch-stop" runtime_symbol: "propsWatchStop" }
|
||||||
|
|||||||
Generated
+7
-7
@@ -37,17 +37,17 @@
|
|||||||
"quixosNixHelpers": {
|
"quixosNixHelpers": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1788543053,
|
"lastModified": 1789444178,
|
||||||
"narHash": "sha256-3YReATWEVxZinYVi/l3cwOz+oFoZUrwj24kUBQTmUpQ=",
|
"narHash": "sha256-/a560j65vYLy/gcwa662cJLo09C14Kj6YjvItC+Ugfo=",
|
||||||
"ref": "refs/tags/quixos-reachability/56bbcd22d17f8c7f120b1e0b5bd1d5a86e91a80a",
|
"ref": "refs/tags/quixos-reachability/6657af7ca0501454f27032141c57dd09e7ecd79c",
|
||||||
"rev": "56bbcd22d17f8c7f120b1e0b5bd1d5a86e91a80a",
|
"rev": "6657af7ca0501454f27032141c57dd09e7ecd79c",
|
||||||
"revCount": 8,
|
"revCount": 27,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git"
|
"url": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"ref": "refs/tags/quixos-reachability/56bbcd22d17f8c7f120b1e0b5bd1d5a86e91a80a",
|
"ref": "refs/tags/quixos-reachability/6657af7ca0501454f27032141c57dd09e7ecd79c",
|
||||||
"rev": "56bbcd22d17f8c7f120b1e0b5bd1d5a86e91a80a",
|
"rev": "6657af7ca0501454f27032141c57dd09e7ecd79c",
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git"
|
"url": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
|
||||||
quixosNixHelpers = {
|
quixosNixHelpers = {
|
||||||
url = "git+https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git?ref=refs/tags/quixos-reachability/56bbcd22d17f8c7f120b1e0b5bd1d5a86e91a80a&rev=56bbcd22d17f8c7f120b1e0b5bd1d5a86e91a80a";
|
url = "git+https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git?ref=refs/tags/quixos-reachability/6657af7ca0501454f27032141c57dd09e7ecd79c&rev=6657af7ca0501454f27032141c57dd09e7ecd79c";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -18,19 +18,15 @@
|
|||||||
quixosHelpers.mkCaminoTsYarnNixifyFlake {
|
quixosHelpers.mkCaminoTsYarnNixifyFlake {
|
||||||
inherit inputs nixpkgs flake-utils;
|
inherit inputs nixpkgs flake-utils;
|
||||||
packageRoot = ./.;
|
packageRoot = ./.;
|
||||||
|
migrationEntrypoint = "dist/migrate.js";
|
||||||
promptName = "project-react-runtime";
|
promptName = "project-react-runtime";
|
||||||
bundle = {
|
bundle = {
|
||||||
entry = "dist/server.js";
|
entry = "src/server.ts";
|
||||||
|
browserSources = true;
|
||||||
};
|
};
|
||||||
installServer = {
|
installServer = {
|
||||||
libexecName = "project-react-runtime";
|
libexecName = "project-react-runtime";
|
||||||
descriptorPath = "descriptor.quixos-package.txtpb";
|
descriptorPath = "descriptor.quixos-package.txtpb";
|
||||||
extraFiles = [
|
|
||||||
{
|
|
||||||
source = "dist/project-component.mjs";
|
|
||||||
target = "project-component.mjs";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -8,11 +8,11 @@
|
|||||||
"server": "dist/server.js"
|
"server": "dist/server.js"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "rm -rf dist && tsc -p tsconfig.build.json && node scripts/build-component.mjs",
|
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
||||||
"typecheck": "tsc --noEmit"
|
"typecheck": "tsc --noEmit"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@quixos/camino-package-runtime": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=a998690446ecf647e3af78e369492c1a3663b66d",
|
"@quixos/camino-package-runtime": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=d3d050d9cb84421fd8043ebe34fd0cae9132f6a2",
|
||||||
"react": "^18.3.1"
|
"react": "^18.3.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"backend": "typescript",
|
||||||
|
"bindingOutput": "src/gen/qx.ts",
|
||||||
|
"options": {
|
||||||
|
"messages": {
|
||||||
|
"org.quixos.web-studio.ReactProps": {
|
||||||
|
"module": "@quixos/camino-package-runtime",
|
||||||
|
"export": "opaqueReactPropsBinding"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+3
-5
@@ -1,16 +1,14 @@
|
|||||||
quixos-lock version 1 {
|
quixos-lock version 1 {
|
||||||
quixos source {
|
quixos source {
|
||||||
repository "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos.git";
|
repository "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos.git";
|
||||||
commit "9c3ab572ecfbc83785038c3d9f174516df15d63f";
|
commit "099bb9f5d64bce50b20b6cb51d5333f009b8d418";
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Named source {
|
interface Named source {
|
||||||
repository "https://repos.quixos.org/quixos-templates/interface-named.git";
|
repository "https://repos.quixos.org/quixos-templates/interface-named.git";
|
||||||
commit "14be607ed250f8c3ce1633558573fc1449f6f2a1";
|
commit "59debb4a72353ea1740fe15252a52cd1086882bd";
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ProjectTasks source {
|
interface ProjectTasks source {
|
||||||
repository "https://repos.quixos.org/quixos-templates/interface-project-tasks.git";
|
repository "https://repos.quixos.org/quixos-templates/interface-project-tasks.git";
|
||||||
commit "2590966c1f95da08126f1cb830be7dcc6dc715d9";
|
commit "73f0b11bf0f2b5f808b68a803b6fdd3ce4aaac91";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"generatedBy": "qx-scaffold-v1",
|
||||||
|
"schemaVersion": 1,
|
||||||
|
"contracts": {},
|
||||||
|
"migrations": []
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"generatedBy": "qx-scaffold-v1",
|
||||||
|
"nixifyPluginUrl": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/yarn-plugin-nixify-patched/raw/commit/4528fdd20b30d869262443b3f044549810e75fb8/dist/yarn-plugin-nixify.js"
|
||||||
|
}
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
import { build } from "esbuild";
|
|
||||||
|
|
||||||
const platformModules = new Map([
|
|
||||||
[
|
|
||||||
"@quixos/web-studio-react-runtime",
|
|
||||||
"/__quixos/platform/web-studio-react-runtime/v1.mjs",
|
|
||||||
],
|
|
||||||
["react", "/__quixos/platform/react/v18.mjs"],
|
|
||||||
["react/jsx-runtime", "/__quixos/platform/react-jsx-runtime/v18.mjs"],
|
|
||||||
["react/jsx-dev-runtime", "/__quixos/platform/react-jsx-dev-runtime/v18.mjs"],
|
|
||||||
]);
|
|
||||||
|
|
||||||
await build({
|
|
||||||
entryPoints: ["dist/project-component.js"],
|
|
||||||
outfile: "dist/project-component.mjs",
|
|
||||||
bundle: true,
|
|
||||||
format: "esm",
|
|
||||||
platform: "browser",
|
|
||||||
target: "es2022",
|
|
||||||
sourcemap: true,
|
|
||||||
plugins: [
|
|
||||||
{
|
|
||||||
name: "quixos-platform-modules",
|
|
||||||
setup(buildApi) {
|
|
||||||
buildApi.onResolve({ filter: /.*/ }, (args) => {
|
|
||||||
const platformPath = platformModules.get(args.path);
|
|
||||||
return platformPath
|
|
||||||
? { path: platformPath, external: true }
|
|
||||||
: undefined;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
});
|
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
declare module "*?browser-source" { const source: string; export default source; }
|
||||||
+244
@@ -0,0 +1,244 @@
|
|||||||
|
// Generated by quixos-codegen-ts. Do not edit. Binding ABI version 1.
|
||||||
|
import { bindQxHandler, type BindingValue, type QxObjectRef, type QxWatchHandle, type QxHandler, type QxDerived, type QxContextLifecycle, type QxLiveValue, type QxHandlerSpec, type QxMessages } from "@quixos/camino-package-runtime";
|
||||||
|
import { opaqueReactPropsBinding as message0 } from "@quixos/camino-package-runtime";
|
||||||
|
export const packageRevisionId = "package:project-react-runtime@1";
|
||||||
|
export type Contexts = { "createComponent": { "objectId": QxObjectRef<"atom:atom:project-react-component">; "input": QxObjectRef<"atom:atom:project">; "ports": { } } & QxContextLifecycle<{ "objectId": QxObjectRef<"atom:atom:project-react-component">; "input": QxObjectRef<"atom:atom:project">; "ports": { } } & {signal?: AbortSignal}>; "propsGet": { "objectId": QxObjectRef<"atom:atom:project-react-component">; "input": null; "ports": { "named": { "objectId": QxObjectRef<"interface:interface:named@1">; "live": { "name.get": () => Promise<QxLiveValue>; "name.set": (input: string) => Promise<QxLiveValue> }; "name.get": () => Promise<string>; "name.set": (input: string) => Promise<null> }; "tasks": { "objectId": QxObjectRef<"interface:interface:project-tasks@1">; "live": { "tasks.resolve": () => Promise<QxLiveValue>; "tasks.connect": (input: QxObjectRef<"atom:atom:task">) => Promise<QxLiveValue>; "tasks.disconnect": (input: QxObjectRef<"atom:atom:task">) => Promise<QxLiveValue> }; "tasks.resolve": () => Promise<Array<QxObjectRef<"atom:atom:task">>>; "tasks.connect": (input: QxObjectRef<"atom:atom:task">) => Promise<null>; "tasks.disconnect": (input: QxObjectRef<"atom:atom:task">) => Promise<null> } } } & QxContextLifecycle<{ "objectId": QxObjectRef<"atom:atom:project-react-component">; "input": null; "ports": { "named": { "objectId": QxObjectRef<"interface:interface:named@1">; "live": { "name.get": () => Promise<QxLiveValue>; "name.set": (input: string) => Promise<QxLiveValue> }; "name.get": () => Promise<string>; "name.set": (input: string) => Promise<null> }; "tasks": { "objectId": QxObjectRef<"interface:interface:project-tasks@1">; "live": { "tasks.resolve": () => Promise<QxLiveValue>; "tasks.connect": (input: QxObjectRef<"atom:atom:task">) => Promise<QxLiveValue>; "tasks.disconnect": (input: QxObjectRef<"atom:atom:task">) => Promise<QxLiveValue> }; "tasks.resolve": () => Promise<Array<QxObjectRef<"atom:atom:task">>>; "tasks.connect": (input: QxObjectRef<"atom:atom:task">) => Promise<null>; "tasks.disconnect": (input: QxObjectRef<"atom:atom:task">) => Promise<null> } } } & {signal?: AbortSignal}>; "propsWatch": { "objectId": QxObjectRef<"atom:atom:project-react-component">; "input": null; "ports": { "named": { "objectId": QxObjectRef<"interface:interface:named@1">; "live": { "name.get": () => Promise<QxLiveValue>; "name.set": (input: string) => Promise<QxLiveValue> }; "name.get": () => Promise<string>; "name.set": (input: string) => Promise<null> }; "tasks": { "objectId": QxObjectRef<"interface:interface:project-tasks@1">; "live": { "tasks.resolve": () => Promise<QxLiveValue>; "tasks.connect": (input: QxObjectRef<"atom:atom:task">) => Promise<QxLiveValue>; "tasks.disconnect": (input: QxObjectRef<"atom:atom:task">) => Promise<QxLiveValue> }; "tasks.resolve": () => Promise<Array<QxObjectRef<"atom:atom:task">>>; "tasks.connect": (input: QxObjectRef<"atom:atom:task">) => Promise<null>; "tasks.disconnect": (input: QxObjectRef<"atom:atom:task">) => Promise<null> } } } & QxContextLifecycle<{ "objectId": QxObjectRef<"atom:atom:project-react-component">; "input": null; "ports": { "named": { "objectId": QxObjectRef<"interface:interface:named@1">; "live": { "name.get": () => Promise<QxLiveValue>; "name.set": (input: string) => Promise<QxLiveValue> }; "name.get": () => Promise<string>; "name.set": (input: string) => Promise<null> }; "tasks": { "objectId": QxObjectRef<"interface:interface:project-tasks@1">; "live": { "tasks.resolve": () => Promise<QxLiveValue>; "tasks.connect": (input: QxObjectRef<"atom:atom:task">) => Promise<QxLiveValue>; "tasks.disconnect": (input: QxObjectRef<"atom:atom:task">) => Promise<QxLiveValue> }; "tasks.resolve": () => Promise<Array<QxObjectRef<"atom:atom:task">>>; "tasks.connect": (input: QxObjectRef<"atom:atom:task">) => Promise<null>; "tasks.disconnect": (input: QxObjectRef<"atom:atom:task">) => Promise<null> } } } & {signal?: AbortSignal}>; "propsWatchStop": { "objectId": QxObjectRef<"atom:atom:project-react-component">; "input": QxWatchHandle; "ports": { } } & QxContextLifecycle<{ "objectId": QxObjectRef<"atom:atom:project-react-component">; "input": QxWatchHandle; "ports": { } } & {signal?: AbortSignal}>; "sourceGet": { "objectId": QxObjectRef<"atom:atom:project-react-component">; "input": null; "ports": { } } & QxContextLifecycle<{ "objectId": QxObjectRef<"atom:atom:project-react-component">; "input": null; "ports": { } } & {signal?: AbortSignal}> };
|
||||||
|
export type Implementation = { "createComponent": QxHandler<Contexts["createComponent"], QxObjectRef<"atom:atom:project-react-component">>; "propsGet": QxHandler<Contexts["propsGet"], BindingValue<typeof message0>> | QxDerived<Contexts["propsGet"], BindingValue<typeof message0>>; "propsWatch": QxDerived<Contexts["propsWatch"], BindingValue<typeof message0>>; "propsWatchStop": QxHandler<Contexts["propsWatchStop"], null>; "sourceGet": QxHandler<Contexts["sourceGet"], string> | QxDerived<Contexts["sourceGet"], string> };
|
||||||
|
const messages = { "org.quixos.web-studio.ReactProps": message0 } satisfies QxMessages;
|
||||||
|
const specs = {
|
||||||
|
"createComponent": {
|
||||||
|
"inputType": {
|
||||||
|
"kind": "object-ref",
|
||||||
|
"expectation": {
|
||||||
|
"kind": "atom",
|
||||||
|
"atomId": "atom:project"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "object-ref",
|
||||||
|
"expectation": {
|
||||||
|
"kind": "atom",
|
||||||
|
"atomId": "atom:project-react-component"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ports": {}
|
||||||
|
},
|
||||||
|
"propsGet": {
|
||||||
|
"inputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "message",
|
||||||
|
"descriptorId": "org.quixos.web-studio.ReactProps"
|
||||||
|
},
|
||||||
|
"ports": {
|
||||||
|
"named": {
|
||||||
|
"kind": "interface",
|
||||||
|
"id": "port:project-react:named",
|
||||||
|
"operations": {
|
||||||
|
"name.get": {
|
||||||
|
"id": "operation:named:name:get",
|
||||||
|
"inputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "scalar",
|
||||||
|
"name": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name.set": {
|
||||||
|
"id": "operation:named:name:set",
|
||||||
|
"inputType": {
|
||||||
|
"kind": "scalar",
|
||||||
|
"name": "string"
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tasks": {
|
||||||
|
"kind": "interface",
|
||||||
|
"id": "port:project-react:tasks",
|
||||||
|
"operations": {
|
||||||
|
"tasks.resolve": {
|
||||||
|
"id": "operation:project-tasks:tasks:resolve",
|
||||||
|
"inputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "list",
|
||||||
|
"value": {
|
||||||
|
"kind": "object-ref",
|
||||||
|
"expectation": {
|
||||||
|
"kind": "atom",
|
||||||
|
"atomId": "atom:task"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tasks.connect": {
|
||||||
|
"id": "operation:project-tasks:tasks:connect",
|
||||||
|
"inputType": {
|
||||||
|
"kind": "object-ref",
|
||||||
|
"expectation": {
|
||||||
|
"kind": "atom",
|
||||||
|
"atomId": "atom:task"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tasks.disconnect": {
|
||||||
|
"id": "operation:project-tasks:tasks:disconnect",
|
||||||
|
"inputType": {
|
||||||
|
"kind": "object-ref",
|
||||||
|
"expectation": {
|
||||||
|
"kind": "atom",
|
||||||
|
"atomId": "atom:task"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"propsWatch": {
|
||||||
|
"inputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "watch-handle"
|
||||||
|
},
|
||||||
|
"eventType": {
|
||||||
|
"kind": "message",
|
||||||
|
"descriptorId": "org.quixos.web-studio.ReactProps"
|
||||||
|
},
|
||||||
|
"ports": {
|
||||||
|
"named": {
|
||||||
|
"kind": "interface",
|
||||||
|
"id": "port:project-react:named",
|
||||||
|
"operations": {
|
||||||
|
"name.get": {
|
||||||
|
"id": "operation:named:name:get",
|
||||||
|
"inputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "scalar",
|
||||||
|
"name": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name.set": {
|
||||||
|
"id": "operation:named:name:set",
|
||||||
|
"inputType": {
|
||||||
|
"kind": "scalar",
|
||||||
|
"name": "string"
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tasks": {
|
||||||
|
"kind": "interface",
|
||||||
|
"id": "port:project-react:tasks",
|
||||||
|
"operations": {
|
||||||
|
"tasks.resolve": {
|
||||||
|
"id": "operation:project-tasks:tasks:resolve",
|
||||||
|
"inputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "list",
|
||||||
|
"value": {
|
||||||
|
"kind": "object-ref",
|
||||||
|
"expectation": {
|
||||||
|
"kind": "atom",
|
||||||
|
"atomId": "atom:task"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tasks.connect": {
|
||||||
|
"id": "operation:project-tasks:tasks:connect",
|
||||||
|
"inputType": {
|
||||||
|
"kind": "object-ref",
|
||||||
|
"expectation": {
|
||||||
|
"kind": "atom",
|
||||||
|
"atomId": "atom:task"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tasks.disconnect": {
|
||||||
|
"id": "operation:project-tasks:tasks:disconnect",
|
||||||
|
"inputType": {
|
||||||
|
"kind": "object-ref",
|
||||||
|
"expectation": {
|
||||||
|
"kind": "atom",
|
||||||
|
"atomId": "atom:task"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"propsWatchStop": {
|
||||||
|
"inputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "watch-handle"
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
},
|
||||||
|
"ports": {}
|
||||||
|
},
|
||||||
|
"sourceGet": {
|
||||||
|
"inputType": {
|
||||||
|
"kind": "builtin",
|
||||||
|
"name": "unit"
|
||||||
|
},
|
||||||
|
"outputType": {
|
||||||
|
"kind": "scalar",
|
||||||
|
"name": "string"
|
||||||
|
},
|
||||||
|
"ports": {}
|
||||||
|
}
|
||||||
|
} satisfies Record<string, QxHandlerSpec>;
|
||||||
|
export const createRuntime = (implementation: Implementation) => ({
|
||||||
|
packageRevisionId,
|
||||||
|
exports: {
|
||||||
|
"export:project-react-runtime:create-component": bindQxHandler(specs["createComponent"], implementation["createComponent"], messages),
|
||||||
|
"export:project-react-runtime:props-get": bindQxHandler(specs["propsGet"], implementation["propsGet"], messages),
|
||||||
|
"export:project-react-runtime:props-watch": bindQxHandler(specs["propsWatch"], implementation["propsWatch"], messages),
|
||||||
|
"export:project-react-runtime:props-watch-stop": bindQxHandler(specs["propsWatchStop"], implementation["propsWatchStop"], messages),
|
||||||
|
"export:project-react-runtime:source-get": bindQxHandler(specs["sourceGet"], implementation["sourceGet"], messages),
|
||||||
|
},
|
||||||
|
});
|
||||||
+2
@@ -1,4 +1,6 @@
|
|||||||
declare module "@quixos/web-studio-react-runtime" {
|
declare module "@quixos/web-studio-react-runtime" {
|
||||||
|
export function useComponentOverlayContainer(): HTMLElement;
|
||||||
|
export function useComponentStyleRoot(): ShadowRoot;
|
||||||
export type ObjectRef<AtomId extends string> = string & {
|
export type ObjectRef<AtomId extends string> = string & {
|
||||||
readonly $quixosAtom: AtomId;
|
readonly $quixosAtom: AtomId;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
// This adapter keeps the implementation file hand-authored.
|
||||||
|
export {createComponent as handler} from "../project-react.impl.js";
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
// This adapter keeps the implementation file hand-authored.
|
||||||
|
export {props as handler} from "../project-react.impl.js";
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
// This adapter keeps the implementation file hand-authored.
|
||||||
|
export {props as handler} from "../project-react.impl.js";
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
// This adapter keeps the implementation file hand-authored.
|
||||||
|
export {stopWatch as handler} from "../project-react.impl.js";
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
// This adapter keeps the implementation file hand-authored.
|
||||||
|
export {source as handler} from "../project-react.impl.js";
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
// Generated by qx-scaffold-v1
|
||||||
|
import {serveMigration} from "@quixos/camino-package-runtime";
|
||||||
|
await serveMigration({});
|
||||||
+10
-22
@@ -1,24 +1,12 @@
|
|||||||
import fs from "node:fs/promises";
|
import componentSource from "./project-component.js?browser-source";
|
||||||
import path from "node:path";
|
import type { Contexts } from "./gen/qx.js";
|
||||||
import { fileURLToPath } from "node:url";
|
|
||||||
import { derived, type RuntimeContext } from "@quixos/camino-package-runtime";
|
|
||||||
|
|
||||||
const dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
||||||
const componentSourcePath = path.join(dirname, "project-component.mjs");
|
|
||||||
|
|
||||||
export const source = async () => await fs.readFile(componentSourcePath, "utf8");
|
|
||||||
|
|
||||||
export const createComponent = (context: RuntimeContext) => context.objectId;
|
|
||||||
|
|
||||||
export const props = derived(async (context: RuntimeContext) => {
|
|
||||||
const named = context.interface("port:project-react:named");
|
|
||||||
const tasks = context.interface("port:project-react:tasks");
|
|
||||||
return {
|
|
||||||
project_id: named.objectId,
|
|
||||||
component_id: context.objectId,
|
|
||||||
name: await named.live("operation:named:name:get"),
|
|
||||||
tasks: await tasks.invoke("operation:project-tasks:tasks:resolve"),
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
|
export const source = () => componentSource;
|
||||||
|
export const createComponent = ({ objectId }: Contexts["createComponent"]) => objectId;
|
||||||
|
export const props = { kind: "derived" as const, get: async ({ objectId, ports }: Contexts["propsGet"]): Promise<Record<string, unknown>> => ({
|
||||||
|
project_id: ports.named.objectId,
|
||||||
|
component_id: objectId,
|
||||||
|
name: await ports.named.live["name.get"](),
|
||||||
|
tasks: await ports.tasks["tasks.resolve"](),
|
||||||
|
})};
|
||||||
export const stopWatch = () => null;
|
export const stopWatch = () => null;
|
||||||
|
|||||||
+15
-13
@@ -1,13 +1,15 @@
|
|||||||
import { servePackageRuntime } from "@quixos/camino-package-runtime";
|
// Generated by qx-scaffold-v1
|
||||||
import { createComponent, props, source, stopWatch } from "./project-react.impl.js";
|
import {servePackageRuntime} from "@quixos/camino-package-runtime";
|
||||||
|
import {createRuntime} from "./gen/qx.js";
|
||||||
servePackageRuntime({
|
import {handler as impl0} from "./impl/createComponent.js";
|
||||||
packageRevisionId: "package:project-react-runtime@1",
|
import {handler as impl1} from "./impl/sourceGet.js";
|
||||||
exports: {
|
import {handler as impl2} from "./impl/propsGet.js";
|
||||||
"export:project-react-runtime:create-component": createComponent,
|
import {handler as impl3} from "./impl/propsWatch.js";
|
||||||
"export:project-react-runtime:source-get": source,
|
import {handler as impl4} from "./impl/propsWatchStop.js";
|
||||||
"export:project-react-runtime:props-get": props,
|
servePackageRuntime(createRuntime({
|
||||||
"export:project-react-runtime:props-watch": props,
|
"createComponent": impl0,
|
||||||
"export:project-react-runtime:props-watch-stop": stopWatch,
|
"sourceGet": impl1,
|
||||||
},
|
"propsGet": impl2,
|
||||||
});
|
"propsWatch": impl3,
|
||||||
|
"propsWatchStop": impl4,
|
||||||
|
}));
|
||||||
|
|||||||
+8
-4
@@ -9,11 +9,15 @@
|
|||||||
"forceConsistentCasingInFileNames": true,
|
"forceConsistentCasingInFileNames": true,
|
||||||
"preserveSymlinks": true,
|
"preserveSymlinks": true,
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"types": ["node"],
|
"types": [
|
||||||
|
"node"
|
||||||
|
],
|
||||||
"outDir": "dist",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"jsx": "react",
|
"jsx": "react-jsx"
|
||||||
"jsxFactory": "h"
|
|
||||||
},
|
},
|
||||||
"include": ["src/**/*.ts", "src/**/*.tsx"]
|
"include": [
|
||||||
|
"src/**/*.ts",
|
||||||
|
"src/**/*.tsx"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -161,7 +161,7 @@ cacheEntries = {
|
|||||||
"@connectrpc/connect@npm:2.1.2" = { filename = "@connectrpc-connect-npm-2.1.2-ab34825de3-4e15000890.zip"; hash = "sha512-ThUACJAjt1Lv1E+pQKWuHh+gDhvrxLoM7ScruTWSDYw7hbd0UOZErUQruMqaJ1sMFxNviWuo7/A2F4Ex2wHWFQ=="; };
|
"@connectrpc/connect@npm:2.1.2" = { filename = "@connectrpc-connect-npm-2.1.2-ab34825de3-4e15000890.zip"; hash = "sha512-ThUACJAjt1Lv1E+pQKWuHh+gDhvrxLoM7ScruTWSDYw7hbd0UOZErUQruMqaJ1sMFxNviWuo7/A2F4Ex2wHWFQ=="; };
|
||||||
"@esbuild/linux-arm64@npm:0.25.12" = { filename = "@esbuild-linux-arm64-npm-0.25.12-a5aaa0e70e-10c0.zip"; hash = "sha512-tm9zhnNR4GZv4A+Sgbt9jdCJ0iGlzvYxGCaxaScbhFH14mX7QWJRYaCvFCZB1dseApmaq6mNwbilL0wJnbB8tw=="; };
|
"@esbuild/linux-arm64@npm:0.25.12" = { filename = "@esbuild-linux-arm64-npm-0.25.12-a5aaa0e70e-10c0.zip"; hash = "sha512-tm9zhnNR4GZv4A+Sgbt9jdCJ0iGlzvYxGCaxaScbhFH14mX7QWJRYaCvFCZB1dseApmaq6mNwbilL0wJnbB8tw=="; };
|
||||||
"@esbuild/linux-x64@npm:0.25.12" = { filename = "@esbuild-linux-x64-npm-0.25.12-07c7c22cce-10c0.zip"; hash = "sha512-U2QGT8ZIZN8q2WPSFDC32+sZGKgp49gvnHzIf/vKVR4xIzjcgBbjAIKI+FqfGBmGBWu8eCpS7lR9JDXdUHOFkw=="; };
|
"@esbuild/linux-x64@npm:0.25.12" = { filename = "@esbuild-linux-x64-npm-0.25.12-07c7c22cce-10c0.zip"; hash = "sha512-U2QGT8ZIZN8q2WPSFDC32+sZGKgp49gvnHzIf/vKVR4xIzjcgBbjAIKI+FqfGBmGBWu8eCpS7lR9JDXdUHOFkw=="; };
|
||||||
"@quixos/camino-package-runtime@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=a998690446ecf647e3af78e369492c1a3663b66d" = { filename = "@quixos-camino-package-runtime-https-683bcbf33c-c90d5d5c53.zip"; hash = "sha512-yQ1dXFMR2k+xbkka2rrhsAcrQFZlJAZEYM0hqwGzdV5RJ+fhQEh3BEgoPiL2yxrxulU4zg/jsj8BTBFRp1feyg=="; };
|
"@quixos/camino-package-runtime@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=d3d050d9cb84421fd8043ebe34fd0cae9132f6a2" = { filename = "@quixos-camino-package-runtime-https-08b8790f1a-5bde059ead.zip"; hash = "sha512-W94Fnq0rn4MyBqRUUhH0ZcTzVv9MfF59dHtwpFLhg+/jK4QG5wi/uNgRR3xEVszpN8yrBWO6uiJGlkGmNnrczA=="; };
|
||||||
"@types/node@npm:24.13.3" = { filename = "@types-node-npm-24.13.3-b512a0bbeb-a5bc08f49b.zip"; hash = "sha512-pbwI9JuVgdzcqQ4CzXcZejx5mECAdmSULlzVFhpVPU0q6AZPfjKUQQ10jX0Ji1wYSL5/pQwG8pxBk6sWvk5Z6w=="; };
|
"@types/node@npm:24.13.3" = { filename = "@types-node-npm-24.13.3-b512a0bbeb-a5bc08f49b.zip"; hash = "sha512-pbwI9JuVgdzcqQ4CzXcZejx5mECAdmSULlzVFhpVPU0q6AZPfjKUQQ10jX0Ji1wYSL5/pQwG8pxBk6sWvk5Z6w=="; };
|
||||||
"@types/prop-types@npm:15.7.15" = { filename = "@types-prop-types-npm-15.7.15-cefe16a1fa-b59aad1ad1.zip"; hash = "sha512-tZqtGtGb8XM89ST9TmGBlsbHaQ9I7nCjJ+tFCkKquOigY/vlnKClcBrr4tktWCKSwPuEXqV0dPahX2mUsOJgsg=="; };
|
"@types/prop-types@npm:15.7.15" = { filename = "@types-prop-types-npm-15.7.15-cefe16a1fa-b59aad1ad1.zip"; hash = "sha512-tZqtGtGb8XM89ST9TmGBlsbHaQ9I7nCjJ+tFCkKquOigY/vlnKClcBrr4tktWCKSwPuEXqV0dPahX2mUsOJgsg=="; };
|
||||||
"@types/react@npm:18.3.31" = { filename = "@types-react-npm-18.3.31-d376eb19a5-44180549dd.zip"; hash = "sha512-RBgFSd0EX1Nuzs0545qs34KOdq3BxKkLEy9FPiPMNwxGSNkQKuQBFy69j9ixl3qQGjniFOU+x3FxsnUUtYjBeQ=="; };
|
"@types/react@npm:18.3.31" = { filename = "@types-react-npm-18.3.31-d376eb19a5-44180549dd.zip"; hash = "sha512-RBgFSd0EX1Nuzs0545qs34KOdq3BxKkLEy9FPiPMNwxGSNkQKuQBFy69j9ixl3qQGjniFOU+x3FxsnUUtYjBeQ=="; };
|
||||||
|
|||||||
@@ -213,14 +213,14 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@quixos/camino-package-runtime@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=a998690446ecf647e3af78e369492c1a3663b66d":
|
"@quixos/camino-package-runtime@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=d3d050d9cb84421fd8043ebe34fd0cae9132f6a2":
|
||||||
version: 0.1.0
|
version: 0.1.0
|
||||||
resolution: "@quixos/camino-package-runtime@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=a998690446ecf647e3af78e369492c1a3663b66d"
|
resolution: "@quixos/camino-package-runtime@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=d3d050d9cb84421fd8043ebe34fd0cae9132f6a2"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@bufbuild/protobuf": "npm:^2.12.1"
|
"@bufbuild/protobuf": "npm:^2.12.1"
|
||||||
"@connectrpc/connect": "npm:^2.1.2"
|
"@connectrpc/connect": "npm:^2.1.2"
|
||||||
"@connectrpc/connect-node": "npm:^2.1.2"
|
"@connectrpc/connect-node": "npm:^2.1.2"
|
||||||
checksum: 10c0/c90d5d5c5311da4fb16e491adabae1b0072b40566524064460cd21ab01b3755e5127e7e14048770448283e22f6cb1af1ba5538ce0fe3b23f014c1151a757deca
|
checksum: 10c0/5bde059ead2b9f833206a4545211f465c4f356ff4c7c5e7d747b70a452e183efe32b8406e708bfb8d811477c4456cce937ccab0563baba22469641a6367adccc
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -228,7 +228,7 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@quixos/project-react-runtime@workspace:."
|
resolution: "@quixos/project-react-runtime@workspace:."
|
||||||
dependencies:
|
dependencies:
|
||||||
"@quixos/camino-package-runtime": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=a998690446ecf647e3af78e369492c1a3663b66d"
|
"@quixos/camino-package-runtime": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=d3d050d9cb84421fd8043ebe34fd0cae9132f6a2"
|
||||||
"@types/node": "npm:^24"
|
"@types/node": "npm:^24"
|
||||||
"@types/react": "npm:^18.3.12"
|
"@types/react": "npm:^18.3.12"
|
||||||
esbuild: "npm:^0.25.12"
|
esbuild: "npm:^0.25.12"
|
||||||
|
|||||||
Reference in New Issue
Block a user