Compare commits

..
11 changed files with 101 additions and 20 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
{
"monorepoCommit": "099bb9f5d64bce50b20b6cb51d5333f009b8d418",
"monorepoCommit": "ba8d4f92667f39bb02d542cb492b71a32ec914bf",
"sourcePath": "quixos-instance/packages/project-react-runtime"
}
+8
View File
@@ -0,0 +1,8 @@
{
"messages": {
"org.quixos.web-studio.ReactProps": {
"module": "@quixos/camino-package-runtime",
"export": "opaqueReactPropsBinding"
}
}
}
Generated
+7 -7
View File
@@ -37,17 +37,17 @@
"quixosNixHelpers": {
"flake": false,
"locked": {
"lastModified": 1789444178,
"narHash": "sha256-/a560j65vYLy/gcwa662cJLo09C14Kj6YjvItC+Ugfo=",
"ref": "refs/tags/quixos-reachability/6657af7ca0501454f27032141c57dd09e7ecd79c",
"rev": "6657af7ca0501454f27032141c57dd09e7ecd79c",
"revCount": 27,
"lastModified": 1789364768,
"narHash": "sha256-6tINqOSLd3TTACk/HAfhXqo07H69yjX3Q/DrrAPWzus=",
"ref": "refs/tags/quixos-reachability/cf7945abb6ee2533a34dff4a7d4a956e70efe007",
"rev": "cf7945abb6ee2533a34dff4a7d4a956e70efe007",
"revCount": 22,
"type": "git",
"url": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git"
},
"original": {
"ref": "refs/tags/quixos-reachability/6657af7ca0501454f27032141c57dd09e7ecd79c",
"rev": "6657af7ca0501454f27032141c57dd09e7ecd79c",
"ref": "refs/tags/quixos-reachability/cf7945abb6ee2533a34dff4a7d4a956e70efe007",
"rev": "cf7945abb6ee2533a34dff4a7d4a956e70efe007",
"type": "git",
"url": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git"
}
+9 -3
View File
@@ -6,7 +6,7 @@
flake-utils.url = "github:numtide/flake-utils";
quixosNixHelpers = {
url = "git+https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git?ref=refs/tags/quixos-reachability/6657af7ca0501454f27032141c57dd09e7ecd79c&rev=6657af7ca0501454f27032141c57dd09e7ecd79c";
url = "git+https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git?ref=refs/tags/quixos-reachability/cf7945abb6ee2533a34dff4a7d4a956e70efe007&rev=cf7945abb6ee2533a34dff4a7d4a956e70efe007";
flake = false;
};
};
@@ -19,14 +19,20 @@
inherit inputs nixpkgs flake-utils;
packageRoot = ./.;
migrationEntrypoint = "dist/migrate.js";
bindingOptions = builtins.fromJSON (builtins.readFile ./bindings.json);
promptName = "project-react-runtime";
bundle = {
entry = "src/server.ts";
browserSources = true;
entry = "dist/server.js";
};
installServer = {
libexecName = "project-react-runtime";
descriptorPath = "descriptor.quixos-package.txtpb";
extraFiles = [
{
source = "dist/project-component.mjs";
target = "project-component.mjs";
}
];
};
};
}
+1 -1
View File
@@ -8,7 +8,7 @@
"server": "dist/server.js"
},
"scripts": {
"build": "rm -rf dist && tsc -p tsconfig.build.json",
"build": "rm -rf dist && tsc -p tsconfig.build.json && node scripts/build-component.mjs",
"typecheck": "tsc --noEmit"
},
"dependencies": {
+3 -3
View File
@@ -1,14 +1,14 @@
quixos-lock version 1 {
quixos source {
repository "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos.git";
commit "099bb9f5d64bce50b20b6cb51d5333f009b8d418";
commit "ba8d4f92667f39bb02d542cb492b71a32ec914bf";
}
interface Named source {
repository "https://repos.quixos.org/quixos-templates/interface-named.git";
commit "59debb4a72353ea1740fe15252a52cd1086882bd";
commit "046a719004a6dda537a5dc98ef60f55a43eba0e4";
}
interface ProjectTasks source {
repository "https://repos.quixos.org/quixos-templates/interface-project-tasks.git";
commit "73f0b11bf0f2b5f808b68a803b6fdd3ce4aaac91";
commit "522f030dfd656ef788ae9a0b0b43b06144912042";
}
}
+33
View File
@@ -0,0 +1,33 @@
{
"generatedBy": "qx-scaffold-v1",
"name": "ProjectReactRuntime",
"id": "package:project-react-runtime",
"revision": "package:project-react-runtime@1",
"exports": [
{
"name": "createComponent",
"id": "export:project-react-runtime:create-component",
"file": "src/impl/createComponent.ts"
},
{
"name": "sourceGet",
"id": "export:project-react-runtime:source-get",
"file": "src/impl/sourceGet.ts"
},
{
"name": "propsGet",
"id": "export:project-react-runtime:props-get",
"file": "src/impl/propsGet.ts"
},
{
"name": "propsWatch",
"id": "export:project-react-runtime:props-watch",
"file": "src/impl/propsWatch.ts"
},
{
"name": "propsWatchStop",
"id": "export:project-react-runtime:props-watch-stop",
"file": "src/impl/propsWatchStop.ts"
}
]
}
+34
View File
@@ -0,0 +1,34 @@
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;
});
},
},
],
});
-1
View File
@@ -1 +0,0 @@
declare module "*?browser-source" { const source: string; export default source; }
-2
View File
@@ -1,6 +1,4 @@
declare module "@quixos/web-studio-react-runtime" {
export function useComponentOverlayContainer(): HTMLElement;
export function useComponentStyleRoot(): ShadowRoot;
export type ObjectRef<AtomId extends string> = string & {
readonly $quixosAtom: AtomId;
};
+5 -2
View File
@@ -1,7 +1,10 @@
import componentSource from "./project-component.js?browser-source";
import fs from "node:fs/promises";
import path from "node:path";
import { fileURLToPath } from "node:url";
import type { Contexts } from "./gen/qx.js";
export const source = () => componentSource;
const componentSourcePath = path.join(path.dirname(fileURLToPath(import.meta.url)), "project-component.mjs");
export const source = () => fs.readFile(componentSourcePath, "utf8");
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,