Export template source from 99b2868b7e974441744657b35049f5baae4a499b:quixos-instance/packages/project-react-runtime
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
.yarn/install-state.gz
|
||||
node_modules
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"monorepoCommit": "99b2868b7e974441744657b35049f5baae4a499b",
|
||||
"sourcePath": "quixos-instance/packages/project-react-runtime"
|
||||
}
|
||||
Vendored
+1
File diff suppressed because one or more lines are too long
+29
@@ -0,0 +1,29 @@
|
||||
approvedGitRepositories:
|
||||
- "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/*"
|
||||
|
||||
enableScripts: true
|
||||
|
||||
generateDefaultNix: false
|
||||
|
||||
individualNixPackaging: true
|
||||
|
||||
nodeLinker: node-modules
|
||||
|
||||
npmMinimalAgeGate: 0
|
||||
|
||||
plugins:
|
||||
- checksum: 271de9a785321a37c564b8e2a6b5cd689850b20572d5fee8ec0a6b8e7a5d4cfb59e533524af2b4a537e00da12828abd062eaec6978556e3dd9149a020db2591b
|
||||
path: .yarn/plugins/yarn-plugin-nixify.cjs
|
||||
spec: "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/yarn-plugin-nixify-patched/raw/commit/4528fdd20b30d869262443b3f044549810e75fb8/dist/yarn-plugin-nixify.js"
|
||||
|
||||
supportedArchitectures:
|
||||
cpu:
|
||||
- current
|
||||
- x64
|
||||
- arm64
|
||||
libc:
|
||||
- current
|
||||
- glibc
|
||||
os:
|
||||
- current
|
||||
- linux
|
||||
@@ -0,0 +1,9 @@
|
||||
# Generated from the checked package contract
|
||||
package_id: "package:project-react-runtime"
|
||||
package_revision_id: "package:project-react-runtime@1"
|
||||
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:source-get" runtime_symbol: "sourceGet" }
|
||||
exports: { export_id: "export:project-react-runtime:props-get" runtime_symbol: "propsGet" }
|
||||
exports: { export_id: "export:project-react-runtime:props-watch" runtime_symbol: "propsWatch" }
|
||||
exports: { export_id: "export:project-react-runtime:props-watch-stop" runtime_symbol: "propsWatchStop" }
|
||||
Generated
+80
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1788404924,
|
||||
"narHash": "sha256-lhEhY8X5EgkQ/eg6IFz4cc8jRuSYSvnxx1al7d1dvZ0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0968519e14f7aa7d3e9b389682bd74d2b51c8ce8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"quixosNixHelpers": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1789602549,
|
||||
"narHash": "sha256-DD66dQ3dzEvG13Zju/4sVSV4pnktSUkJ/Rbr1KkHMdg=",
|
||||
"ref": "refs/tags/quixos-reachability/e2747066ca7d9d001dcb5dd936e17969ed88fc5f",
|
||||
"rev": "e2747066ca7d9d001dcb5dd936e17969ed88fc5f",
|
||||
"revCount": 32,
|
||||
"type": "git",
|
||||
"url": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git"
|
||||
},
|
||||
"original": {
|
||||
"ref": "refs/tags/quixos-reachability/e2747066ca7d9d001dcb5dd936e17969ed88fc5f",
|
||||
"rev": "e2747066ca7d9d001dcb5dd936e17969ed88fc5f",
|
||||
"type": "git",
|
||||
"url": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"quixosNixHelpers": "quixosNixHelpers"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
description = "Quixos project React component runtime package";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
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/e2747066ca7d9d001dcb5dd936e17969ed88fc5f&rev=e2747066ca7d9d001dcb5dd936e17969ed88fc5f";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
inputs@{
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
quixosNixHelpers,
|
||||
...
|
||||
}:
|
||||
let
|
||||
quixosHelpers = import "${quixosNixHelpers}/quixos-package-helpers.nix";
|
||||
in
|
||||
quixosHelpers.mkCaminoTsYarnNixifyFlake {
|
||||
inherit inputs nixpkgs flake-utils;
|
||||
packageRoot = ./.;
|
||||
migrationEntrypoint = "dist/migrate.js";
|
||||
promptName = "project-react-runtime";
|
||||
bundle = {
|
||||
entry = "src/server.ts";
|
||||
browserSources = true;
|
||||
};
|
||||
installServer = {
|
||||
libexecName = "project-react-runtime";
|
||||
descriptorPath = "descriptor.quixos-package.txtpb";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "@quixos/project-react-runtime",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"packageManager": "yarn@4.18.0",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
"server": "dist/server.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@quixos/camino-package-runtime": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=cd2b04dc8c2daeea633bf8ecdd31d20fdc41f2ab",
|
||||
"react": "^18.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^24",
|
||||
"@types/react": "^18.3.12",
|
||||
"esbuild": "^0.25.12",
|
||||
"typescript": "^7.0.2"
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import interface Named;
|
||||
import interface ProjectTasks;
|
||||
external atom ProjectReactComponent id "atom:project-react-component";
|
||||
external atom Project id "atom:project";
|
||||
type ProjectProps = record {named: interface-ref<Named>; tasks: interface-ref<ProjectTasks>;};
|
||||
|
||||
package ProjectReactRuntime id "package:project-react-runtime" revision "package:project-react-runtime@1" {
|
||||
constructor createComponent id "export:project-react-runtime:create-component" constructs ProjectReactComponent : atom-ref<Project>;
|
||||
operation sourceGet id "export:project-react-runtime:source-get" : unit -> string mode call receiver atom ProjectReactComponent;
|
||||
operation propsGet id "export:project-react-runtime:props-get" : unit -> ProjectProps mode call receiver atom ProjectReactComponent requires {
|
||||
interface named id "port:project-react:named" : Named;
|
||||
interface tasks id "port:project-react:tasks" : ProjectTasks;
|
||||
};
|
||||
operation propsWatch id "export:project-react-runtime:props-watch" : unit -> watch-handle mode watch-start emits ProjectProps receiver atom ProjectReactComponent requires {
|
||||
interface named id "port:project-react:named" : Named;
|
||||
interface tasks id "port:project-react:tasks" : ProjectTasks;
|
||||
};
|
||||
operation propsWatchStop id "export:project-react-runtime:props-watch-stop" : watch-handle -> unit mode watch-stop receiver atom ProjectReactComponent;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"backend": "typescript",
|
||||
"bindingOutput": "src/gen/qx.ts",
|
||||
"options": {
|
||||
"react": {
|
||||
"propsExports": ["propsGet"],
|
||||
"components": [{ "module": "../project-component.js", "propsExport": "propsGet" }]
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
quixos-lock version 1 {
|
||||
quixos source {
|
||||
repository "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos.git";
|
||||
commit "99b2868b7e974441744657b35049f5baae4a499b";
|
||||
}
|
||||
interface Named source {
|
||||
repository "https://repos.quixos.org/quixos-todo/interface-named.git";
|
||||
commit "0000000000000000000000000000000000000010";
|
||||
}
|
||||
interface ProjectTasks source {
|
||||
repository "https://repos.quixos.org/quixos-todo/interface-project-tasks.git";
|
||||
commit "0000000000000000000000000000000000000012";
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
declare module "*?browser-source" {
|
||||
const source: string;
|
||||
export default source;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
// @generated by camino-codegen-ts-runtime. Do not edit.
|
||||
import {
|
||||
createWebStudioComponent,
|
||||
type ReactComponentHostProps,
|
||||
type ObjectRef,
|
||||
} from "@quixos/web-studio-react-runtime";
|
||||
|
||||
export type ProjectReactComponentRenderProps = {
|
||||
"compact"?: boolean;
|
||||
};
|
||||
|
||||
export type Empty = {
|
||||
|
||||
};
|
||||
|
||||
export type ProjectComponentProps = {
|
||||
forObject: ObjectRef<"atom:project">;
|
||||
} & ProjectReactComponentRenderProps & ReactComponentHostProps<Record<string, never>>;
|
||||
|
||||
export const ProjectComponent = createWebStudioComponent<
|
||||
ObjectRef<"atom:project">,
|
||||
ProjectReactComponentRenderProps,
|
||||
Record<string, never>
|
||||
>({
|
||||
expectedAtomId: "atom:project",
|
||||
});
|
||||
@@ -0,0 +1,29 @@
|
||||
// @generated by camino-codegen-ts-runtime. Do not edit.
|
||||
import {
|
||||
createWebStudioComponent,
|
||||
type ReactComponentHostProps,
|
||||
type ObjectRef,
|
||||
} from "@quixos/web-studio-react-runtime";
|
||||
|
||||
export type TodoReactComponentRenderProps = {
|
||||
"selected"?: boolean;
|
||||
"compact"?: boolean;
|
||||
};
|
||||
|
||||
export type TodoReactComponentAction = {
|
||||
"type"?: TodoReactComponentActionType;
|
||||
};
|
||||
|
||||
export type TodoReactComponentActionType = "TODO_REACT_COMPONENT_ACTION_TYPE_UNSPECIFIED" | "SELECT";
|
||||
|
||||
export type TodoComponentProps = {
|
||||
forObject: ObjectRef<"atom:task">;
|
||||
} & TodoReactComponentRenderProps & ReactComponentHostProps<TodoReactComponentAction>;
|
||||
|
||||
export const TodoComponent = createWebStudioComponent<
|
||||
ObjectRef<"atom:task">,
|
||||
TodoReactComponentRenderProps,
|
||||
TodoReactComponentAction
|
||||
>({
|
||||
expectedAtomId: "atom:task",
|
||||
});
|
||||
+277
@@ -0,0 +1,277 @@
|
||||
// Generated by quixos-codegen-ts. Do not edit. Binding ABI version 1.
|
||||
import { bindQxHandler, type QxObjectRef, type QxWatchHandle, type QxHandler, type QxDerived, type QxContextLifecycle, type QxLiveValue, type QxHandlerSpec, type QxMessages } from "@quixos/camino-package-runtime";
|
||||
|
||||
export const packageRevisionId = "package:project-react-runtime@1";
|
||||
declare const appliedType: unique symbol;
|
||||
type QxApplied<Definition extends string, Arguments extends readonly unknown[]> = string & {readonly [appliedType]: (value: [Definition, Arguments]) => [Definition, Arguments]};
|
||||
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 Results = { "createComponent": QxObjectRef<"atom:atom:project-react-component">; "propsGet": { "named": QxObjectRef<"interface:interface:named@1">; "tasks": QxObjectRef<"interface:interface:project-tasks@1"> }; "propsWatch": { "named": QxObjectRef<"interface:interface:named@1">; "tasks": QxObjectRef<"interface:interface:project-tasks@1"> }; "propsWatchStop": null; "sourceGet": string };
|
||||
export type Implementation = { "createComponent": QxHandler<Contexts["createComponent"], QxObjectRef<"atom:atom:project-react-component">>; "propsGet": QxHandler<Contexts["propsGet"], { "named": QxObjectRef<"interface:interface:named@1">; "tasks": QxObjectRef<"interface:interface:project-tasks@1"> }> | QxDerived<Contexts["propsGet"], { "named": QxObjectRef<"interface:interface:named@1">; "tasks": QxObjectRef<"interface:interface:project-tasks@1"> }>; "propsWatch": QxDerived<Contexts["propsWatch"], { "named": QxObjectRef<"interface:interface:named@1">; "tasks": QxObjectRef<"interface:interface:project-tasks@1"> }>; "propsWatchStop": QxHandler<Contexts["propsWatchStop"], null>; "sourceGet": QxHandler<Contexts["sourceGet"], string> | QxDerived<Contexts["sourceGet"], string> };
|
||||
const messages = { } 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": "record",
|
||||
"fields": {
|
||||
"named": {
|
||||
"kind": "object-ref",
|
||||
"expectation": {
|
||||
"kind": "interface",
|
||||
"interfaceRevisionId": "interface:named@1"
|
||||
}
|
||||
},
|
||||
"tasks": {
|
||||
"kind": "object-ref",
|
||||
"expectation": {
|
||||
"kind": "interface",
|
||||
"interfaceRevisionId": "interface:project-tasks@1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"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": "record",
|
||||
"fields": {
|
||||
"named": {
|
||||
"kind": "object-ref",
|
||||
"expectation": {
|
||||
"kind": "interface",
|
||||
"interfaceRevisionId": "interface:named@1"
|
||||
}
|
||||
},
|
||||
"tasks": {
|
||||
"kind": "object-ref",
|
||||
"expectation": {
|
||||
"kind": "interface",
|
||||
"interfaceRevisionId": "interface:project-tasks@1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"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),
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
// Generated from checked QX contracts. Do not edit.
|
||||
import type {ObjectRef, InterfaceReference, ReadableField, WritableField} from "@quixos/web-studio-react-runtime";
|
||||
export type Interface0 = InterfaceReference<"interface:named@1", {"name": WritableField<string>}> ;
|
||||
export type Interface1 = InterfaceReference<"interface:project-tasks@1", {"tasks": ReadableField<Array<ObjectRef<"atom:task">>>}> ;
|
||||
export type ReactResults = {"propsGet": {"named": Interface0;"tasks": Interface1}};
|
||||
type CheckedComponent<K extends keyof ReactResults, C extends (props: {camino: ReactResults[K]; render: any; dispatch: (action: any) => void}) => unknown> = C;
|
||||
type Component0 = CheckedComponent<"propsGet", typeof import("../project-component.js")["default"]>;
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
// Generated by the Quixos React platform contract. Do not edit.
|
||||
declare module "@quixos/web-studio-react-runtime" {
|
||||
import type * as React from "react";
|
||||
export function useComponentOverlayContainer(): HTMLElement;
|
||||
export function useComponentStyleRoot(): ShadowRoot;
|
||||
export type ObjectRef<AtomId extends string> = string & {
|
||||
readonly $quixosAtom: AtomId;
|
||||
};
|
||||
export type FieldCapability = {objectId: string; interfaceRevisionId: string; getOperationId: string; watchOperationId?: string; setOperationId?: string; inputKind?: "fields" | "value"};
|
||||
export type ReadableField<T> = {readonly value?: T; readonly capability: FieldCapability};
|
||||
/** set(T) uses the resolved capability: native CRDT fields send incremental edits;
|
||||
* custom/manual setters receive semantic values. Storage provenance grants no authority. */
|
||||
export type WritableField<T> = ReadableField<T> & {readonly $writeType?: (value: T) => T; readonly writable: true; readonly capability: FieldCapability & {setOperationId: string}};
|
||||
export type LiveFieldProp<T> = ReadableField<T>;
|
||||
export type InterfaceReference<I extends string, Fields> = {readonly $quixosRef: string; readonly interfaceRevisionId: I; readonly fields: Fields};
|
||||
export type ReactComponentHostProps<Action> = {
|
||||
onAction?: (action: Action) => void;
|
||||
fallback?: React.ReactNode;
|
||||
className?: string;
|
||||
style?: React.CSSProperties;
|
||||
/** Optional extra action. The host still displays and reports errors by default. */
|
||||
extraErrorAction?: (error: Error) => void;
|
||||
};
|
||||
export type ReactComponentImplementationProps<CaminoProps, RenderProps, Action> = {
|
||||
camino: CaminoProps;
|
||||
render: RenderProps;
|
||||
dispatch: (action: Action) => void;
|
||||
};
|
||||
export const createWebStudioComponent: <
|
||||
ForObject extends ObjectRef<string>, RenderProps extends object, Action,
|
||||
>(config: { expectedAtomId: string }) => (props: {
|
||||
forObject: ForObject;
|
||||
} & RenderProps & ReactComponentHostProps<Action>) => any;
|
||||
export const invokeCapability: <Result = unknown>(
|
||||
objectId: string,
|
||||
interfaceRevisionId: string,
|
||||
operationId: string,
|
||||
value?: unknown,
|
||||
options?: {clientMutationId?: string; signal?: AbortSignal},
|
||||
) => Promise<Result>;
|
||||
export const h: typeof React.createElement;
|
||||
export function useLiveField<T>(field: ReadableField<T>, options: {write: (value: T) => Promise<void>}): readonly [T, (value: T) => Promise<void>];
|
||||
export function useLiveField<T>(field: WritableField<T>): readonly [T, (value: T) => Promise<void>];
|
||||
export function useLiveField<T>(field: ReadableField<T>): readonly [T];
|
||||
}
|
||||
@@ -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({});
|
||||
@@ -0,0 +1,201 @@
|
||||
import { useState } from "react";
|
||||
import {
|
||||
h,
|
||||
invokeCapability,
|
||||
useLiveField,
|
||||
type ReactComponentImplementationProps,
|
||||
} from "@quixos/web-studio-react-runtime";
|
||||
import {
|
||||
TodoComponent,
|
||||
type TodoComponentProps,
|
||||
type TodoReactComponentAction,
|
||||
} from "./gen/quixos.todo.TodoReactComponent.react.js";
|
||||
import type { ProjectReactComponentRenderProps } from "./gen/quixos.todo.ProjectReactComponent.react.js";
|
||||
import type { ReactResults } from "./gen/react-props.gen.js";
|
||||
|
||||
type TaskRef = TodoComponentProps["forObject"];
|
||||
|
||||
type ProjectCaminoProps = ReactResults["propsGet"];
|
||||
|
||||
type ProjectComponentProps = ReactComponentImplementationProps<
|
||||
ProjectCaminoProps,
|
||||
ProjectReactComponentRenderProps,
|
||||
Record<string, never>
|
||||
>;
|
||||
|
||||
const colors = {
|
||||
ink: "#28362d",
|
||||
muted: "#72786f",
|
||||
cream: "#fffdf5",
|
||||
paper: "#f6f0df",
|
||||
line: "#d9d0ba",
|
||||
moss: "#5f7f63",
|
||||
honey: "#d99b3d",
|
||||
};
|
||||
|
||||
export default function ProjectComponent({ camino, render }: ProjectComponentProps) {
|
||||
const [name, setName] = useLiveField(camino.named.fields.name);
|
||||
const [tasks] = useLiveField(camino.tasks.fields.tasks);
|
||||
const [selectedTask, setSelectedTask] = useState<TaskRef | null>(null);
|
||||
const [newTaskTitle, setNewTaskTitle] = useState("");
|
||||
const [addingTask, setAddingTask] = useState(false);
|
||||
const [addTaskError, setAddTaskError] = useState("");
|
||||
const handleTaskAction = (task: TaskRef, action: TodoReactComponentAction) => {
|
||||
if (action.type === "SELECT") setSelectedTask(task);
|
||||
};
|
||||
const addTask = async () => {
|
||||
if (addingTask || !newTaskTitle.trim()) return;
|
||||
setAddingTask(true);
|
||||
setAddTaskError("");
|
||||
try {
|
||||
await invokeCapability(
|
||||
camino.named.$quixosRef,
|
||||
"interface:project-actions@1",
|
||||
"operation:project-actions:add-task",
|
||||
newTaskTitle,
|
||||
);
|
||||
setNewTaskTitle("");
|
||||
} catch (error) {
|
||||
setAddTaskError(error instanceof Error ? error.message : String(error));
|
||||
} finally {
|
||||
setAddingTask(false);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<section
|
||||
style={{
|
||||
display: "grid",
|
||||
gridTemplateRows: "auto auto minmax(0, 1fr)",
|
||||
gap: "12px",
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
minHeight: 0,
|
||||
padding: render.compact ? "11px" : "14px",
|
||||
color: colors.ink,
|
||||
fontFamily: "Avenir Next, Nunito, ui-sans-serif, system-ui, sans-serif",
|
||||
}}
|
||||
>
|
||||
<header style={{ display: "flex", alignItems: "center", justifyContent: "space-between", gap: "12px" }}>
|
||||
<div style={{ display: "grid", gap: "2px", minWidth: 0, flex: 1 }}>
|
||||
<input
|
||||
aria-label="Project name"
|
||||
value={name}
|
||||
onInput={(event) => void setName(event.currentTarget.value)}
|
||||
style={{
|
||||
minWidth: 0,
|
||||
width: "100%",
|
||||
border: "none",
|
||||
borderBottom: `1px solid ${colors.line}`,
|
||||
background: "transparent",
|
||||
color: colors.ink,
|
||||
fontFamily: "Georgia, ui-serif, serif",
|
||||
fontSize: render.compact ? "17px" : "22px",
|
||||
fontWeight: 700,
|
||||
padding: "3px 0 5px",
|
||||
}}
|
||||
/>
|
||||
<span style={{ color: colors.muted, fontSize: "11px" }}>A little clearing for useful things.</span>
|
||||
</div>
|
||||
<span
|
||||
style={{
|
||||
flex: "0 0 auto",
|
||||
border: `1px solid ${colors.line}`,
|
||||
borderRadius: "8px",
|
||||
background: colors.paper,
|
||||
color: colors.moss,
|
||||
fontSize: "11px",
|
||||
fontWeight: 800,
|
||||
padding: "5px 8px",
|
||||
}}
|
||||
>
|
||||
{tasks.length} {tasks.length === 1 ? "task" : "tasks"}
|
||||
</span>
|
||||
</header>
|
||||
|
||||
<form
|
||||
onSubmit={(event) => {
|
||||
event.preventDefault();
|
||||
void addTask();
|
||||
}}
|
||||
style={{ display: "grid", gridTemplateColumns: "minmax(0, 1fr) auto", gap: "8px" }}
|
||||
>
|
||||
<input
|
||||
aria-label="New task title"
|
||||
value={newTaskTitle}
|
||||
onInput={(event) => setNewTaskTitle(event.currentTarget.value)}
|
||||
placeholder="What wants doing?"
|
||||
disabled={addingTask}
|
||||
style={{
|
||||
minWidth: 0,
|
||||
border: `1px solid ${colors.line}`,
|
||||
borderRadius: "9px",
|
||||
background: "#fff",
|
||||
padding: "8px 10px",
|
||||
}}
|
||||
/>
|
||||
<button
|
||||
type="submit"
|
||||
disabled={addingTask || newTaskTitle.trim().length === 0}
|
||||
style={{
|
||||
border: `1px solid ${colors.moss}`,
|
||||
borderRadius: "9px",
|
||||
background: colors.moss,
|
||||
color: "#fffdf5",
|
||||
cursor: "pointer",
|
||||
fontSize: "12px",
|
||||
fontWeight: 750,
|
||||
padding: "8px 12px",
|
||||
}}
|
||||
>
|
||||
{addingTask ? "Planting…" : "Add task"}
|
||||
</button>
|
||||
{addTaskError ? (
|
||||
<div role="alert" style={{ gridColumn: "1 / -1", color: "#9f4741", fontSize: "11px" }}>
|
||||
{addTaskError}
|
||||
</div>
|
||||
) : null}
|
||||
</form>
|
||||
|
||||
<div
|
||||
style={{
|
||||
display: "grid",
|
||||
alignContent: "start",
|
||||
gap: "9px",
|
||||
minHeight: 0,
|
||||
overflow: "auto",
|
||||
paddingRight: "3px",
|
||||
}}
|
||||
>
|
||||
{tasks.length === 0 ? (
|
||||
<div
|
||||
style={{
|
||||
display: "grid",
|
||||
placeItems: "center",
|
||||
minHeight: render.compact ? "80px" : "140px",
|
||||
border: `1px dashed ${colors.line}`,
|
||||
borderRadius: "12px",
|
||||
background: colors.paper,
|
||||
color: colors.muted,
|
||||
fontSize: "12px",
|
||||
textAlign: "center",
|
||||
}}
|
||||
>
|
||||
Your project is quiet. Add the first task when it arrives.
|
||||
</div>
|
||||
) : (
|
||||
tasks.map((task) => (
|
||||
<TodoComponent
|
||||
key={task}
|
||||
forObject={task}
|
||||
selected={selectedTask === task}
|
||||
compact={render.compact ?? true}
|
||||
onAction={(action) => handleTaskAction(task, action)}
|
||||
fallback={<div style={{ color: colors.muted, fontSize: "11px" }}>Waking task…</div>}
|
||||
/>
|
||||
))
|
||||
)}
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import componentSource from "./project-component.js?browser-source";
|
||||
import type { Contexts, Results } from "./gen/qx.js";
|
||||
|
||||
export const source = () => componentSource;
|
||||
export const createComponent = ({ objectId }: Contexts["createComponent"]) => objectId;
|
||||
export const props = {
|
||||
kind: "derived" as const,
|
||||
get: async ({ ports }: Contexts["propsGet"]): Promise<Results["propsGet"]> => ({
|
||||
named: ports.named.objectId,
|
||||
tasks: ports.tasks.objectId,
|
||||
}),
|
||||
};
|
||||
export const stopWatch = () => null;
|
||||
@@ -0,0 +1,17 @@
|
||||
// Generated by qx-scaffold-v1
|
||||
import { servePackageRuntime } from "@quixos/camino-package-runtime";
|
||||
import { createRuntime } from "./gen/qx.js";
|
||||
import { handler as impl0 } from "./impl/createComponent.js";
|
||||
import { handler as impl1 } from "./impl/sourceGet.js";
|
||||
import { handler as impl2 } from "./impl/propsGet.js";
|
||||
import { handler as impl3 } from "./impl/propsWatch.js";
|
||||
import { handler as impl4 } from "./impl/propsWatchStop.js";
|
||||
servePackageRuntime(
|
||||
createRuntime({
|
||||
createComponent: impl0,
|
||||
sourceGet: impl1,
|
||||
propsGet: impl2,
|
||||
propsWatch: impl3,
|
||||
propsWatchStop: impl4,
|
||||
}),
|
||||
);
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"declaration": true,
|
||||
"sourceMap": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2022",
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"preserveSymlinks": true,
|
||||
"resolveJsonModule": true,
|
||||
"types": ["node"],
|
||||
"outDir": "dist",
|
||||
"rootDir": "src",
|
||||
"jsx": "react-jsx"
|
||||
},
|
||||
"include": ["src/**/*.ts", "src/**/*.tsx"]
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
# This file is generated by running "yarn install" inside your project.
|
||||
# Manual changes might be lost - proceed with caution!
|
||||
|
||||
{ lib, stdenv, nodejs, git, cacert, fetchurl, writeShellScript, writeShellScriptBin }:
|
||||
{ src, overrideAttrs ? null, ... } @ args:
|
||||
|
||||
let
|
||||
|
||||
yarnBin = fetchurl {
|
||||
url = "https://repo.yarnpkg.com/4.18.0/packages/yarnpkg-cli/bin/yarn.js";
|
||||
hash = "sha512-/Lhxb+fNDuzhQf/Bi5IZOp35IEwbqDGJwoiDUiP8C75kr0c7qw1emSen2utcryuwfrJ4fMkzjKBA6hJfKh8vfg==";
|
||||
};
|
||||
|
||||
cacheFolder = ".yarn/cache";
|
||||
lockfile = ./yarn.lock;
|
||||
|
||||
# Call overrideAttrs on a derivation if a function is provided.
|
||||
optionalOverride = fn: drv:
|
||||
if fn == null then drv else drv.overrideAttrs fn;
|
||||
|
||||
# Simple stub that provides the global yarn command.
|
||||
yarn = writeShellScriptBin "yarn" ''
|
||||
exec '${nodejs}/bin/node' '${yarnBin}' "$@"
|
||||
'';
|
||||
|
||||
# Common attributes between Yarn derivations.
|
||||
drvCommon = {
|
||||
# Make sure the build uses the right Node.js version everywhere.
|
||||
buildInputs = [ nodejs yarn ];
|
||||
# All dependencies should already be cached.
|
||||
yarn_enable_network = "0";
|
||||
# Tell node-gyp to use the provided Node.js headers for native code builds.
|
||||
npm_config_nodedir = nodejs;
|
||||
};
|
||||
|
||||
# Comman variables that we set in a Nix build, but not in a Nix shell.
|
||||
buildVars = ''
|
||||
# Make Yarn produce friendlier logging for automated builds.
|
||||
export CI=1
|
||||
# Tell node-pre-gyp to never fetch binaries / always build from source.
|
||||
export npm_config_build_from_source=true
|
||||
'';
|
||||
|
||||
# Create derivations for fetching dependencies.
|
||||
cacheDrvs = let
|
||||
in lib.mapAttrs (locator: { filename, hash }: stdenv.mkDerivation {
|
||||
name = lib.strings.sanitizeDerivationName locator;
|
||||
buildInputs = [ yarn git cacert ];
|
||||
buildCommand = ''
|
||||
cd '${src}'
|
||||
${buildVars}
|
||||
HOME="$TMP" yarn_enable_global_cache=false yarn_cache_folder="$TMP" \
|
||||
yarn nixify fetch ${lib.escapeShellArg locator}
|
||||
# Because we change the cache dir, Yarn may generate a different name.
|
||||
mv "$TMP/$(sed 's/-[^-]*\.[^-]*$//' <<< "$outputFilename")"-* $out
|
||||
'';
|
||||
outputFilename = filename;
|
||||
outputHash = hash;
|
||||
}) cacheEntries;
|
||||
|
||||
# Create a shell snippet to copy dependencies from a list of derivations.
|
||||
mkCacheBuilderForDrvs = drvs:
|
||||
writeShellScript "collect-yarn-cache" (lib.concatMapStrings (drv: ''
|
||||
cp --reflink=auto ${drv} '${drv.outputFilename}'
|
||||
'') drvs);
|
||||
|
||||
# Main project derivation.
|
||||
project = stdenv.mkDerivation (drvCommon // {
|
||||
inherit src;
|
||||
name = "@quixos/project-react-runtime";
|
||||
|
||||
configurePhase = ''
|
||||
${buildVars}
|
||||
|
||||
# Copy over the Yarn cache.
|
||||
rm -fr '${cacheFolder}'
|
||||
mkdir -p '${cacheFolder}'
|
||||
pushd '${cacheFolder}' > /dev/null
|
||||
source ${mkCacheBuilderForDrvs (lib.attrValues cacheDrvs)}
|
||||
popd > /dev/null
|
||||
|
||||
# Yarn may need a writable home directory.
|
||||
export yarn_global_folder="$TMP"
|
||||
|
||||
# Ensure global cache is disabled. Cache must be part of our output.
|
||||
touch .yarnrc.yml
|
||||
sed -i -e '/^enableGlobalCache/d' .yarnrc.yml
|
||||
echo 'enableGlobalCache: false' >> .yarnrc.yml
|
||||
|
||||
# Some node-gyp calls may call out to npm, which could fail due to an
|
||||
# read-only home dir.
|
||||
export HOME="$TMP"
|
||||
|
||||
# running preConfigure after the cache is populated allows for
|
||||
# preConfigure to contain substituteInPlace for dependencies as well as the
|
||||
# main project. This is necessary for native bindings that maybe have
|
||||
# hardcoded values.
|
||||
runHook preConfigure
|
||||
|
||||
# Run normal Yarn install to complete dependency installation.
|
||||
yarn install --immutable --immutable-cache
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
# Move the package contents to the output directory.
|
||||
if grep -q '"workspaces"' package.json; then
|
||||
# We can't use `yarn pack` in a workspace setup, because it only
|
||||
# packages the outer workspace.
|
||||
mkdir -p "$out/libexec"
|
||||
mv $PWD "$out/libexec/$name"
|
||||
else
|
||||
# - If the package.json has a `files` field, only files matching those patterns are copied
|
||||
# - Otherwise all files are copied.
|
||||
yarn pack --out package.tgz
|
||||
mkdir -p "$out/libexec/$name"
|
||||
tar xzf package.tgz --directory "$out/libexec/$name" --strip-components=1
|
||||
|
||||
cp --reflink=auto .yarnrc* "$out/libexec/$name"
|
||||
cp --reflink=auto ${lockfile} "$out/libexec/$name/yarn.lock"
|
||||
cp --reflink=auto --recursive .yarn "$out/libexec/$name"
|
||||
|
||||
# Copy the Yarn linker output into the package.
|
||||
cp --reflink=auto --recursive node_modules "$out/libexec/$name"
|
||||
fi
|
||||
|
||||
cd "$out/libexec/$name"
|
||||
|
||||
# Invoke a plugin internal command to setup binaries.
|
||||
mkdir -p "$out/bin"
|
||||
yarn nixify install-bin $out/bin
|
||||
|
||||
# A package with node_modules doesn't need the cache
|
||||
yarn cache clean
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit nodejs;
|
||||
yarn-freestanding = yarn;
|
||||
yarn = writeShellScriptBin "yarn" ''
|
||||
exec '${yarn}/bin/yarn' --cwd '${overriddenProject}/libexec/${overriddenProject.name}' "$@"
|
||||
'';
|
||||
};
|
||||
});
|
||||
|
||||
overriddenProject = optionalOverride overrideAttrs project;
|
||||
|
||||
cacheEntries = {
|
||||
"@bufbuild/protobuf@npm:2.12.1" = { filename = "@bufbuild-protobuf-npm-2.12.1-d8afb467b3-2d40cfe4ec.zip"; hash = "sha512-LUDP5Ow7sOPwarLih3HcXcVm6qywVfvok9dWIbBAfQJy1I9ApJCtR97YOe1UFRThr3G7E68CSzrjbvDFbVbdqQ=="; };
|
||||
"@connectrpc/connect-node@npm:2.1.2" = { filename = "@connectrpc-connect-node-npm-2.1.2-021434d5d5-ba8b0c9384.zip"; hash = "sha512-uosMk4TDgps3eqeoJtwM1Qpgk1J9LscBRgSRKDYzbqlgSitazqQrEEd/i+RWnknd7WbKD8d/X1sCcDXgKeE+qQ=="; };
|
||||
"@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-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=cd2b04dc8c2daeea633bf8ecdd31d20fdc41f2ab" = { filename = "@quixos-camino-package-runtime-https-99aa94a9bf-7872db96f5.zip"; hash = "sha512-eHLblvUv7jzGJ45p9j7PY5UsK74OeyZp2Z36rC5ki0BlGUXgCHAzeJ6YvaWov64433kSLJT9NjkocOgUacVvZg=="; };
|
||||
"@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/react@npm:18.3.31" = { filename = "@types-react-npm-18.3.31-d376eb19a5-44180549dd.zip"; hash = "sha512-RBgFSd0EX1Nuzs0545qs34KOdq3BxKkLEy9FPiPMNwxGSNkQKuQBFy69j9ixl3qQGjniFOU+x3FxsnUUtYjBeQ=="; };
|
||||
"@typescript/typescript-linux-arm64@npm:7.0.2" = { filename = "@typescript-typescript-linux-arm64-npm-7.0.2-9cacfc53a0-10c0.zip"; hash = "sha512-s4c7nGT/lQIw6x0IfrL0b3ECy/D0g7UoDLdiIWJoM6EGXk5N/dmXdxUdA8Cr3hV/3nO2BYKTQ6Ai8/zGhiSQ3A=="; };
|
||||
"@typescript/typescript-linux-x64@npm:7.0.2" = { filename = "@typescript-typescript-linux-x64-npm-7.0.2-8dd7ff8d24-10c0.zip"; hash = "sha512-k9EUK5CZ3OOPnyslp8SAAonHJpnpPmlaulppI/NmFyCzNs3UN/TLPUkyQia3KIxgbyTzKoXI5L5fl8Uj9bJ7Cg=="; };
|
||||
"csstype@npm:3.2.3" = { filename = "csstype-npm-3.2.3-741053244e-cd29c51e70.zip"; hash = "sha512-zSnFHnD6gi8c7NhkGhRFvtcGNpdGnTVjO1FuYP6MG94EsI9sW2AiE2u2abZMY9QXOvVIZFEPu07iMoGAGEGjzg=="; };
|
||||
"esbuild@npm:0.25.12" = { filename = "esbuild-npm-0.25.12-352393c4bd-c205357531.zip"; hash = "sha512-wgU1dTFCMiCp3o4ebGUUJCvJsWZudizWfM34/f3D8dC9dvjZODlYuXrUyVPv23tujB+cpZUc0rfFI16HVbNKaw=="; };
|
||||
"js-tokens@npm:4.0.0" = { filename = "js-tokens-npm-4.0.0-0ac852e9e2-e248708d37.zip"; hash = "sha512-4khwjTd6oFjqzyA3sH3thHeQ5t6JK7rT2sCrui51nLnxIbAAmaZRlWFrrctuyo0U2XXLPonrHP2mRHVkAsiu7Q=="; };
|
||||
"loose-envify@npm:1.4.0" = { filename = "loose-envify-npm-1.4.0-6307b72ccf-655d110220.zip"; hash = "sha512-ZV0RAiCYPBpLnAxnmi6AFtS2f26ce1Q1/1l57Nsg0IE/TewKCGdPy91IRqPwftu1CjaBH9N5MLlKqg2drOsBfg=="; };
|
||||
"react@npm:18.3.1" = { filename = "react-npm-18.3.1-af38f3c1ae-283e8c5efc.zip"; hash = "sha512-KD6MXvzzeALJ0c52fzAt1Wndl6cNm7jHvnmnibmQJFHg0WM0sF1zKZsg8EjLw8fSiLu94QtwH6GU4gicI32+ow=="; };
|
||||
"typescript@npm:7.0.2" = { filename = "typescript-npm-7.0.2-0bde2bcec5-3dcee51ec8.zip"; hash = "sha512-Pc7lHsjDMkkjJbzb999ItmZodR8SfmIq59QbbHFusZGEQkpF4U93UPUPNAIyOItp5ih4WRVfBqXOLfdvEssxzw=="; };
|
||||
"typescript@patch:typescript@npm%3A7.0.2#optional!builtin<compat/typescript>::version=7.0.2&hash=3bafbf" = { filename = "typescript-patch-4859cbaf66-6b3cdc369c.zip"; hash = "sha512-azzcNpzYKdRuAHNOpkIz7oRBnCglrY/kCJFa3ed6vO1LeiQB9+7VF9VKek9dHBhpdTy5kBjfHCFZx2HZ8zSDpg=="; };
|
||||
"undici-types@npm:7.18.2" = { filename = "undici-types-npm-7.18.2-3e6d69d829-85a7918911.zip"; hash = "sha512-haeRiRE6I4lZ16ZHNo5PfFVZw6QE69uPxEiBRc6UJvzYIlKoRKMCeY38Djfm+xeP9IHtA7xMr2NMV1fZ70NSHQ=="; };
|
||||
};
|
||||
|
||||
in overriddenProject
|
||||
@@ -0,0 +1,678 @@
|
||||
# This file is generated by running "yarn install" inside your project.
|
||||
# Manual changes might be lost - proceed with caution!
|
||||
|
||||
__metadata:
|
||||
version: 10
|
||||
cacheKey: 10c0
|
||||
|
||||
"@bufbuild/protobuf@npm:^2.12.1":
|
||||
version: 2.12.1
|
||||
resolution: "@bufbuild/protobuf@npm:2.12.1"
|
||||
checksum: 10c0/2d40cfe4ec3bb0e3f06ab2e28771dc5dc566eaacb055fbe893d75621b0407d0272d48f40a490ad47ded839ed541514e1af71bb13af024b3ae36ef0c56d56dda9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@connectrpc/connect-node@npm:^2.1.2":
|
||||
version: 2.1.2
|
||||
resolution: "@connectrpc/connect-node@npm:2.1.2"
|
||||
peerDependencies:
|
||||
"@bufbuild/protobuf": ^2.7.0
|
||||
"@connectrpc/connect": 2.1.2
|
||||
checksum: 10c0/ba8b0c9384c3829b377aa7a826dc0cd50a6093527d2ec7014604912836336ea9604a2b5acea42b10477f8be4569e49dded66ca0fc77f5f5b027035e029e13ea9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@connectrpc/connect@npm:^2.1.2":
|
||||
version: 2.1.2
|
||||
resolution: "@connectrpc/connect@npm:2.1.2"
|
||||
peerDependencies:
|
||||
"@bufbuild/protobuf": ^2.7.0
|
||||
checksum: 10c0/4e1500089023b752efd44fa940a5ae1e1fa00e1bebc4ba0ced272bb935920d8c3b85b77450e644ad442bb8ca9a275b0c17136f896ba8eff036178131db01d615
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/aix-ppc64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/aix-ppc64@npm:0.25.12"
|
||||
conditions: os=aix & cpu=ppc64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/android-arm64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/android-arm64@npm:0.25.12"
|
||||
conditions: os=android & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/android-arm@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/android-arm@npm:0.25.12"
|
||||
conditions: os=android & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/android-x64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/android-x64@npm:0.25.12"
|
||||
conditions: os=android & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/darwin-arm64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/darwin-arm64@npm:0.25.12"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/darwin-x64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/darwin-x64@npm:0.25.12"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/freebsd-arm64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/freebsd-arm64@npm:0.25.12"
|
||||
conditions: os=freebsd & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/freebsd-x64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/freebsd-x64@npm:0.25.12"
|
||||
conditions: os=freebsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-arm64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/linux-arm64@npm:0.25.12"
|
||||
conditions: os=linux & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-arm@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/linux-arm@npm:0.25.12"
|
||||
conditions: os=linux & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-ia32@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/linux-ia32@npm:0.25.12"
|
||||
conditions: os=linux & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-loong64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/linux-loong64@npm:0.25.12"
|
||||
conditions: os=linux & cpu=loong64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-mips64el@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/linux-mips64el@npm:0.25.12"
|
||||
conditions: os=linux & cpu=mips64el
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-ppc64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/linux-ppc64@npm:0.25.12"
|
||||
conditions: os=linux & cpu=ppc64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-riscv64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/linux-riscv64@npm:0.25.12"
|
||||
conditions: os=linux & cpu=riscv64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-s390x@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/linux-s390x@npm:0.25.12"
|
||||
conditions: os=linux & cpu=s390x
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-x64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/linux-x64@npm:0.25.12"
|
||||
conditions: os=linux & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/netbsd-arm64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/netbsd-arm64@npm:0.25.12"
|
||||
conditions: os=netbsd & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/netbsd-x64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/netbsd-x64@npm:0.25.12"
|
||||
conditions: os=netbsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/openbsd-arm64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/openbsd-arm64@npm:0.25.12"
|
||||
conditions: os=openbsd & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/openbsd-x64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/openbsd-x64@npm:0.25.12"
|
||||
conditions: os=openbsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/openharmony-arm64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/openharmony-arm64@npm:0.25.12"
|
||||
conditions: os=openharmony & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/sunos-x64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/sunos-x64@npm:0.25.12"
|
||||
conditions: os=sunos & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/win32-arm64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/win32-arm64@npm:0.25.12"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/win32-ia32@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/win32-ia32@npm:0.25.12"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/win32-x64@npm:0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "@esbuild/win32-x64@npm:0.25.12"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@quixos/camino-package-runtime@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=cd2b04dc8c2daeea633bf8ecdd31d20fdc41f2ab":
|
||||
version: 0.1.0
|
||||
resolution: "@quixos/camino-package-runtime@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=cd2b04dc8c2daeea633bf8ecdd31d20fdc41f2ab"
|
||||
dependencies:
|
||||
"@bufbuild/protobuf": "npm:^2.12.1"
|
||||
"@connectrpc/connect": "npm:^2.1.2"
|
||||
"@connectrpc/connect-node": "npm:^2.1.2"
|
||||
checksum: 10c0/7872db96f52fee3cc6278e69f63ecf63952c2bbe0e7b2669d99dfaac2e648b40651945e0087033789e98bda5a8bfae38df79122c94fd36392870e81469c56f66
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@quixos/project-react-runtime@workspace:.":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@quixos/project-react-runtime@workspace:."
|
||||
dependencies:
|
||||
"@quixos/camino-package-runtime": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/camino-package-runtime.git#commit=cd2b04dc8c2daeea633bf8ecdd31d20fdc41f2ab"
|
||||
"@types/node": "npm:^24"
|
||||
"@types/react": "npm:^18.3.12"
|
||||
esbuild: "npm:^0.25.12"
|
||||
react: "npm:^18.3.1"
|
||||
typescript: "npm:^7.0.2"
|
||||
bin:
|
||||
server: dist/server.js
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@types/node@npm:^24":
|
||||
version: 24.13.3
|
||||
resolution: "@types/node@npm:24.13.3"
|
||||
dependencies:
|
||||
undici-types: "npm:~7.18.0"
|
||||
checksum: 10c0/a5bc08f49b9581dcdca90e02cd77197a3c799840807664942e5cd5161a553d4d2ae8064f7e3294410d748d7d098b5c1848be7fa50c06f29c4193ab16be4e59eb
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/prop-types@npm:*":
|
||||
version: 15.7.15
|
||||
resolution: "@types/prop-types@npm:15.7.15"
|
||||
checksum: 10c0/b59aad1ad19bf1733cf524fd4e618196c6c7690f48ee70a327eb450a42aab8e8a063fbe59ca0a5701aebe2d92d582292c0fb845ea57474f6a15f6994b0e260b2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/react@npm:^18.3.12":
|
||||
version: 18.3.31
|
||||
resolution: "@types/react@npm:18.3.31"
|
||||
dependencies:
|
||||
"@types/prop-types": "npm:*"
|
||||
csstype: "npm:^3.2.2"
|
||||
checksum: 10c0/44180549dd045f536ececd39e39aacdf828e76adc1c4a90b132f453e23cc370c4648d9102ae401172ebd8fd8b1977a901a39e214e53ec77171b27514b588c179
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-aix-ppc64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-aix-ppc64@npm:7.0.2"
|
||||
conditions: os=aix & cpu=ppc64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-darwin-arm64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-darwin-arm64@npm:7.0.2"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-darwin-x64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-darwin-x64@npm:7.0.2"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-freebsd-arm64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-freebsd-arm64@npm:7.0.2"
|
||||
conditions: os=freebsd & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-freebsd-x64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-freebsd-x64@npm:7.0.2"
|
||||
conditions: os=freebsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-linux-arm64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-linux-arm64@npm:7.0.2"
|
||||
conditions: os=linux & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-linux-arm@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-linux-arm@npm:7.0.2"
|
||||
conditions: os=linux & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-linux-loong64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-linux-loong64@npm:7.0.2"
|
||||
conditions: os=linux & cpu=loong64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-linux-mips64el@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-linux-mips64el@npm:7.0.2"
|
||||
conditions: os=linux & cpu=mips64el
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-linux-ppc64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-linux-ppc64@npm:7.0.2"
|
||||
conditions: os=linux & cpu=ppc64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-linux-riscv64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-linux-riscv64@npm:7.0.2"
|
||||
conditions: os=linux & cpu=riscv64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-linux-s390x@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-linux-s390x@npm:7.0.2"
|
||||
conditions: os=linux & cpu=s390x
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-linux-x64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-linux-x64@npm:7.0.2"
|
||||
conditions: os=linux & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-netbsd-arm64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-netbsd-arm64@npm:7.0.2"
|
||||
conditions: os=netbsd & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-netbsd-x64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-netbsd-x64@npm:7.0.2"
|
||||
conditions: os=netbsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-openbsd-arm64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-openbsd-arm64@npm:7.0.2"
|
||||
conditions: os=openbsd & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-openbsd-x64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-openbsd-x64@npm:7.0.2"
|
||||
conditions: os=openbsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-sunos-x64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-sunos-x64@npm:7.0.2"
|
||||
conditions: os=sunos & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-win32-arm64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-win32-arm64@npm:7.0.2"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript/typescript-win32-x64@npm:7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "@typescript/typescript-win32-x64@npm:7.0.2"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"csstype@npm:^3.2.2":
|
||||
version: 3.2.3
|
||||
resolution: "csstype@npm:3.2.3"
|
||||
checksum: 10c0/cd29c51e70fa822f1cecd8641a1445bed7063697469d35633b516e60fe8c1bde04b08f6c5b6022136bb669b64c63d4173af54864510fbb4ee23281801841a3ce
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild@npm:^0.25.12":
|
||||
version: 0.25.12
|
||||
resolution: "esbuild@npm:0.25.12"
|
||||
dependencies:
|
||||
"@esbuild/aix-ppc64": "npm:0.25.12"
|
||||
"@esbuild/android-arm": "npm:0.25.12"
|
||||
"@esbuild/android-arm64": "npm:0.25.12"
|
||||
"@esbuild/android-x64": "npm:0.25.12"
|
||||
"@esbuild/darwin-arm64": "npm:0.25.12"
|
||||
"@esbuild/darwin-x64": "npm:0.25.12"
|
||||
"@esbuild/freebsd-arm64": "npm:0.25.12"
|
||||
"@esbuild/freebsd-x64": "npm:0.25.12"
|
||||
"@esbuild/linux-arm": "npm:0.25.12"
|
||||
"@esbuild/linux-arm64": "npm:0.25.12"
|
||||
"@esbuild/linux-ia32": "npm:0.25.12"
|
||||
"@esbuild/linux-loong64": "npm:0.25.12"
|
||||
"@esbuild/linux-mips64el": "npm:0.25.12"
|
||||
"@esbuild/linux-ppc64": "npm:0.25.12"
|
||||
"@esbuild/linux-riscv64": "npm:0.25.12"
|
||||
"@esbuild/linux-s390x": "npm:0.25.12"
|
||||
"@esbuild/linux-x64": "npm:0.25.12"
|
||||
"@esbuild/netbsd-arm64": "npm:0.25.12"
|
||||
"@esbuild/netbsd-x64": "npm:0.25.12"
|
||||
"@esbuild/openbsd-arm64": "npm:0.25.12"
|
||||
"@esbuild/openbsd-x64": "npm:0.25.12"
|
||||
"@esbuild/openharmony-arm64": "npm:0.25.12"
|
||||
"@esbuild/sunos-x64": "npm:0.25.12"
|
||||
"@esbuild/win32-arm64": "npm:0.25.12"
|
||||
"@esbuild/win32-ia32": "npm:0.25.12"
|
||||
"@esbuild/win32-x64": "npm:0.25.12"
|
||||
dependenciesMeta:
|
||||
"@esbuild/aix-ppc64":
|
||||
optional: true
|
||||
"@esbuild/android-arm":
|
||||
optional: true
|
||||
"@esbuild/android-arm64":
|
||||
optional: true
|
||||
"@esbuild/android-x64":
|
||||
optional: true
|
||||
"@esbuild/darwin-arm64":
|
||||
optional: true
|
||||
"@esbuild/darwin-x64":
|
||||
optional: true
|
||||
"@esbuild/freebsd-arm64":
|
||||
optional: true
|
||||
"@esbuild/freebsd-x64":
|
||||
optional: true
|
||||
"@esbuild/linux-arm":
|
||||
optional: true
|
||||
"@esbuild/linux-arm64":
|
||||
optional: true
|
||||
"@esbuild/linux-ia32":
|
||||
optional: true
|
||||
"@esbuild/linux-loong64":
|
||||
optional: true
|
||||
"@esbuild/linux-mips64el":
|
||||
optional: true
|
||||
"@esbuild/linux-ppc64":
|
||||
optional: true
|
||||
"@esbuild/linux-riscv64":
|
||||
optional: true
|
||||
"@esbuild/linux-s390x":
|
||||
optional: true
|
||||
"@esbuild/linux-x64":
|
||||
optional: true
|
||||
"@esbuild/netbsd-arm64":
|
||||
optional: true
|
||||
"@esbuild/netbsd-x64":
|
||||
optional: true
|
||||
"@esbuild/openbsd-arm64":
|
||||
optional: true
|
||||
"@esbuild/openbsd-x64":
|
||||
optional: true
|
||||
"@esbuild/openharmony-arm64":
|
||||
optional: true
|
||||
"@esbuild/sunos-x64":
|
||||
optional: true
|
||||
"@esbuild/win32-arm64":
|
||||
optional: true
|
||||
"@esbuild/win32-ia32":
|
||||
optional: true
|
||||
"@esbuild/win32-x64":
|
||||
optional: true
|
||||
bin:
|
||||
esbuild: bin/esbuild
|
||||
checksum: 10c0/c205357531423220a9de8e1e6c6514242bc9b1666e762cd67ccdf8fdfdc3f1d0bd76f8d9383958b97ad4c953efdb7b6e8c1f9ca5951cd2b7c5235e8755b34a6b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"js-tokens@npm:^3.0.0 || ^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "js-tokens@npm:4.0.0"
|
||||
checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"loose-envify@npm:^1.1.0":
|
||||
version: 1.4.0
|
||||
resolution: "loose-envify@npm:1.4.0"
|
||||
dependencies:
|
||||
js-tokens: "npm:^3.0.0 || ^4.0.0"
|
||||
bin:
|
||||
loose-envify: cli.js
|
||||
checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react@npm:^18.3.1":
|
||||
version: 18.3.1
|
||||
resolution: "react@npm:18.3.1"
|
||||
dependencies:
|
||||
loose-envify: "npm:^1.1.0"
|
||||
checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"typescript@npm:^7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "typescript@npm:7.0.2"
|
||||
dependencies:
|
||||
"@typescript/typescript-aix-ppc64": "npm:7.0.2"
|
||||
"@typescript/typescript-darwin-arm64": "npm:7.0.2"
|
||||
"@typescript/typescript-darwin-x64": "npm:7.0.2"
|
||||
"@typescript/typescript-freebsd-arm64": "npm:7.0.2"
|
||||
"@typescript/typescript-freebsd-x64": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-arm": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-arm64": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-loong64": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-mips64el": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-ppc64": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-riscv64": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-s390x": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-x64": "npm:7.0.2"
|
||||
"@typescript/typescript-netbsd-arm64": "npm:7.0.2"
|
||||
"@typescript/typescript-netbsd-x64": "npm:7.0.2"
|
||||
"@typescript/typescript-openbsd-arm64": "npm:7.0.2"
|
||||
"@typescript/typescript-openbsd-x64": "npm:7.0.2"
|
||||
"@typescript/typescript-sunos-x64": "npm:7.0.2"
|
||||
"@typescript/typescript-win32-arm64": "npm:7.0.2"
|
||||
"@typescript/typescript-win32-x64": "npm:7.0.2"
|
||||
dependenciesMeta:
|
||||
"@typescript/typescript-aix-ppc64":
|
||||
optional: true
|
||||
"@typescript/typescript-darwin-arm64":
|
||||
optional: true
|
||||
"@typescript/typescript-darwin-x64":
|
||||
optional: true
|
||||
"@typescript/typescript-freebsd-arm64":
|
||||
optional: true
|
||||
"@typescript/typescript-freebsd-x64":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-arm":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-arm64":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-loong64":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-mips64el":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-ppc64":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-riscv64":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-s390x":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-x64":
|
||||
optional: true
|
||||
"@typescript/typescript-netbsd-arm64":
|
||||
optional: true
|
||||
"@typescript/typescript-netbsd-x64":
|
||||
optional: true
|
||||
"@typescript/typescript-openbsd-arm64":
|
||||
optional: true
|
||||
"@typescript/typescript-openbsd-x64":
|
||||
optional: true
|
||||
"@typescript/typescript-sunos-x64":
|
||||
optional: true
|
||||
"@typescript/typescript-win32-arm64":
|
||||
optional: true
|
||||
"@typescript/typescript-win32-x64":
|
||||
optional: true
|
||||
bin:
|
||||
tsc: bin/tsc
|
||||
checksum: 10c0/3dcee51ec8c332492325bcdbf7df48b66668751f127e622ae7d41b6c716eb19184424a45e14f7750f50f340232388b69e6287859155f06a5ce2df76f12cb31cf
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"typescript@patch:typescript@npm%3A^7.0.2#optional!builtin<compat/typescript>":
|
||||
version: 7.0.2
|
||||
resolution: "typescript@patch:typescript@npm%3A7.0.2#optional!builtin<compat/typescript>::version=7.0.2&hash=3bafbf"
|
||||
dependencies:
|
||||
"@typescript/typescript-aix-ppc64": "npm:7.0.2"
|
||||
"@typescript/typescript-darwin-arm64": "npm:7.0.2"
|
||||
"@typescript/typescript-darwin-x64": "npm:7.0.2"
|
||||
"@typescript/typescript-freebsd-arm64": "npm:7.0.2"
|
||||
"@typescript/typescript-freebsd-x64": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-arm": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-arm64": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-loong64": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-mips64el": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-ppc64": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-riscv64": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-s390x": "npm:7.0.2"
|
||||
"@typescript/typescript-linux-x64": "npm:7.0.2"
|
||||
"@typescript/typescript-netbsd-arm64": "npm:7.0.2"
|
||||
"@typescript/typescript-netbsd-x64": "npm:7.0.2"
|
||||
"@typescript/typescript-openbsd-arm64": "npm:7.0.2"
|
||||
"@typescript/typescript-openbsd-x64": "npm:7.0.2"
|
||||
"@typescript/typescript-sunos-x64": "npm:7.0.2"
|
||||
"@typescript/typescript-win32-arm64": "npm:7.0.2"
|
||||
"@typescript/typescript-win32-x64": "npm:7.0.2"
|
||||
dependenciesMeta:
|
||||
"@typescript/typescript-aix-ppc64":
|
||||
optional: true
|
||||
"@typescript/typescript-darwin-arm64":
|
||||
optional: true
|
||||
"@typescript/typescript-darwin-x64":
|
||||
optional: true
|
||||
"@typescript/typescript-freebsd-arm64":
|
||||
optional: true
|
||||
"@typescript/typescript-freebsd-x64":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-arm":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-arm64":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-loong64":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-mips64el":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-ppc64":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-riscv64":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-s390x":
|
||||
optional: true
|
||||
"@typescript/typescript-linux-x64":
|
||||
optional: true
|
||||
"@typescript/typescript-netbsd-arm64":
|
||||
optional: true
|
||||
"@typescript/typescript-netbsd-x64":
|
||||
optional: true
|
||||
"@typescript/typescript-openbsd-arm64":
|
||||
optional: true
|
||||
"@typescript/typescript-openbsd-x64":
|
||||
optional: true
|
||||
"@typescript/typescript-sunos-x64":
|
||||
optional: true
|
||||
"@typescript/typescript-win32-arm64":
|
||||
optional: true
|
||||
"@typescript/typescript-win32-x64":
|
||||
optional: true
|
||||
bin:
|
||||
tsc: bin/tsc
|
||||
checksum: 10c0/6b3cdc369cd829d46e00734ea64233ee84419c2825ad8fe408915adde77abced4b7a2401f7eed517d54a7a4f5d1c1869753cb99018df1c2159c761d9f33483a6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici-types@npm:~7.18.0":
|
||||
version: 7.18.2
|
||||
resolution: "undici-types@npm:7.18.2"
|
||||
checksum: 10c0/85a79189113a238959d7a647368e4f7c5559c3a404ebdb8fc4488145ce9426fcd82252a844a302798dfc0e37e6fb178ff481ed03bc4caf634c5757d9ef43521d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
Reference in New Issue
Block a user