@highstate/cli 0.9.29 → 0.9.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/highstate.manifest.json +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/package.json +4 -4
package/dist/main.js
CHANGED
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../package.json","../src/shared/logger.ts","../src/shared/bin-transformer.ts","../src/shared/entry-points.ts","../src/shared/schema-transformer.ts","../src/shared/schemas.ts","../src/shared/services.ts","../src/shared/source-hash-calculator.ts","../src/shared/workspace.ts","../src/commands/backend/identity.ts","../src/commands/backend/unlock-method/add.ts","../src/commands/backend/unlock-method/delete.ts","../src/commands/backend/unlock-method/list.ts","../src/commands/build.ts","../src/commands/designer.ts","../src/commands/package/create.ts","../src/commands/package/list.ts","../src/commands/package/remove.ts","../src/commands/package/update-references.ts","../src/main.ts"],"names":["build","readFile","logger","input","z","importMetaResolve","relative","resolve","writeFile","Command","services","Option","disposeServices","readPackageJSON","resolvePackageJSON","consola","Table"],"mappings":"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","file":"main.js","sourcesContent":["{\n \"name\": \"@highstate/cli\",\n \"version\": \"0.9.28\",\n \"description\": \"The CLI for the Highstate project.\",\n \"type\": \"module\",\n \"files\": [\n \"assets\",\n \"dist\",\n \"src\"\n ],\n \"bin\": {\n \"highstate\": \"./dist/main.js\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"scripts\": {\n \"build\": \"highstate build\",\n \"test\": \"vitest run\",\n \"typecheck\": \"tsgo --noEmit --skipLibCheck\",\n \"biome\": \"biome check --write --unsafe --error-on-warnings\",\n \"biome:check\": \"biome check --error-on-warnings\"\n },\n \"dependencies\": {\n \"@aws-crypto/crc32\": \"^5.2.0\",\n \"@highstate/backend\": \"workspace:^0.9.28\",\n \"@highstate/contract\": \"workspace:^0.9.28\",\n \"@inquirer/prompts\": \"^7.8.6\",\n \"@msgpack/msgpack\": \"^3.1.2\",\n \"@pulumi/pulumi\": \"^3.197.0\",\n \"age-encryption\": \"^0.2.4\",\n \"ajv\": \"^8.17.1\",\n \"clipanion\": \"^4.0.0-rc.4\",\n \"consola\": \"^3.4.0\",\n \"console-table-printer\": \"^2.12.1\",\n \"crypto-hash\": \"^3.1.0\",\n \"get-port-please\": \"^3.1.2\",\n \"import-meta-resolve\": \"^4.1.0\",\n \"magic-string\": \"^0.30.17\",\n \"nypm\": \"^0.6.1\",\n \"oxc-parser\": \"^0.63.0\",\n \"oxc-walker\": \"^0.2.4\",\n \"pino\": \"^9.6.0\",\n \"pkg-types\": \"^1.2.1\",\n \"remeda\": \"^2.21.2\",\n \"tsup\": \"^8.4.0\",\n \"zod\": \"^4.0.5\"\n },\n \"peerDependenciesMeta\": {\n \"@pulumi/pulumi\": {\n \"optional\": true\n },\n \"classic-level\": {\n \"optional\": true\n }\n },\n \"devDependencies\": {\n \"@biomejs/biome\": \"2.2.0\",\n \"@typescript/native-preview\": \"^7.0.0-dev.20250920.1\",\n \"highstate-cli-bootstrap\": \"patch:@highstate/cli@npm%3A0.9.16#~/.yarn/patches/@highstate-cli-npm-0.9.16-e03b564691.patch\",\n \"vitest\": \"^3.2.4\"\n }\n}\n","import { PassThrough } from \"node:stream\"\nimport { consola, LogLevels } from \"consola\"\nimport pino, { levels } from \"pino\"\n\nexport const logger = pino(\n {\n name: \"highstate-cli\",\n level: process.env.LOG_LEVEL ?? \"info\",\n },\n createConsolaStream(),\n)\n\nconsola.level = LogLevels[(process.env.LOG_LEVEL as keyof typeof LogLevels) ?? \"info\"]\n\nfunction createConsolaStream() {\n const stream = new PassThrough()\n\n stream.on(\"data\", data => {\n const { level, msg, error } = JSON.parse(String(data)) as {\n msg: string\n level: number\n error?: unknown\n }\n\n const levelLabel = levels.labels[level]\n\n switch (levelLabel) {\n case \"info\":\n consola.info(msg)\n break\n case \"warn\":\n consola.warn(msg)\n break\n case \"error\":\n if (error) {\n consola.error(msg, error)\n } else {\n consola.error(msg)\n }\n break\n case \"debug\":\n consola.debug(msg)\n break\n case \"fatal\":\n consola.fatal(msg)\n break\n case \"trace\":\n consola.trace(msg)\n break\n }\n })\n\n return stream\n}\n","import type { Plugin } from \"esbuild\"\nimport { readFile } from \"node:fs/promises\"\nimport { logger } from \"./logger\"\n\nexport function createBinTransformerPlugin(sourceFilePaths: string[]): Plugin {\n const filter = new RegExp(`(${sourceFilePaths.join(\"|\")})$`)\n\n logger.debug(\"created bin transformer plugin with filter: %s\", filter)\n\n return {\n name: \"bin-transformer\",\n setup(build) {\n build.onLoad({ filter }, async args => {\n const content = await readFile(args.path, \"utf-8\")\n\n return {\n contents: `#!/usr/bin/env node\\n\\n${content}`,\n loader: \"ts\",\n }\n })\n },\n }\n}\n","import type { PackageJson } from \"pkg-types\"\nimport { logger } from \"./logger\"\n\nexport interface EntryPoint {\n targetName: string\n entryPoint: string\n distPath: string\n isBin: boolean\n key: string\n}\n\n/**\n * Extracts entry points from package.json exports and bin fields\n */\nexport function extractEntryPoints(packageJson: PackageJson): Record<string, EntryPoint> {\n const exports = packageJson.exports\n let bin = packageJson.bin\n\n if (!exports && !bin) {\n logger.warn(\"no exports or bin found in package.json\")\n return {}\n }\n\n if (exports !== undefined && (typeof exports !== \"object\" || Array.isArray(exports))) {\n throw new Error(\"Exports field in package.json must be an object\")\n }\n\n if (bin !== undefined && typeof bin !== \"object\") {\n if (!packageJson.name) {\n throw new Error(\"Package name is required when bin is a string\")\n }\n bin = { [packageJson.name]: bin as string }\n }\n\n const result: Record<string, EntryPoint> = {}\n\n // process exports entries\n if (exports) {\n for (const [key, value] of Object.entries(exports)) {\n let distPath: string\n\n if (typeof value === \"string\") {\n distPath = value\n } else if (typeof value === \"object\" && !Array.isArray(value)) {\n if (!value.default) {\n throw new Error(`Export \"${key}\" must have a default field in package.json`)\n }\n\n if (typeof value.default !== \"string\") {\n throw new Error(`Export \"${key}\" default field must be a string in package.json`)\n }\n\n distPath = value.default\n } else {\n throw new Error(`Export \"${key}\" must be a string or an object in package.json`)\n }\n\n if (!distPath.startsWith(\"./dist/\")) {\n throw new Error(\n `The default value of export \"${key}\" must start with \"./dist/\" in package.json, got \"${distPath}\"`,\n )\n }\n\n if (!distPath.endsWith(\".js\")) {\n throw new Error(\n `The default value of export \"${key}\" must end with \".js\" in package.json, got \"${distPath}\"`,\n )\n }\n\n const targetName = distPath.slice(7).slice(0, -3)\n\n result[targetName] = {\n entryPoint: `./src/${targetName}.ts`,\n targetName,\n distPath,\n isBin: false,\n key,\n }\n }\n }\n\n // process bin entries\n if (bin) {\n for (const [key, value] of Object.entries(bin)) {\n if (typeof value !== \"string\") {\n throw new Error(`Bin entry \"${key}\" must be a string in package.json`)\n }\n\n const distPath = value\n\n if (!distPath.startsWith(\"./dist/\")) {\n throw new Error(\n `The value of bin entry \"${key}\" must start with \"./dist/\" in package.json, got \"${distPath}\"`,\n )\n }\n\n if (!distPath.endsWith(\".js\")) {\n throw new Error(\n `The value of bin entry \"${key}\" must end with \".js\" in package.json, got \"${distPath}\"`,\n )\n }\n\n const targetName = distPath.slice(7).slice(0, -3)\n\n result[targetName] = {\n entryPoint: `./src/${targetName}.ts`,\n targetName,\n distPath,\n isBin: true,\n key,\n }\n }\n }\n\n return result\n}\n","import type { Plugin } from \"esbuild\"\nimport { readFile } from \"node:fs/promises\"\nimport MagicString from \"magic-string\"\nimport {\n type CallExpression,\n type Comment,\n type MemberExpression,\n type ObjectProperty,\n parseAsync,\n} from \"oxc-parser\"\nimport { type Node, walk } from \"oxc-walker\"\n\nexport const schemaTransformerPlugin: Plugin = {\n name: \"schema-transformer\",\n setup(build) {\n build.onLoad({ filter: /src\\/.*\\.ts$/ }, async args => {\n const content = await readFile(args.path, \"utf-8\")\n\n return {\n contents: await applySchemaTransformations(content),\n loader: \"ts\",\n }\n })\n },\n}\n\nexport async function applySchemaTransformations(content: string): Promise<string> {\n // first pass: apply zod meta transformations\n let result = await applyZodMetaTransformations(content)\n\n // second pass: apply helper function transformations\n result = await applyHelperFunctionTransformations(result)\n\n // third pass: apply define function meta transformations\n result = await applyDefineFunctionMetaTransformations(result)\n\n return result\n}\n\nasync function applyZodMetaTransformations(content: string): Promise<string> {\n const { program, comments } = await parseAsync(\"file.ts\", content)\n const parentStack: Node[] = []\n let hasTransformations = false\n const result = new MagicString(content)\n\n walk(program, {\n enter(node) {\n parentStack.push(node)\n\n // handle zod object patterns\n if (isZodObjectProperty(node, parentStack)) {\n const jsdoc = findLeadingComment(content, node, comments)\n if (jsdoc) {\n const description = cleanJsdoc(jsdoc.value)\n const fieldName =\n \"name\" in node.key && typeof node.key.name === \"string\" ? node.key.name : \"unknown\"\n const originalValue = content.substring(node.value.start, node.value.end)\n\n if (!originalValue.includes(\".meta(\")) {\n const newValue = `${originalValue}.meta({ title: __camelCaseToHumanReadable(\"${fieldName}\"), description: \\`${description}\\` })`\n result.update(node.value.start, node.value.end, newValue)\n hasTransformations = true\n }\n }\n }\n },\n leave() {\n parentStack.pop()\n },\n })\n\n let finalResult = result.toString()\n\n // add import at the beginning if needed\n if (hasTransformations && !content.includes(\"__camelCaseToHumanReadable\")) {\n finalResult =\n 'import { camelCaseToHumanReadable as __camelCaseToHumanReadable } from \"@highstate/contract\"\\n' +\n finalResult\n }\n\n return finalResult\n}\n\nasync function applyHelperFunctionTransformations(content: string): Promise<string> {\n const { program, comments } = await parseAsync(\"file.ts\", content)\n const parentStack: Node[] = []\n let hasTransformations = false\n const result = new MagicString(content)\n\n walk(program, {\n enter(node) {\n parentStack.push(node)\n\n // handle properties in args, inputs, outputs, secrets objects\n if (node.type === \"Property\" && \"key\" in node && node.key?.type === \"Identifier\") {\n const propertyNode = node\n const parentKey = getParentObjectKey(parentStack)\n\n if (parentKey && [\"inputs\", \"outputs\", \"args\", \"secrets\"].includes(parentKey)) {\n const jsdoc = findLeadingComment(content, node, comments)\n\n if (jsdoc) {\n const description = cleanJsdoc(jsdoc.value)\n const originalValue = content.substring(\n propertyNode.value.start,\n propertyNode.value.end,\n )\n\n let helperFunction: string\n if ([\"args\", \"secrets\"].includes(parentKey)) {\n helperFunction = \"$addArgumentDescription\"\n } else {\n helperFunction = \"$addInputDescription\"\n }\n\n const newValue = `${helperFunction}(${originalValue}, \\`${description}\\`)`\n result.update(propertyNode.value.start, propertyNode.value.end, newValue)\n hasTransformations = true\n }\n }\n }\n },\n leave() {\n parentStack.pop()\n },\n })\n\n let finalResult = result.toString()\n\n // add import at the beginning if needed\n if (hasTransformations && !content.includes(\"$addArgumentDescription\")) {\n finalResult =\n 'import { $addArgumentDescription, $addInputDescription } from \"@highstate/contract\"\\n' +\n finalResult\n }\n\n return finalResult\n}\n\nasync function applyDefineFunctionMetaTransformations(content: string): Promise<string> {\n const { program, comments } = await parseAsync(\"file.ts\", content)\n const parentStack: Node[] = []\n const result = new MagicString(content)\n\n walk(program, {\n enter(node) {\n parentStack.push(node)\n\n // handle defineUnit, defineEntity, defineComponent function calls\n if (node.type === \"CallExpression\" && \"callee\" in node && node.callee.type === \"Identifier\") {\n const callNode = node\n const callee = callNode.callee\n const functionName =\n \"name\" in callee && typeof callee.name === \"string\" ? callee.name : undefined\n\n if (\n functionName &&\n [\"defineUnit\", \"defineEntity\", \"defineComponent\"].includes(functionName)\n ) {\n // look for JSDoc comment on the parent declaration/export, not the function call itself\n const jsdoc = findJsdocForDefineFunction(content, parentStack, comments)\n\n if (jsdoc && callNode.arguments && callNode.arguments.length > 0) {\n const description = cleanJsdoc(jsdoc.value)\n const firstArg = callNode.arguments[0]\n\n // find meta property in the object expression\n if (firstArg.type === \"ObjectExpression\" && \"properties\" in firstArg) {\n const properties = firstArg.properties\n const metaProperty = properties?.find(\n prop =>\n prop.type === \"Property\" &&\n \"key\" in prop &&\n prop.key?.type === \"Identifier\" &&\n prop.key?.name === \"meta\",\n ) as ObjectProperty | undefined\n\n if (metaProperty && \"value\" in metaProperty) {\n // inject description into existing meta object\n const originalMetaValue = content.substring(\n metaProperty.value.start,\n metaProperty.value.end,\n )\n const newMetaValue = injectDescriptionIntoMetaObject(originalMetaValue, description)\n result.update(metaProperty.value.start, metaProperty.value.end, newMetaValue)\n } else if (properties && properties.length > 0) {\n // add meta property with description\n const lastProperty = properties[properties.length - 1] as ObjectProperty\n if (lastProperty && \"end\" in lastProperty) {\n const insertPos = lastProperty.end\n const newMetaProperty = `,\n\n meta: {\n description: \\`${description}\\`,\n }`\n result.appendLeft(insertPos, newMetaProperty)\n }\n }\n }\n }\n }\n }\n },\n leave() {\n parentStack.pop()\n },\n })\n\n return result.toString()\n}\n\nfunction findJsdocForDefineFunction(\n content: string,\n parentStack: Node[],\n comments: Comment[],\n): Comment | null {\n // look for the variable declaration or export declaration that contains the function call\n for (let i = parentStack.length - 1; i >= 0; i--) {\n const node = parentStack[i]\n\n // check for variable declaration (const x = defineUnit(...))\n if (node.type === \"VariableDeclarator\" && \"id\" in node && node.id?.type === \"Identifier\") {\n const jsdoc = findLeadingComment(content, node, comments)\n if (jsdoc) return jsdoc\n }\n\n // check for export variable declaration (export const x = defineUnit(...))\n if (node.type === \"VariableDeclaration\") {\n const jsdoc = findLeadingComment(content, node, comments)\n if (jsdoc) return jsdoc\n }\n\n // check for export declaration (export const x = ...)\n if (node.type === \"ExportNamedDeclaration\" && \"declaration\" in node && node.declaration) {\n const jsdoc = findLeadingComment(content, node, comments)\n if (jsdoc) return jsdoc\n }\n }\n\n return null\n}\n\nfunction isZodObjectProperty(node: Node, parentStack: Node[]): node is ObjectProperty {\n return (\n node.type === \"Property\" &&\n \"key\" in node &&\n node.key?.type === \"Identifier\" &&\n isInsideZodObject(parentStack)\n )\n}\n\nfunction findLeadingComment(content: string, node: Node, comments: Comment[]): Comment | null {\n return comments.find(comment => isLeadingComment(content, node, comment)) ?? null\n}\n\nfunction getParentObjectKey(parentStack: Node[]): string | null {\n // walk up the parent stack to find the parent object property\n for (let i = parentStack.length - 2; i >= 0; i--) {\n const node = parentStack[i]\n if (node.type === \"Property\" && \"key\" in node && node.key.type === \"Identifier\") {\n return node.key.name\n }\n }\n return null\n}\n\nfunction isLeadingComment(content: string, node: Node, comment: Comment) {\n if (comment.end > node.start) {\n return false\n }\n\n const contentRange = content.substring(comment.end, node.start)\n\n return contentRange.trim().length === 0\n}\n\nfunction cleanJsdoc(str: string) {\n return (\n str\n // remove leading asterisks\n .replace(/^\\s*\\*/gm, \"\")\n\n // escape backticks and dollar signs\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/`/g, \"\\\\`\")\n .replace(/\\${/g, \"\\\\${\")\n .trim()\n )\n}\n\nfunction injectDescriptionIntoMetaObject(objectString: string, description: string): string {\n const trimmed = objectString.trim()\n\n // Check if description already exists\n const hasDescription = /description\\s*:/.test(trimmed)\n\n if (hasDescription) {\n // Replace existing description\n return trimmed.replace(/description\\s*:\\s*`[^`]*`/, `description: \\`${description}\\``)\n } else {\n // Add description field at the beginning of the object\n const openBraceIndex = trimmed.indexOf(\"{\")\n if (openBraceIndex === -1) {\n return trimmed\n }\n\n const beforeBrace = trimmed.substring(0, openBraceIndex + 1)\n const afterBrace = trimmed.substring(openBraceIndex + 1)\n\n return `${beforeBrace}\n description: \\`${description}\\`,${afterBrace}`\n }\n}\n\nfunction isInsideZodObject(parentStack: Node[]): boolean {\n // look for z.object() call expression in the parent stack\n for (let i = parentStack.length - 1; i >= 0; i--) {\n const node = parentStack[i]\n if (\n node.type === \"CallExpression\" &&\n \"callee\" in node &&\n node.callee.type === \"MemberExpression\" &&\n isZodObjectCall(node.callee)\n ) {\n return true\n }\n }\n return false\n}\n\nfunction isZodObjectCall(memberExpression: Node): boolean {\n if (\n memberExpression.type !== \"MemberExpression\" ||\n !(\"object\" in memberExpression) ||\n !(\"property\" in memberExpression)\n ) {\n return false\n }\n\n const member = memberExpression as MemberExpression\n\n // handle direct z.object() calls\n if (\n member.object.type === \"Identifier\" &&\n \"name\" in member.object &&\n member.object.name === \"z\" &&\n member.property.type === \"Identifier\" &&\n member.property.name === \"object\"\n ) {\n return true\n }\n\n // handle chained calls like z.discriminatedUnion().default().object()\n // or any other chained Zod methods that end with .object()\n if (\n member.property.type === \"Identifier\" &&\n member.property.name === \"object\" &&\n member.object.type === \"CallExpression\" &&\n \"callee\" in member.object &&\n member.object.callee.type === \"MemberExpression\"\n ) {\n // recursively check if this is part of a z.* chain\n return startsWithZodCall(member.object)\n }\n\n return false\n}\n\nfunction startsWithZodCall(callExpression: CallExpression): boolean {\n if (!callExpression || callExpression.type !== \"CallExpression\") {\n return false\n }\n\n if (callExpression.callee.type === \"MemberExpression\") {\n const callee = callExpression.callee\n\n // check if this is a direct z.* call\n if (\n callee.object.type === \"Identifier\" &&\n \"name\" in callee.object &&\n callee.object.name === \"z\"\n ) {\n return true\n }\n\n // recursively check nested calls\n if (callee.object.type === \"CallExpression\") {\n return startsWithZodCall(callee.object)\n }\n }\n\n return false\n}\n","import { z } from \"zod\"\n\n/**\n * Schema for the sourceHash configuration in package.json\n */\nexport const sourceHashConfigSchema = z.discriminatedUnion(\"mode\", [\n z.object({\n mode: z.literal(\"manual\"),\n version: z.string(),\n }),\n z.object({\n mode: z.literal(\"auto\"),\n }),\n z.object({\n mode: z.literal(\"version\"),\n }),\n z.object({\n mode: z.literal(\"none\"),\n }),\n])\n\n/**\n * Schema for the highstate configuration in package.json\n */\nexport const highstateConfigSchema = z.object({\n type: z.enum([\"source\", \"library\", \"worker\"]).default(\"source\"),\n sourceHash: z\n .union([sourceHashConfigSchema, z.record(z.string(), sourceHashConfigSchema)])\n .optional(),\n})\n\n/**\n * Schema for the highstate manifest file\n */\nexport const highstateManifestSchema = z.object({\n sourceHashes: z.record(z.string(), z.number()).optional(),\n})\n\nexport type SourceHashConfig = z.infer<typeof sourceHashConfigSchema>\nexport type HighstateConfig = z.infer<typeof highstateConfigSchema>\nexport type HighstateManifest = z.infer<typeof highstateManifestSchema>\n","import type { Services } from \"@highstate/backend\"\nimport { logger } from \"./logger\"\n\nlet services: Promise<Services> | undefined\n\nexport function getBackendServices() {\n if (services) {\n return services\n }\n\n services = import(\"@highstate/backend\").then(({ getSharedServices }) => {\n return getSharedServices({\n services: {\n logger: logger.child({}, { msgPrefix: \"[backend] \" }),\n },\n })\n })\n\n return services\n}\n","import type { Logger } from \"pino\"\nimport { readFile, writeFile } from \"node:fs/promises\"\nimport { dirname, relative, resolve } from \"node:path\"\nimport { fileURLToPath, pathToFileURL } from \"node:url\"\nimport { crc32 } from \"@aws-crypto/crc32\"\nimport { resolve as importMetaResolve } from \"import-meta-resolve\"\nimport { type PackageJson, readPackageJSON, resolvePackageJSON } from \"pkg-types\"\nimport { z } from \"zod\"\nimport {\n type HighstateConfig,\n type HighstateManifest,\n highstateConfigSchema,\n highstateManifestSchema,\n type SourceHashConfig,\n sourceHashConfigSchema,\n} from \"./schemas\"\nimport { int32ToBytes } from \"./utils\"\n\ntype FileDependency =\n | {\n type: \"relative\"\n id: string\n fullPath: string\n }\n | {\n type: \"npm\"\n id: string\n package: string\n }\n\nexport class SourceHashCalculator {\n private readonly dependencyHashes = new Map<string, Promise<number>>()\n private readonly fileHashes = new Map<string, Promise<number>>()\n\n constructor(\n private readonly packageJsonPath: string,\n private readonly packageJson: PackageJson,\n private readonly logger: Logger,\n ) {}\n\n /**\n * Calculates CRC32 hash of a string.\n */\n private hashString(input: string): number {\n return crc32(Buffer.from(input))\n }\n\n /**\n * Gets the highstate configuration from package.json with defaults.\n */\n private getHighstateConfig(packageJson: PackageJson): HighstateConfig {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const rawConfig = packageJson.highstate\n if (!rawConfig) {\n return { type: \"source\" }\n }\n\n try {\n return highstateConfigSchema.parse(rawConfig)\n } catch (error) {\n this.logger.warn(\n { error, packageName: packageJson.name },\n \"invalid highstate configuration, using defaults\",\n )\n return { type: \"source\" }\n }\n }\n\n /**\n * Gets the effective source hash configuration with defaults for a specific output.\n */\n private getSourceHashConfig(\n highstateConfig: HighstateConfig,\n exportKey?: string,\n ): SourceHashConfig {\n if (highstateConfig.sourceHash) {\n // Try to parse as a single config first\n const singleConfigResult = sourceHashConfigSchema.safeParse(highstateConfig.sourceHash)\n if (singleConfigResult.success) {\n return singleConfigResult.data\n }\n\n // Try to parse as a record of configs\n const recordConfigResult = z\n .record(z.string(), sourceHashConfigSchema)\n .safeParse(highstateConfig.sourceHash)\n if (recordConfigResult.success && exportKey) {\n const perOutputConfig = recordConfigResult.data[exportKey]\n if (perOutputConfig) {\n return perOutputConfig\n }\n }\n }\n\n if (highstateConfig.type === \"library\") {\n return { mode: \"none\" }\n }\n\n return { mode: \"auto\" }\n }\n\n async writeHighstateManifest(\n distBasePath: string,\n distPathToExportKey: Map<string, string>,\n ): Promise<void> {\n const highstateConfig = this.getHighstateConfig(this.packageJson)\n\n const promises: Promise<{ distPath: string; hash: number }>[] = []\n\n for (const [distPath, exportKey] of distPathToExportKey) {\n const fullPath = resolve(distPath)\n const sourceHashConfig = this.getSourceHashConfig(highstateConfig, exportKey)\n\n switch (sourceHashConfig.mode) {\n case \"manual\":\n promises.push(\n Promise.resolve({\n distPath,\n hash: this.hashString(sourceHashConfig.version),\n }),\n )\n break\n case \"version\":\n promises.push(\n Promise.resolve({\n distPath,\n hash: this.hashString(this.packageJson.version ?? \"\"),\n }),\n )\n break\n case \"none\":\n promises.push(\n Promise.resolve({\n distPath,\n hash: 0,\n }),\n )\n break\n default:\n promises.push(\n this.getFileHash(fullPath).then(hash => ({\n distPath,\n hash,\n })),\n )\n break\n }\n }\n\n const manifest: HighstateManifest = {\n sourceHashes: {},\n }\n\n const hashes = await Promise.all(promises)\n for (const { distPath, hash } of hashes) {\n manifest.sourceHashes![distPath] = hash\n }\n\n const manifestPath = resolve(distBasePath, \"highstate.manifest.json\")\n await writeFile(manifestPath, JSON.stringify(manifest, null, 2), \"utf8\")\n }\n\n private async getFileHash(fullPath: string): Promise<number> {\n const existingHash = this.fileHashes.get(fullPath)\n if (existingHash) {\n return existingHash\n }\n\n const hash = this.calculateFileHash(fullPath)\n this.fileHashes.set(fullPath, hash)\n\n return hash\n }\n\n private async calculateFileHash(fullPath: string): Promise<number> {\n const content = await readFile(fullPath, \"utf8\")\n const fileDeps = this.parseDependencies(fullPath, content)\n\n const hashes = await Promise.all([\n this.hashString(content),\n ...fileDeps.map(dep => this.getDependencyHash(dep)),\n ])\n\n return crc32(Buffer.concat(hashes.map(int32ToBytes)))\n }\n\n getDependencyHash(dependency: FileDependency): Promise<number> {\n const existingHash = this.dependencyHashes.get(dependency.id)\n if (existingHash) {\n return existingHash\n }\n\n const hash = this.calculateDependencyHash(dependency)\n this.dependencyHashes.set(dependency.id, hash)\n\n return hash\n }\n\n private async calculateDependencyHash(dependency: FileDependency): Promise<number> {\n switch (dependency.type) {\n case \"relative\": {\n return await this.getFileHash(dependency.fullPath)\n }\n case \"npm\": {\n let resolvedUrl: string\n try {\n const baseUrl = pathToFileURL(dirname(this.packageJsonPath))\n\n resolvedUrl = importMetaResolve(dependency.package, baseUrl.toString())\n } catch (error) {\n this.logger.error(`failed to resolve package \"%s\"`, dependency.package)\n throw error\n }\n\n if (resolvedUrl.startsWith(\"node:\")) {\n throw new Error(`\"${dependency.package}\" imported without \"node:\" prefix`)\n }\n\n const resolvedPath = fileURLToPath(resolvedUrl)\n\n const [depPackageJsonPath, depPackageJson] = await this.getPackageJson(resolvedPath)\n const packageName = depPackageJson.name!\n\n this.logger.debug(\n `resolved package.json for \"%s\": \"%s\"`,\n dependency.package,\n depPackageJsonPath,\n )\n\n if (\n !this.packageJson.dependencies?.[packageName] &&\n !this.packageJson.peerDependencies?.[packageName]\n ) {\n this.logger.warn(`package \"%s\" is not listed in package.json dependencies`, packageName)\n }\n\n // try to get source hash from manifest first\n let relativePath = relative(dirname(depPackageJsonPath), resolvedPath)\n relativePath = relativePath.startsWith(\".\") ? relativePath : `./${relativePath}`\n\n const highstateManifestPath = resolve(\n dirname(depPackageJsonPath),\n \"dist\",\n \"highstate.manifest.json\",\n )\n\n let manifest: HighstateManifest | undefined\n try {\n const manifestContent = await readFile(highstateManifestPath, \"utf8\")\n manifest = highstateManifestSchema.parse(JSON.parse(manifestContent))\n } catch (error) {\n this.logger.debug(\n { error },\n `failed to read highstate manifest for package \"%s\"`,\n packageName,\n )\n }\n\n const sourceHash = manifest?.sourceHashes?.[relativePath]\n\n if (sourceHash) {\n this.logger.debug(`resolved source hash for package \"%s\"`, packageName)\n return sourceHash\n }\n\n // use the package version as a fallback hash\n // this case will be applied for most npm packages\n this.logger.debug(`using package version as a fallback hash for \"%s\"`, packageName)\n return this.hashString(depPackageJson.version ?? \"0.0.0\")\n }\n }\n }\n\n private async getPackageJson(basePath: string): Promise<[string, PackageJson]> {\n while (true) {\n const packageJson = await readPackageJSON(basePath)\n if (packageJson.name) {\n const packageJsonPath = await resolvePackageJSON(basePath)\n\n return [packageJsonPath, packageJson]\n }\n\n basePath = resolve(dirname(basePath), \"..\")\n }\n }\n\n private parseDependencies(filePath: string, content: string): FileDependency[] {\n type DependencyMatch = {\n relativePath?: string\n nodeBuiltin?: string\n npmPackage?: string\n }\n\n const dependencyRegex =\n /^[ \\t]*import[\\s\\S]*?\\bfrom\\s*[\"']((?<relativePath>\\.\\.?\\/[^\"']+)|(?<nodeBuiltin>node:[^\"']+)|(?<npmPackage>[^\"']+))[\"']/gm\n\n const matches = content.matchAll(dependencyRegex)\n const dependencies: FileDependency[] = []\n\n for (const match of matches) {\n const { nodeBuiltin, npmPackage, relativePath } = match.groups as DependencyMatch\n\n if (relativePath) {\n const fullPath = resolve(dirname(filePath), relativePath)\n\n dependencies.push({\n type: \"relative\",\n id: `relative:${fullPath}`,\n fullPath,\n })\n } else if (npmPackage) {\n dependencies.push({\n type: \"npm\",\n id: `npm:${npmPackage}`,\n package: npmPackage,\n })\n } else if (nodeBuiltin) {\n // ignore node built-in modules\n }\n }\n\n return dependencies\n }\n}\n","import { existsSync } from \"node:fs\"\nimport { mkdir, readdir, readFile, writeFile } from \"node:fs/promises\"\nimport { join, relative, resolve } from \"node:path\"\nimport { z } from \"zod\"\nimport { highstateConfigSchema } from \"./schemas\"\n\n/**\n * Represents a Highstate package in the workspace\n */\nexport interface HighstatePackage {\n /** Absolute path to the package directory */\n path: string\n /** Relative path from workspace root */\n relativePath: string\n /** Package name from package.json */\n name: string\n /** Package type from highstate config */\n type?: \"source\" | \"library\" | \"worker\"\n}\n\n/**\n * Schema for package.json files\n */\nconst packageJsonSchema = z.object({\n name: z.string(),\n highstate: highstateConfigSchema.optional(),\n})\n\n/**\n * Generates tsconfig content with correct relative path based on package depth\n */\nfunction generateTsconfigContent(workspaceRoot: string, packagePath: string) {\n const relativePath = relative(workspaceRoot, packagePath)\n const depth = relativePath.split(\"/\").length\n const relativeNodeModules = `${\"../\".repeat(depth)}node_modules/@highstate/cli/assets/tsconfig.base.json`\n\n return {\n extends: relativeNodeModules,\n include: [\"./src/**/*.ts\", \"./package.json\", \"./assets/**/*.json\"],\n }\n}\n\n/**\n * Finds the workspace root by looking for package.json with workspaces\n */\nexport async function findWorkspaceRoot(startPath: string = process.cwd()): Promise<string> {\n let currentPath = resolve(startPath)\n\n while (currentPath !== \"/\") {\n const packageJsonPath = join(currentPath, \"package.json\")\n\n if (existsSync(packageJsonPath)) {\n try {\n const content = await readFile(packageJsonPath, \"utf-8\")\n const packageJson = JSON.parse(content) as { workspaces?: unknown }\n\n if (packageJson.workspaces) {\n return currentPath\n }\n } catch {\n // ignore invalid package.json files\n }\n }\n\n const parentPath = resolve(currentPath, \"..\")\n if (parentPath === currentPath) break\n currentPath = parentPath\n }\n\n throw new Error(\"Could not find workspace root (no package.json with workspaces found)\")\n}\n\n/**\n * Recursively scans for packages in the workspace\n */\nexport async function scanWorkspacePackages(workspaceRoot: string): Promise<HighstatePackage[]> {\n const packages: HighstatePackage[] = []\n const packagesDir = join(workspaceRoot, \"packages\")\n\n if (!existsSync(packagesDir)) {\n return packages\n }\n\n async function scanDirectory(dirPath: string, depth = 0): Promise<void> {\n // skip node_modules and hidden directories at any depth\n const dirName = relative(packagesDir, dirPath).split(\"/\").pop()\n if (dirName?.startsWith(\".\") || dirName === \"node_modules\") {\n return\n }\n\n const entries = await readdir(dirPath, { withFileTypes: true })\n\n for (const entry of entries) {\n if (!entry.isDirectory()) continue\n\n const entryPath = join(dirPath, entry.name)\n\n // skip node_modules and hidden directories\n if (entry.name.startsWith(\".\") || entry.name === \"node_modules\") {\n continue\n }\n\n const packageJsonPath = join(entryPath, \"package.json\")\n\n // check if this directory has a package.json\n if (existsSync(packageJsonPath)) {\n try {\n const content = await readFile(packageJsonPath, \"utf-8\")\n const packageJson = packageJsonSchema.parse(JSON.parse(content))\n\n const relativePath = relative(workspaceRoot, entryPath)\n const type = packageJson.highstate?.type ?? \"source\"\n\n packages.push({\n path: entryPath,\n relativePath,\n name: packageJson.name,\n type,\n })\n } catch {\n // ignore directories with invalid package.json files\n }\n }\n\n // continue scanning subdirectories, but with limited depth to avoid deep node_modules\n if (depth < 3) {\n await scanDirectory(entryPath, depth + 1)\n }\n }\n }\n\n await scanDirectory(packagesDir)\n return packages.sort((a, b) => a.relativePath.localeCompare(b.relativePath))\n}\n\n/**\n * Updates the root tsconfig.json with package references\n */\nexport async function updateTsconfigReferences(\n workspaceRoot: string,\n packages: HighstatePackage[],\n ensureTsconfigs = false,\n): Promise<void> {\n const tsconfigPath = join(workspaceRoot, \"tsconfig.json\")\n\n // ensure all packages have valid tsconfig.json files\n if (ensureTsconfigs) {\n await ensurePackageTsconfigs(\n workspaceRoot,\n\n // only udate for Highstate-managed packages\n packages.filter(pkg => pkg.type !== undefined),\n )\n }\n\n // generate references array\n const references = packages.map(pkg => ({\n path: `./${pkg.relativePath}/tsconfig.json`,\n }))\n\n const tsconfigContent = {\n files: [],\n references,\n }\n\n // write the file with proper formatting\n await writeFile(tsconfigPath, `${JSON.stringify(tsconfigContent, null, 2)}\\n`, \"utf-8\")\n}\n\n/**\n * Ensures all packages have valid tsconfig.json files\n */\nasync function ensurePackageTsconfigs(\n workspaceRoot: string,\n packages: HighstatePackage[],\n): Promise<void> {\n for (const pkg of packages) {\n const tsconfigPath = join(pkg.path, \"tsconfig.json\")\n const tsconfigContent = generateTsconfigContent(workspaceRoot, pkg.path)\n\n await writeFile(tsconfigPath, `${JSON.stringify(tsconfigContent, null, 2)}\\n`, \"utf-8\")\n }\n}\n\n/**\n * Creates a new package of the specified type\n */\nexport async function createPackage(\n workspaceRoot: string,\n name: string,\n type: \"source\" | \"library\" | \"worker\",\n): Promise<HighstatePackage> {\n const packagePath = join(workspaceRoot, \"packages\", name)\n const srcPath = join(packagePath, \"src\")\n\n // create directories\n await mkdir(packagePath, { recursive: true })\n await mkdir(srcPath, { recursive: true })\n\n // create package.json\n const packageJson = {\n name: `@highstate/${name}`,\n version: \"0.0.1\",\n type: \"module\",\n highstate: {\n type,\n },\n }\n\n await writeFile(\n join(packagePath, \"package.json\"),\n `${JSON.stringify(packageJson, null, 2)}\\n`,\n \"utf-8\",\n )\n\n // create tsconfig.json\n const tsconfigContent = generateTsconfigContent(workspaceRoot, packagePath)\n await writeFile(\n join(packagePath, \"tsconfig.json\"),\n `${JSON.stringify(tsconfigContent, null, 2)}\\n`,\n \"utf-8\",\n )\n\n // create basic index.ts\n await writeFile(join(srcPath, \"index.ts\"), `// ${name} package\\n`, \"utf-8\")\n\n return {\n path: packagePath,\n relativePath: `packages/${name}`,\n name: `@highstate/${name}`,\n type,\n }\n}\n","import { hostname } from \"node:os\"\nimport { identityToRecipient } from \"age-encryption\"\nimport { Command } from \"clipanion\"\nimport { logger } from \"../../shared\"\n\nexport class BackendIdentityCommand extends Command {\n static paths = [[\"backend\", \"identity\"]]\n\n static usage = Command.Usage({\n category: \"Backend\",\n description: \"Ensures the backend identity is set up and returns the recipient.\",\n })\n\n async execute(): Promise<void> {\n // do not initialize the backend services here, because the state might not be available yet\n const { getOrCreateBackendIdentity } = await import(\"@highstate/backend\")\n\n const backendIdentity = await getOrCreateBackendIdentity(logger)\n const recipient = await identityToRecipient(backendIdentity)\n\n logger.info(`stored backend identity: \"%s\"`, recipient)\n\n const suggestedTitle = hostname()\n\n if (!suggestedTitle) {\n logger.info(`run \"highstate backend unlock-method add %s\" on a trusted device`, recipient)\n return\n }\n\n logger.info(\n `run \"highstate backend unlock-method add %s --title %s\" on a trusted device`,\n recipient,\n suggestedTitle,\n )\n }\n}\n","import { disposeServices } from \"@highstate/backend\"\nimport { input } from \"@inquirer/prompts\"\nimport { Command, Option } from \"clipanion\"\nimport { getBackendServices, logger } from \"../../../shared\"\n\nexport class BackendUnlockMethodAddCommand extends Command {\n static paths = [[\"backend\", \"unlock-method\", \"add\"]]\n\n static usage = Command.Usage({\n category: \"Backend\",\n description: \"Adds a new backend unlock method for the current workspace.\",\n examples: [[\"Add recipient\", \"highstate backend unlock-method add age1example --title Laptop\"]],\n })\n\n recipient = Option.String()\n title = Option.String(\"--title\")\n description = Option.String(\"--description\")\n\n async execute(): Promise<void> {\n let title = this.title\n if (!title) {\n title = await input({\n message: \"Unlock Method Title\",\n default: \"New Device\",\n validate: value => (value.trim().length > 0 ? true : \"Title is required\"),\n })\n }\n\n let description = this.description\n if (description === undefined) {\n description = await input({\n message: \"Description (optional)\",\n default: \"\",\n })\n }\n\n const services = await getBackendServices()\n\n try {\n const result = await services.backendUnlockService.addUnlockMethod({\n recipient: this.recipient,\n meta: description\n ? { title: title.trim(), description: description.trim() }\n : { title: title.trim() },\n })\n\n logger.info(`added backend unlock method \"%s\"`, result.id)\n } finally {\n await disposeServices(services)\n }\n\n // TODO: investigate why this is needed to properly exit\n process.exit(0)\n }\n}\n","import { disposeServices } from \"@highstate/backend\"\nimport { confirm } from \"@inquirer/prompts\"\nimport { Command, Option } from \"clipanion\"\nimport { getBackendServices, logger } from \"../../../shared\"\n\nexport class BackendUnlockMethodDeleteCommand extends Command {\n static paths = [[\"backend\", \"unlock-method\", \"delete\"]]\n\n static usage = Command.Usage({\n category: \"Backend\",\n description: \"Removes a backend unlock method by its identifier.\",\n })\n\n id = Option.String()\n force = Option.Boolean(\"--force\", false)\n\n async execute(): Promise<void> {\n if (!this.force) {\n const answer = await confirm({\n message: `Delete backend unlock method ${this.id}?`,\n default: false,\n })\n\n if (!answer) {\n logger.info(\"cancelled backend unlock method deletion\")\n return\n }\n }\n\n const services = await getBackendServices()\n\n try {\n await services.backendUnlockService.deleteUnlockMethod(this.id)\n logger.info(`deleted backend unlock method \"%s\"`, this.id)\n } finally {\n await disposeServices(services)\n }\n\n process.exit(0)\n }\n}\n","import { disposeServices } from \"@highstate/backend\"\nimport { Command } from \"clipanion\"\nimport { Table } from \"console-table-printer\"\nimport { getBackendServices, logger } from \"../../../shared\"\n\nexport class BackendUnlockMethodListCommand extends Command {\n static paths = [[\"backend\", \"unlock-method\", \"list\"]]\n\n static usage = Command.Usage({\n category: \"Backend\",\n description: \"Lists backend unlock methods registered for the current workspace.\",\n })\n\n async execute(): Promise<void> {\n const services = await getBackendServices()\n\n try {\n const methods = await services.backendUnlockService.listUnlockMethods()\n\n if (methods.length === 0) {\n logger.warn(\"no backend unlock methods configured\")\n return\n }\n\n const table = new Table({\n columns: [\n { name: \"title\", title: \"Title\" },\n { name: \"id\", title: \"ID\" },\n { name: \"recipient\", title: \"Recipient\" },\n { name: \"description\", title: \"Description\", maxLen: 30 },\n ],\n defaultColumnOptions: {\n alignment: \"left\",\n },\n })\n\n table.addRows(\n methods.map(method => ({\n title: method.meta.title,\n id: method.id,\n recipient: method.recipient,\n description: method.meta.description ?? \"\",\n })),\n )\n\n table.printTable()\n } finally {\n await disposeServices(services)\n }\n\n process.exit(0)\n }\n}\n","import type { Plugin } from \"esbuild\"\nimport { writeFile } from \"node:fs/promises\"\nimport { resolve } from \"node:path\"\nimport { encode } from \"@msgpack/msgpack\"\nimport { Command, Option } from \"clipanion\"\nimport { readPackageJSON, resolvePackageJSON } from \"pkg-types\"\nimport { mapValues } from \"remeda\"\nimport { build } from \"tsup\"\nimport {\n createBinTransformerPlugin,\n extractEntryPoints,\n highstateConfigSchema,\n logger,\n SourceHashCalculator,\n schemaTransformerPlugin,\n} from \"../shared\"\n\nexport class BuildCommand extends Command {\n static paths = [[\"build\"]]\n\n static usage = Command.Usage({\n category: \"Builder\",\n description: \"Builds the Highstate library or unit package.\",\n })\n\n watch = Option.Boolean(\"--watch\", false)\n library = Option.Boolean(\"--library\", false)\n silent = Option.Boolean(\"--silent\", true)\n noSourceHash = Option.Boolean(\"--no-source-hash\", false)\n\n async execute(): Promise<void> {\n const packageJson = await readPackageJSON()\n\n const highstateConfig = highstateConfigSchema.parse(packageJson.highstate ?? {})\n if (highstateConfig.type === \"library\") {\n this.library = true\n }\n\n if (highstateConfig.type === \"worker\") {\n this.noSourceHash = true\n }\n\n if (!packageJson.name) {\n throw new Error(\"package.json must have a name field\")\n }\n\n const entryPoints = extractEntryPoints(packageJson)\n\n if (Object.keys(entryPoints).length === 0) {\n return\n }\n\n const esbuildPlugins: Plugin[] = []\n\n const binSourceFilePaths = Object.values(entryPoints)\n .filter(value => value.isBin)\n .map(value => value.entryPoint.slice(2)) // remove \"./\"\n\n if (this.library) {\n esbuildPlugins.push(schemaTransformerPlugin)\n }\n\n if (binSourceFilePaths.length > 0) {\n esbuildPlugins.push(createBinTransformerPlugin(binSourceFilePaths))\n }\n\n await build({\n entry: mapValues(entryPoints, value => value.entryPoint),\n outDir: \"dist\",\n watch: this.watch,\n sourcemap: true,\n clean: true,\n format: \"esm\",\n target: \"es2024\",\n platform: \"node\",\n external: [\"@pulumi/pulumi\"],\n esbuildPlugins,\n treeshake: true,\n removeNodeProtocol: false,\n silent: this.silent || [\"warn\", \"error\", \"fatal\"].includes(logger.level),\n })\n\n const packageJsonPath = await resolvePackageJSON()\n const upToDatePackageJson = await readPackageJSON()\n\n if (!this.noSourceHash) {\n const sourceHashCalculator = new SourceHashCalculator(\n packageJsonPath,\n upToDatePackageJson,\n logger,\n )\n\n const distPathToExportKey = new Map<string, string>()\n for (const value of Object.values(entryPoints)) {\n distPathToExportKey.set(value.distPath, value.key)\n }\n\n await sourceHashCalculator.writeHighstateManifest(\"./dist\", distPathToExportKey)\n }\n\n // write the \"highstate.library.json\" file if the library flag is set\n if (this.library) {\n const { loadLibrary } = await import(\"../shared/library-loader.js\")\n const fullModulePaths = Object.values(entryPoints).map(value => resolve(value.distPath))\n\n logger.info(\"evaluating library components from modules: %s\", fullModulePaths.join(\", \"))\n\n const library = await loadLibrary(logger, fullModulePaths)\n const libraryPath = resolve(\"./dist\", \"highstate.library.msgpack\")\n\n await writeFile(libraryPath, encode(library), \"utf8\")\n }\n\n logger.info(\"build completed successfully\")\n }\n}\n","import { Command, UsageError } from \"clipanion\"\nimport { consola } from \"consola\"\nimport { colorize } from \"consola/utils\"\nimport { getPort } from \"get-port-please\"\nimport { addDevDependency } from \"nypm\"\nimport { readPackageJSON } from \"pkg-types\"\nimport { getBackendServices, logger } from \"../shared\"\n\nexport class DesignerCommand extends Command {\n static paths = [[\"designer\"]]\n\n static usage = Command.Usage({\n category: \"Designer\",\n description: \"Starts the Highstate designer in the current project.\",\n })\n\n async execute(): Promise<void> {\n const packageJson = await readPackageJSON()\n if (!packageJson.devDependencies?.[\"@highstate/cli\"]) {\n throw new UsageError(\n \"This project is not a Highstate project.\\n@highstate/cli must be installed as a devDependency.\",\n )\n }\n\n if (!packageJson.devDependencies?.[\"@highstate/designer\"]) {\n logger.info(\"Installing @highstate/designer...\")\n\n await addDevDependency([\"@highstate/designer\", \"classic-level\"])\n }\n\n logger.info(\"starting highstate designer...\")\n\n await getBackendServices()\n\n const oldConsoleLog = console.log\n\n const port = await getPort()\n\n process.env.NITRO_PORT = port.toString()\n process.env.NITRO_HOST = \"0.0.0.0\"\n\n await new Promise<void>(resolve => {\n console.log = (message: string) => {\n if (message.startsWith(\"Listening on\")) {\n resolve()\n }\n }\n\n const path = \"@highstate/designer/.output/server/index.mjs\"\n void import(path)\n })\n\n console.log = oldConsoleLog\n\n consola.log(\n [\n \"\\n \",\n colorize(\"bold\", colorize(\"cyanBright\", \"Highstate Designer\")),\n \"\\n \",\n colorize(\"greenBright\", \"➜ Local: \"),\n colorize(\"underline\", colorize(\"cyanBright\", `http://localhost:${port}`)),\n \"\\n\",\n ].join(\"\"),\n )\n\n process.on(\"SIGINT\", () => {\n process.stdout.write(\"\\r\")\n consola.info(\"shutting down highstate designer...\")\n\n setTimeout(() => process.exit(0), 1000)\n })\n }\n}\n","import { Command, Option } from \"clipanion\"\nimport {\n createPackage,\n findWorkspaceRoot,\n highstateConfigSchema,\n logger,\n scanWorkspacePackages,\n updateTsconfigReferences,\n} from \"../../shared\"\n\nexport class CreateCommand extends Command {\n static paths = [[\"package\", \"create\"]]\n\n static usage = Command.Usage({\n category: \"Package\",\n description: \"Creates a new package in the workspace.\",\n })\n\n name = Option.String({ required: true })\n type = Option.String(\"--type,-t\", {\n description: \"Package type (source, library, worker)\",\n })\n\n async execute(): Promise<void> {\n const workspaceRoot = await findWorkspaceRoot()\n const packageType = highstateConfigSchema.shape.type.parse(this.type)\n\n await createPackage(workspaceRoot, this.name, packageType)\n\n // update tsconfig references\n const packages = await scanWorkspacePackages(workspaceRoot)\n await updateTsconfigReferences(workspaceRoot, packages)\n\n logger.info(`created package: @highstate/${this.name} (${packageType})`)\n }\n}\n","import { Command } from \"clipanion\"\nimport { Table } from \"console-table-printer\"\nimport { findWorkspaceRoot, logger, scanWorkspacePackages } from \"../../shared\"\n\nexport class ListCommand extends Command {\n static paths = [[\"package\", \"list\"]]\n\n static usage = Command.Usage({\n category: \"Package\",\n description: \"Lists all packages in the workspace with their types.\",\n })\n\n async execute(): Promise<void> {\n const workspaceRoot = await findWorkspaceRoot()\n const packages = await scanWorkspacePackages(workspaceRoot)\n\n if (packages.length === 0) {\n logger.info(\"no packages found in workspace\")\n return\n }\n\n const table = new Table({\n columns: [\n { name: \"name\", title: \"Name\" },\n { name: \"type\", title: \"Type\" },\n { name: \"path\", title: \"Path\" },\n ],\n })\n\n table.addRows(\n packages.map(pkg => ({\n name: pkg.name,\n type: pkg.type ?? \"unknown\",\n path: pkg.relativePath,\n })),\n )\n\n table.printTable()\n }\n}\n","import { rm } from \"node:fs/promises\"\nimport { Command, Option } from \"clipanion\"\nimport {\n findWorkspaceRoot,\n logger,\n scanWorkspacePackages,\n updateTsconfigReferences,\n} from \"../../shared\"\n\nexport class RemoveCommand extends Command {\n static paths = [[\"package\", \"remove\"]]\n\n static usage = Command.Usage({\n category: \"Package\",\n description: \"Removes a package from the workspace.\",\n })\n\n name = Option.String({ required: true })\n\n async execute(): Promise<void> {\n const workspaceRoot = await findWorkspaceRoot()\n const packages = await scanWorkspacePackages(workspaceRoot)\n\n const targetPackage = packages.find(\n pkg =>\n pkg.name === this.name ||\n pkg.name === `@highstate/${this.name}` ||\n pkg.relativePath.endsWith(this.name),\n )\n\n if (!targetPackage) {\n logger.error(`package not found: ${this.name}`)\n process.exit(1)\n }\n\n // remove the package directory\n await rm(targetPackage.path, { recursive: true, force: true })\n\n // update tsconfig references\n const remainingPackages = await scanWorkspacePackages(workspaceRoot)\n await updateTsconfigReferences(workspaceRoot, remainingPackages)\n\n logger.info(`removed package: ${targetPackage.name}`)\n }\n}\n","import { Command } from \"clipanion\"\nimport { findWorkspaceRoot, scanWorkspacePackages, updateTsconfigReferences } from \"../../shared\"\n\nexport class UpdateReferencesCommand extends Command {\n static paths = [[\"package\", \"update-references\"]]\n\n static usage = Command.Usage({\n category: \"Package\",\n description: \"Updates the root tsconfig.json with references to all packages in the workspace.\",\n })\n\n async execute(): Promise<void> {\n const workspaceRoot = await findWorkspaceRoot()\n const packages = await scanWorkspacePackages(workspaceRoot)\n\n await updateTsconfigReferences(workspaceRoot, packages, true)\n }\n}\n","#!/usr/bin/env node\n\nimport { Builtins, Cli } from \"clipanion\"\nimport { version } from \"../package.json\"\nimport { BackendIdentityCommand } from \"./commands/backend/identity\"\nimport { BackendUnlockMethodAddCommand } from \"./commands/backend/unlock-method/add\"\nimport { BackendUnlockMethodDeleteCommand } from \"./commands/backend/unlock-method/delete\"\nimport { BackendUnlockMethodListCommand } from \"./commands/backend/unlock-method/list\"\nimport { BuildCommand } from \"./commands/build\"\nimport { DesignerCommand } from \"./commands/designer\"\nimport {\n CreateCommand as PackageCreateCommand,\n ListCommand as PackageListCommand,\n RemoveCommand as PackageRemoveCommand,\n UpdateReferencesCommand,\n} from \"./commands/package\"\n\nconst cli = new Cli({\n binaryName: \"highstate\",\n binaryLabel: \"Highstate\",\n binaryVersion: version,\n})\n\ncli.register(BuildCommand)\ncli.register(DesignerCommand)\ncli.register(BackendIdentityCommand)\ncli.register(BackendUnlockMethodListCommand)\ncli.register(BackendUnlockMethodAddCommand)\ncli.register(BackendUnlockMethodDeleteCommand)\ncli.register(UpdateReferencesCommand)\ncli.register(PackageListCommand)\ncli.register(PackageCreateCommand)\ncli.register(PackageRemoveCommand)\ncli.register(Builtins.HelpCommand)\ncli.register(Builtins.VersionCommand)\n\nawait cli.runExit(process.argv.slice(2))\n"]}
|
|
1
|
+
{"version":3,"sources":["../package.json","../src/shared/logger.ts","../src/shared/bin-transformer.ts","../src/shared/entry-points.ts","../src/shared/schema-transformer.ts","../src/shared/schemas.ts","../src/shared/services.ts","../src/shared/source-hash-calculator.ts","../src/shared/workspace.ts","../src/commands/backend/identity.ts","../src/commands/backend/unlock-method/add.ts","../src/commands/backend/unlock-method/delete.ts","../src/commands/backend/unlock-method/list.ts","../src/commands/build.ts","../src/commands/designer.ts","../src/commands/package/create.ts","../src/commands/package/list.ts","../src/commands/package/remove.ts","../src/commands/package/update-references.ts","../src/main.ts"],"names":["build","readFile","logger","input","z","importMetaResolve","relative","resolve","writeFile","Command","services","Option","disposeServices","readPackageJSON","resolvePackageJSON","consola","Table"],"mappings":"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","file":"main.js","sourcesContent":["{\n \"name\": \"@highstate/cli\",\n \"version\": \"0.9.29\",\n \"description\": \"The CLI for the Highstate project.\",\n \"type\": \"module\",\n \"files\": [\n \"assets\",\n \"dist\",\n \"src\"\n ],\n \"bin\": {\n \"highstate\": \"./dist/main.js\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"scripts\": {\n \"build\": \"highstate build\",\n \"test\": \"vitest run\",\n \"typecheck\": \"tsgo --noEmit --skipLibCheck\",\n \"biome\": \"biome check --write --unsafe --error-on-warnings\",\n \"biome:check\": \"biome check --error-on-warnings\"\n },\n \"dependencies\": {\n \"@aws-crypto/crc32\": \"^5.2.0\",\n \"@highstate/backend\": \"workspace:^0.9.29\",\n \"@highstate/contract\": \"workspace:^0.9.29\",\n \"@inquirer/prompts\": \"^7.8.6\",\n \"@msgpack/msgpack\": \"^3.1.2\",\n \"@pulumi/pulumi\": \"^3.197.0\",\n \"age-encryption\": \"^0.2.4\",\n \"ajv\": \"^8.17.1\",\n \"clipanion\": \"^4.0.0-rc.4\",\n \"consola\": \"^3.4.0\",\n \"console-table-printer\": \"^2.12.1\",\n \"crypto-hash\": \"^3.1.0\",\n \"get-port-please\": \"^3.1.2\",\n \"import-meta-resolve\": \"^4.1.0\",\n \"magic-string\": \"^0.30.17\",\n \"nypm\": \"^0.6.1\",\n \"oxc-parser\": \"^0.63.0\",\n \"oxc-walker\": \"^0.2.4\",\n \"pino\": \"^9.6.0\",\n \"pkg-types\": \"^1.2.1\",\n \"remeda\": \"^2.21.2\",\n \"tsup\": \"^8.4.0\",\n \"zod\": \"^4.0.5\"\n },\n \"peerDependenciesMeta\": {\n \"@pulumi/pulumi\": {\n \"optional\": true\n },\n \"classic-level\": {\n \"optional\": true\n }\n },\n \"devDependencies\": {\n \"@biomejs/biome\": \"2.2.0\",\n \"@typescript/native-preview\": \"^7.0.0-dev.20250920.1\",\n \"highstate-cli-bootstrap\": \"patch:@highstate/cli@npm%3A0.9.16#~/.yarn/patches/@highstate-cli-npm-0.9.16-e03b564691.patch\",\n \"vitest\": \"^3.2.4\"\n }\n}\n","import { PassThrough } from \"node:stream\"\nimport { consola, LogLevels } from \"consola\"\nimport pino, { levels } from \"pino\"\n\nexport const logger = pino(\n {\n name: \"highstate-cli\",\n level: process.env.LOG_LEVEL ?? \"info\",\n },\n createConsolaStream(),\n)\n\nconsola.level = LogLevels[(process.env.LOG_LEVEL as keyof typeof LogLevels) ?? \"info\"]\n\nfunction createConsolaStream() {\n const stream = new PassThrough()\n\n stream.on(\"data\", data => {\n const { level, msg, error } = JSON.parse(String(data)) as {\n msg: string\n level: number\n error?: unknown\n }\n\n const levelLabel = levels.labels[level]\n\n switch (levelLabel) {\n case \"info\":\n consola.info(msg)\n break\n case \"warn\":\n consola.warn(msg)\n break\n case \"error\":\n if (error) {\n consola.error(msg, error)\n } else {\n consola.error(msg)\n }\n break\n case \"debug\":\n consola.debug(msg)\n break\n case \"fatal\":\n consola.fatal(msg)\n break\n case \"trace\":\n consola.trace(msg)\n break\n }\n })\n\n return stream\n}\n","import type { Plugin } from \"esbuild\"\nimport { readFile } from \"node:fs/promises\"\nimport { logger } from \"./logger\"\n\nexport function createBinTransformerPlugin(sourceFilePaths: string[]): Plugin {\n const filter = new RegExp(`(${sourceFilePaths.join(\"|\")})$`)\n\n logger.debug(\"created bin transformer plugin with filter: %s\", filter)\n\n return {\n name: \"bin-transformer\",\n setup(build) {\n build.onLoad({ filter }, async args => {\n const content = await readFile(args.path, \"utf-8\")\n\n return {\n contents: `#!/usr/bin/env node\\n\\n${content}`,\n loader: \"ts\",\n }\n })\n },\n }\n}\n","import type { PackageJson } from \"pkg-types\"\nimport { logger } from \"./logger\"\n\nexport interface EntryPoint {\n targetName: string\n entryPoint: string\n distPath: string\n isBin: boolean\n key: string\n}\n\n/**\n * Extracts entry points from package.json exports and bin fields\n */\nexport function extractEntryPoints(packageJson: PackageJson): Record<string, EntryPoint> {\n const exports = packageJson.exports\n let bin = packageJson.bin\n\n if (!exports && !bin) {\n logger.warn(\"no exports or bin found in package.json\")\n return {}\n }\n\n if (exports !== undefined && (typeof exports !== \"object\" || Array.isArray(exports))) {\n throw new Error(\"Exports field in package.json must be an object\")\n }\n\n if (bin !== undefined && typeof bin !== \"object\") {\n if (!packageJson.name) {\n throw new Error(\"Package name is required when bin is a string\")\n }\n bin = { [packageJson.name]: bin as string }\n }\n\n const result: Record<string, EntryPoint> = {}\n\n // process exports entries\n if (exports) {\n for (const [key, value] of Object.entries(exports)) {\n let distPath: string\n\n if (typeof value === \"string\") {\n distPath = value\n } else if (typeof value === \"object\" && !Array.isArray(value)) {\n if (!value.default) {\n throw new Error(`Export \"${key}\" must have a default field in package.json`)\n }\n\n if (typeof value.default !== \"string\") {\n throw new Error(`Export \"${key}\" default field must be a string in package.json`)\n }\n\n distPath = value.default\n } else {\n throw new Error(`Export \"${key}\" must be a string or an object in package.json`)\n }\n\n if (!distPath.startsWith(\"./dist/\")) {\n throw new Error(\n `The default value of export \"${key}\" must start with \"./dist/\" in package.json, got \"${distPath}\"`,\n )\n }\n\n if (!distPath.endsWith(\".js\")) {\n throw new Error(\n `The default value of export \"${key}\" must end with \".js\" in package.json, got \"${distPath}\"`,\n )\n }\n\n const targetName = distPath.slice(7).slice(0, -3)\n\n result[targetName] = {\n entryPoint: `./src/${targetName}.ts`,\n targetName,\n distPath,\n isBin: false,\n key,\n }\n }\n }\n\n // process bin entries\n if (bin) {\n for (const [key, value] of Object.entries(bin)) {\n if (typeof value !== \"string\") {\n throw new Error(`Bin entry \"${key}\" must be a string in package.json`)\n }\n\n const distPath = value\n\n if (!distPath.startsWith(\"./dist/\")) {\n throw new Error(\n `The value of bin entry \"${key}\" must start with \"./dist/\" in package.json, got \"${distPath}\"`,\n )\n }\n\n if (!distPath.endsWith(\".js\")) {\n throw new Error(\n `The value of bin entry \"${key}\" must end with \".js\" in package.json, got \"${distPath}\"`,\n )\n }\n\n const targetName = distPath.slice(7).slice(0, -3)\n\n result[targetName] = {\n entryPoint: `./src/${targetName}.ts`,\n targetName,\n distPath,\n isBin: true,\n key,\n }\n }\n }\n\n return result\n}\n","import type { Plugin } from \"esbuild\"\nimport { readFile } from \"node:fs/promises\"\nimport MagicString from \"magic-string\"\nimport {\n type CallExpression,\n type Comment,\n type MemberExpression,\n type ObjectProperty,\n parseAsync,\n} from \"oxc-parser\"\nimport { type Node, walk } from \"oxc-walker\"\n\nexport const schemaTransformerPlugin: Plugin = {\n name: \"schema-transformer\",\n setup(build) {\n build.onLoad({ filter: /src\\/.*\\.ts$/ }, async args => {\n const content = await readFile(args.path, \"utf-8\")\n\n return {\n contents: await applySchemaTransformations(content),\n loader: \"ts\",\n }\n })\n },\n}\n\nexport async function applySchemaTransformations(content: string): Promise<string> {\n // first pass: apply zod meta transformations\n let result = await applyZodMetaTransformations(content)\n\n // second pass: apply helper function transformations\n result = await applyHelperFunctionTransformations(result)\n\n // third pass: apply define function meta transformations\n result = await applyDefineFunctionMetaTransformations(result)\n\n return result\n}\n\nasync function applyZodMetaTransformations(content: string): Promise<string> {\n const { program, comments } = await parseAsync(\"file.ts\", content)\n const parentStack: Node[] = []\n let hasTransformations = false\n const result = new MagicString(content)\n\n walk(program, {\n enter(node) {\n parentStack.push(node)\n\n // handle zod object patterns\n if (isZodObjectProperty(node, parentStack)) {\n const jsdoc = findLeadingComment(content, node, comments)\n if (jsdoc) {\n const description = cleanJsdoc(jsdoc.value)\n const fieldName =\n \"name\" in node.key && typeof node.key.name === \"string\" ? node.key.name : \"unknown\"\n const originalValue = content.substring(node.value.start, node.value.end)\n\n if (!originalValue.includes(\".meta(\")) {\n const newValue = `${originalValue}.meta({ title: __camelCaseToHumanReadable(\"${fieldName}\"), description: \\`${description}\\` })`\n result.update(node.value.start, node.value.end, newValue)\n hasTransformations = true\n }\n }\n }\n },\n leave() {\n parentStack.pop()\n },\n })\n\n let finalResult = result.toString()\n\n // add import at the beginning if needed\n if (hasTransformations && !content.includes(\"__camelCaseToHumanReadable\")) {\n finalResult =\n 'import { camelCaseToHumanReadable as __camelCaseToHumanReadable } from \"@highstate/contract\"\\n' +\n finalResult\n }\n\n return finalResult\n}\n\nasync function applyHelperFunctionTransformations(content: string): Promise<string> {\n const { program, comments } = await parseAsync(\"file.ts\", content)\n const parentStack: Node[] = []\n let hasTransformations = false\n const result = new MagicString(content)\n\n walk(program, {\n enter(node) {\n parentStack.push(node)\n\n // handle properties in args, inputs, outputs, secrets objects\n if (node.type === \"Property\" && \"key\" in node && node.key?.type === \"Identifier\") {\n const propertyNode = node\n const parentKey = getParentObjectKey(parentStack)\n\n if (parentKey && [\"inputs\", \"outputs\", \"args\", \"secrets\"].includes(parentKey)) {\n const jsdoc = findLeadingComment(content, node, comments)\n\n if (jsdoc) {\n const description = cleanJsdoc(jsdoc.value)\n const originalValue = content.substring(\n propertyNode.value.start,\n propertyNode.value.end,\n )\n\n let helperFunction: string\n if ([\"args\", \"secrets\"].includes(parentKey)) {\n helperFunction = \"$addArgumentDescription\"\n } else {\n helperFunction = \"$addInputDescription\"\n }\n\n const newValue = `${helperFunction}(${originalValue}, \\`${description}\\`)`\n result.update(propertyNode.value.start, propertyNode.value.end, newValue)\n hasTransformations = true\n }\n }\n }\n },\n leave() {\n parentStack.pop()\n },\n })\n\n let finalResult = result.toString()\n\n // add import at the beginning if needed\n if (hasTransformations && !content.includes(\"$addArgumentDescription\")) {\n finalResult =\n 'import { $addArgumentDescription, $addInputDescription } from \"@highstate/contract\"\\n' +\n finalResult\n }\n\n return finalResult\n}\n\nasync function applyDefineFunctionMetaTransformations(content: string): Promise<string> {\n const { program, comments } = await parseAsync(\"file.ts\", content)\n const parentStack: Node[] = []\n const result = new MagicString(content)\n\n walk(program, {\n enter(node) {\n parentStack.push(node)\n\n // handle defineUnit, defineEntity, defineComponent function calls\n if (node.type === \"CallExpression\" && \"callee\" in node && node.callee.type === \"Identifier\") {\n const callNode = node\n const callee = callNode.callee\n const functionName =\n \"name\" in callee && typeof callee.name === \"string\" ? callee.name : undefined\n\n if (\n functionName &&\n [\"defineUnit\", \"defineEntity\", \"defineComponent\"].includes(functionName)\n ) {\n // look for JSDoc comment on the parent declaration/export, not the function call itself\n const jsdoc = findJsdocForDefineFunction(content, parentStack, comments)\n\n if (jsdoc && callNode.arguments && callNode.arguments.length > 0) {\n const description = cleanJsdoc(jsdoc.value)\n const firstArg = callNode.arguments[0]\n\n // find meta property in the object expression\n if (firstArg.type === \"ObjectExpression\" && \"properties\" in firstArg) {\n const properties = firstArg.properties\n const metaProperty = properties?.find(\n prop =>\n prop.type === \"Property\" &&\n \"key\" in prop &&\n prop.key?.type === \"Identifier\" &&\n prop.key?.name === \"meta\",\n ) as ObjectProperty | undefined\n\n if (metaProperty && \"value\" in metaProperty) {\n // inject description into existing meta object\n const originalMetaValue = content.substring(\n metaProperty.value.start,\n metaProperty.value.end,\n )\n const newMetaValue = injectDescriptionIntoMetaObject(originalMetaValue, description)\n result.update(metaProperty.value.start, metaProperty.value.end, newMetaValue)\n } else if (properties && properties.length > 0) {\n // add meta property with description\n const lastProperty = properties[properties.length - 1] as ObjectProperty\n if (lastProperty && \"end\" in lastProperty) {\n const insertPos = lastProperty.end\n const newMetaProperty = `,\n\n meta: {\n description: \\`${description}\\`,\n }`\n result.appendLeft(insertPos, newMetaProperty)\n }\n }\n }\n }\n }\n }\n },\n leave() {\n parentStack.pop()\n },\n })\n\n return result.toString()\n}\n\nfunction findJsdocForDefineFunction(\n content: string,\n parentStack: Node[],\n comments: Comment[],\n): Comment | null {\n // look for the variable declaration or export declaration that contains the function call\n for (let i = parentStack.length - 1; i >= 0; i--) {\n const node = parentStack[i]\n\n // check for variable declaration (const x = defineUnit(...))\n if (node.type === \"VariableDeclarator\" && \"id\" in node && node.id?.type === \"Identifier\") {\n const jsdoc = findLeadingComment(content, node, comments)\n if (jsdoc) return jsdoc\n }\n\n // check for export variable declaration (export const x = defineUnit(...))\n if (node.type === \"VariableDeclaration\") {\n const jsdoc = findLeadingComment(content, node, comments)\n if (jsdoc) return jsdoc\n }\n\n // check for export declaration (export const x = ...)\n if (node.type === \"ExportNamedDeclaration\" && \"declaration\" in node && node.declaration) {\n const jsdoc = findLeadingComment(content, node, comments)\n if (jsdoc) return jsdoc\n }\n }\n\n return null\n}\n\nfunction isZodObjectProperty(node: Node, parentStack: Node[]): node is ObjectProperty {\n return (\n node.type === \"Property\" &&\n \"key\" in node &&\n node.key?.type === \"Identifier\" &&\n isInsideZodObject(parentStack)\n )\n}\n\nfunction findLeadingComment(content: string, node: Node, comments: Comment[]): Comment | null {\n return comments.find(comment => isLeadingComment(content, node, comment)) ?? null\n}\n\nfunction getParentObjectKey(parentStack: Node[]): string | null {\n // walk up the parent stack to find the parent object property\n for (let i = parentStack.length - 2; i >= 0; i--) {\n const node = parentStack[i]\n if (node.type === \"Property\" && \"key\" in node && node.key.type === \"Identifier\") {\n return node.key.name\n }\n }\n return null\n}\n\nfunction isLeadingComment(content: string, node: Node, comment: Comment) {\n if (comment.end > node.start) {\n return false\n }\n\n const contentRange = content.substring(comment.end, node.start)\n\n return contentRange.trim().length === 0\n}\n\nfunction cleanJsdoc(str: string) {\n return (\n str\n // remove leading asterisks\n .replace(/^\\s*\\*/gm, \"\")\n\n // escape backticks and dollar signs\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/`/g, \"\\\\`\")\n .replace(/\\${/g, \"\\\\${\")\n .trim()\n )\n}\n\nfunction injectDescriptionIntoMetaObject(objectString: string, description: string): string {\n const trimmed = objectString.trim()\n\n // Check if description already exists\n const hasDescription = /description\\s*:/.test(trimmed)\n\n if (hasDescription) {\n // Replace existing description\n return trimmed.replace(/description\\s*:\\s*`[^`]*`/, `description: \\`${description}\\``)\n } else {\n // Add description field at the beginning of the object\n const openBraceIndex = trimmed.indexOf(\"{\")\n if (openBraceIndex === -1) {\n return trimmed\n }\n\n const beforeBrace = trimmed.substring(0, openBraceIndex + 1)\n const afterBrace = trimmed.substring(openBraceIndex + 1)\n\n return `${beforeBrace}\n description: \\`${description}\\`,${afterBrace}`\n }\n}\n\nfunction isInsideZodObject(parentStack: Node[]): boolean {\n // look for z.object() call expression in the parent stack\n for (let i = parentStack.length - 1; i >= 0; i--) {\n const node = parentStack[i]\n if (\n node.type === \"CallExpression\" &&\n \"callee\" in node &&\n node.callee.type === \"MemberExpression\" &&\n isZodObjectCall(node.callee)\n ) {\n return true\n }\n }\n return false\n}\n\nfunction isZodObjectCall(memberExpression: Node): boolean {\n if (\n memberExpression.type !== \"MemberExpression\" ||\n !(\"object\" in memberExpression) ||\n !(\"property\" in memberExpression)\n ) {\n return false\n }\n\n const member = memberExpression as MemberExpression\n\n // handle direct z.object() calls\n if (\n member.object.type === \"Identifier\" &&\n \"name\" in member.object &&\n member.object.name === \"z\" &&\n member.property.type === \"Identifier\" &&\n member.property.name === \"object\"\n ) {\n return true\n }\n\n // handle chained calls like z.discriminatedUnion().default().object()\n // or any other chained Zod methods that end with .object()\n if (\n member.property.type === \"Identifier\" &&\n member.property.name === \"object\" &&\n member.object.type === \"CallExpression\" &&\n \"callee\" in member.object &&\n member.object.callee.type === \"MemberExpression\"\n ) {\n // recursively check if this is part of a z.* chain\n return startsWithZodCall(member.object)\n }\n\n return false\n}\n\nfunction startsWithZodCall(callExpression: CallExpression): boolean {\n if (!callExpression || callExpression.type !== \"CallExpression\") {\n return false\n }\n\n if (callExpression.callee.type === \"MemberExpression\") {\n const callee = callExpression.callee\n\n // check if this is a direct z.* call\n if (\n callee.object.type === \"Identifier\" &&\n \"name\" in callee.object &&\n callee.object.name === \"z\"\n ) {\n return true\n }\n\n // recursively check nested calls\n if (callee.object.type === \"CallExpression\") {\n return startsWithZodCall(callee.object)\n }\n }\n\n return false\n}\n","import { z } from \"zod\"\n\n/**\n * Schema for the sourceHash configuration in package.json\n */\nexport const sourceHashConfigSchema = z.discriminatedUnion(\"mode\", [\n z.object({\n mode: z.literal(\"manual\"),\n version: z.string(),\n }),\n z.object({\n mode: z.literal(\"auto\"),\n }),\n z.object({\n mode: z.literal(\"version\"),\n }),\n z.object({\n mode: z.literal(\"none\"),\n }),\n])\n\n/**\n * Schema for the highstate configuration in package.json\n */\nexport const highstateConfigSchema = z.object({\n type: z.enum([\"source\", \"library\", \"worker\"]).default(\"source\"),\n sourceHash: z\n .union([sourceHashConfigSchema, z.record(z.string(), sourceHashConfigSchema)])\n .optional(),\n})\n\n/**\n * Schema for the highstate manifest file\n */\nexport const highstateManifestSchema = z.object({\n sourceHashes: z.record(z.string(), z.number()).optional(),\n})\n\nexport type SourceHashConfig = z.infer<typeof sourceHashConfigSchema>\nexport type HighstateConfig = z.infer<typeof highstateConfigSchema>\nexport type HighstateManifest = z.infer<typeof highstateManifestSchema>\n","import type { Services } from \"@highstate/backend\"\nimport { logger } from \"./logger\"\n\nlet services: Promise<Services> | undefined\n\nexport function getBackendServices() {\n if (services) {\n return services\n }\n\n services = import(\"@highstate/backend\").then(({ getSharedServices }) => {\n return getSharedServices({\n services: {\n logger: logger.child({}, { msgPrefix: \"[backend] \" }),\n },\n })\n })\n\n return services\n}\n","import type { Logger } from \"pino\"\nimport { readFile, writeFile } from \"node:fs/promises\"\nimport { dirname, relative, resolve } from \"node:path\"\nimport { fileURLToPath, pathToFileURL } from \"node:url\"\nimport { crc32 } from \"@aws-crypto/crc32\"\nimport { resolve as importMetaResolve } from \"import-meta-resolve\"\nimport { type PackageJson, readPackageJSON, resolvePackageJSON } from \"pkg-types\"\nimport { z } from \"zod\"\nimport {\n type HighstateConfig,\n type HighstateManifest,\n highstateConfigSchema,\n highstateManifestSchema,\n type SourceHashConfig,\n sourceHashConfigSchema,\n} from \"./schemas\"\nimport { int32ToBytes } from \"./utils\"\n\ntype FileDependency =\n | {\n type: \"relative\"\n id: string\n fullPath: string\n }\n | {\n type: \"npm\"\n id: string\n package: string\n }\n\nexport class SourceHashCalculator {\n private readonly dependencyHashes = new Map<string, Promise<number>>()\n private readonly fileHashes = new Map<string, Promise<number>>()\n\n constructor(\n private readonly packageJsonPath: string,\n private readonly packageJson: PackageJson,\n private readonly logger: Logger,\n ) {}\n\n /**\n * Calculates CRC32 hash of a string.\n */\n private hashString(input: string): number {\n return crc32(Buffer.from(input))\n }\n\n /**\n * Gets the highstate configuration from package.json with defaults.\n */\n private getHighstateConfig(packageJson: PackageJson): HighstateConfig {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const rawConfig = packageJson.highstate\n if (!rawConfig) {\n return { type: \"source\" }\n }\n\n try {\n return highstateConfigSchema.parse(rawConfig)\n } catch (error) {\n this.logger.warn(\n { error, packageName: packageJson.name },\n \"invalid highstate configuration, using defaults\",\n )\n return { type: \"source\" }\n }\n }\n\n /**\n * Gets the effective source hash configuration with defaults for a specific output.\n */\n private getSourceHashConfig(\n highstateConfig: HighstateConfig,\n exportKey?: string,\n ): SourceHashConfig {\n if (highstateConfig.sourceHash) {\n // Try to parse as a single config first\n const singleConfigResult = sourceHashConfigSchema.safeParse(highstateConfig.sourceHash)\n if (singleConfigResult.success) {\n return singleConfigResult.data\n }\n\n // Try to parse as a record of configs\n const recordConfigResult = z\n .record(z.string(), sourceHashConfigSchema)\n .safeParse(highstateConfig.sourceHash)\n if (recordConfigResult.success && exportKey) {\n const perOutputConfig = recordConfigResult.data[exportKey]\n if (perOutputConfig) {\n return perOutputConfig\n }\n }\n }\n\n if (highstateConfig.type === \"library\") {\n return { mode: \"none\" }\n }\n\n return { mode: \"auto\" }\n }\n\n async writeHighstateManifest(\n distBasePath: string,\n distPathToExportKey: Map<string, string>,\n ): Promise<void> {\n const highstateConfig = this.getHighstateConfig(this.packageJson)\n\n const promises: Promise<{ distPath: string; hash: number }>[] = []\n\n for (const [distPath, exportKey] of distPathToExportKey) {\n const fullPath = resolve(distPath)\n const sourceHashConfig = this.getSourceHashConfig(highstateConfig, exportKey)\n\n switch (sourceHashConfig.mode) {\n case \"manual\":\n promises.push(\n Promise.resolve({\n distPath,\n hash: this.hashString(sourceHashConfig.version),\n }),\n )\n break\n case \"version\":\n promises.push(\n Promise.resolve({\n distPath,\n hash: this.hashString(this.packageJson.version ?? \"\"),\n }),\n )\n break\n case \"none\":\n promises.push(\n Promise.resolve({\n distPath,\n hash: 0,\n }),\n )\n break\n default:\n promises.push(\n this.getFileHash(fullPath).then(hash => ({\n distPath,\n hash,\n })),\n )\n break\n }\n }\n\n const manifest: HighstateManifest = {\n sourceHashes: {},\n }\n\n const hashes = await Promise.all(promises)\n for (const { distPath, hash } of hashes) {\n manifest.sourceHashes![distPath] = hash\n }\n\n const manifestPath = resolve(distBasePath, \"highstate.manifest.json\")\n await writeFile(manifestPath, JSON.stringify(manifest, null, 2), \"utf8\")\n }\n\n private async getFileHash(fullPath: string): Promise<number> {\n const existingHash = this.fileHashes.get(fullPath)\n if (existingHash) {\n return existingHash\n }\n\n const hash = this.calculateFileHash(fullPath)\n this.fileHashes.set(fullPath, hash)\n\n return hash\n }\n\n private async calculateFileHash(fullPath: string): Promise<number> {\n const content = await readFile(fullPath, \"utf8\")\n const fileDeps = this.parseDependencies(fullPath, content)\n\n const hashes = await Promise.all([\n this.hashString(content),\n ...fileDeps.map(dep => this.getDependencyHash(dep)),\n ])\n\n return crc32(Buffer.concat(hashes.map(int32ToBytes)))\n }\n\n getDependencyHash(dependency: FileDependency): Promise<number> {\n const existingHash = this.dependencyHashes.get(dependency.id)\n if (existingHash) {\n return existingHash\n }\n\n const hash = this.calculateDependencyHash(dependency)\n this.dependencyHashes.set(dependency.id, hash)\n\n return hash\n }\n\n private async calculateDependencyHash(dependency: FileDependency): Promise<number> {\n switch (dependency.type) {\n case \"relative\": {\n return await this.getFileHash(dependency.fullPath)\n }\n case \"npm\": {\n let resolvedUrl: string\n try {\n const baseUrl = pathToFileURL(dirname(this.packageJsonPath))\n\n resolvedUrl = importMetaResolve(dependency.package, baseUrl.toString())\n } catch (error) {\n this.logger.error(`failed to resolve package \"%s\"`, dependency.package)\n throw error\n }\n\n if (resolvedUrl.startsWith(\"node:\")) {\n throw new Error(`\"${dependency.package}\" imported without \"node:\" prefix`)\n }\n\n const resolvedPath = fileURLToPath(resolvedUrl)\n\n const [depPackageJsonPath, depPackageJson] = await this.getPackageJson(resolvedPath)\n const packageName = depPackageJson.name!\n\n this.logger.debug(\n `resolved package.json for \"%s\": \"%s\"`,\n dependency.package,\n depPackageJsonPath,\n )\n\n if (\n !this.packageJson.dependencies?.[packageName] &&\n !this.packageJson.peerDependencies?.[packageName]\n ) {\n this.logger.warn(`package \"%s\" is not listed in package.json dependencies`, packageName)\n }\n\n // try to get source hash from manifest first\n let relativePath = relative(dirname(depPackageJsonPath), resolvedPath)\n relativePath = relativePath.startsWith(\".\") ? relativePath : `./${relativePath}`\n\n const highstateManifestPath = resolve(\n dirname(depPackageJsonPath),\n \"dist\",\n \"highstate.manifest.json\",\n )\n\n let manifest: HighstateManifest | undefined\n try {\n const manifestContent = await readFile(highstateManifestPath, \"utf8\")\n manifest = highstateManifestSchema.parse(JSON.parse(manifestContent))\n } catch (error) {\n this.logger.debug(\n { error },\n `failed to read highstate manifest for package \"%s\"`,\n packageName,\n )\n }\n\n const sourceHash = manifest?.sourceHashes?.[relativePath]\n\n if (sourceHash) {\n this.logger.debug(`resolved source hash for package \"%s\"`, packageName)\n return sourceHash\n }\n\n // use the package version as a fallback hash\n // this case will be applied for most npm packages\n this.logger.debug(`using package version as a fallback hash for \"%s\"`, packageName)\n return this.hashString(depPackageJson.version ?? \"0.0.0\")\n }\n }\n }\n\n private async getPackageJson(basePath: string): Promise<[string, PackageJson]> {\n while (true) {\n const packageJson = await readPackageJSON(basePath)\n if (packageJson.name) {\n const packageJsonPath = await resolvePackageJSON(basePath)\n\n return [packageJsonPath, packageJson]\n }\n\n basePath = resolve(dirname(basePath), \"..\")\n }\n }\n\n private parseDependencies(filePath: string, content: string): FileDependency[] {\n type DependencyMatch = {\n relativePath?: string\n nodeBuiltin?: string\n npmPackage?: string\n }\n\n const dependencyRegex =\n /^[ \\t]*import[\\s\\S]*?\\bfrom\\s*[\"']((?<relativePath>\\.\\.?\\/[^\"']+)|(?<nodeBuiltin>node:[^\"']+)|(?<npmPackage>[^\"']+))[\"']/gm\n\n const matches = content.matchAll(dependencyRegex)\n const dependencies: FileDependency[] = []\n\n for (const match of matches) {\n const { nodeBuiltin, npmPackage, relativePath } = match.groups as DependencyMatch\n\n if (relativePath) {\n const fullPath = resolve(dirname(filePath), relativePath)\n\n dependencies.push({\n type: \"relative\",\n id: `relative:${fullPath}`,\n fullPath,\n })\n } else if (npmPackage) {\n dependencies.push({\n type: \"npm\",\n id: `npm:${npmPackage}`,\n package: npmPackage,\n })\n } else if (nodeBuiltin) {\n // ignore node built-in modules\n }\n }\n\n return dependencies\n }\n}\n","import { existsSync } from \"node:fs\"\nimport { mkdir, readdir, readFile, writeFile } from \"node:fs/promises\"\nimport { join, relative, resolve } from \"node:path\"\nimport { z } from \"zod\"\nimport { highstateConfigSchema } from \"./schemas\"\n\n/**\n * Represents a Highstate package in the workspace\n */\nexport interface HighstatePackage {\n /** Absolute path to the package directory */\n path: string\n /** Relative path from workspace root */\n relativePath: string\n /** Package name from package.json */\n name: string\n /** Package type from highstate config */\n type?: \"source\" | \"library\" | \"worker\"\n}\n\n/**\n * Schema for package.json files\n */\nconst packageJsonSchema = z.object({\n name: z.string(),\n highstate: highstateConfigSchema.optional(),\n})\n\n/**\n * Generates tsconfig content with correct relative path based on package depth\n */\nfunction generateTsconfigContent(workspaceRoot: string, packagePath: string) {\n const relativePath = relative(workspaceRoot, packagePath)\n const depth = relativePath.split(\"/\").length\n const relativeNodeModules = `${\"../\".repeat(depth)}node_modules/@highstate/cli/assets/tsconfig.base.json`\n\n return {\n extends: relativeNodeModules,\n include: [\"./src/**/*.ts\", \"./package.json\", \"./assets/**/*.json\"],\n }\n}\n\n/**\n * Finds the workspace root by looking for package.json with workspaces\n */\nexport async function findWorkspaceRoot(startPath: string = process.cwd()): Promise<string> {\n let currentPath = resolve(startPath)\n\n while (currentPath !== \"/\") {\n const packageJsonPath = join(currentPath, \"package.json\")\n\n if (existsSync(packageJsonPath)) {\n try {\n const content = await readFile(packageJsonPath, \"utf-8\")\n const packageJson = JSON.parse(content) as { workspaces?: unknown }\n\n if (packageJson.workspaces) {\n return currentPath\n }\n } catch {\n // ignore invalid package.json files\n }\n }\n\n const parentPath = resolve(currentPath, \"..\")\n if (parentPath === currentPath) break\n currentPath = parentPath\n }\n\n throw new Error(\"Could not find workspace root (no package.json with workspaces found)\")\n}\n\n/**\n * Recursively scans for packages in the workspace\n */\nexport async function scanWorkspacePackages(workspaceRoot: string): Promise<HighstatePackage[]> {\n const packages: HighstatePackage[] = []\n const packagesDir = join(workspaceRoot, \"packages\")\n\n if (!existsSync(packagesDir)) {\n return packages\n }\n\n async function scanDirectory(dirPath: string, depth = 0): Promise<void> {\n // skip node_modules and hidden directories at any depth\n const dirName = relative(packagesDir, dirPath).split(\"/\").pop()\n if (dirName?.startsWith(\".\") || dirName === \"node_modules\") {\n return\n }\n\n const entries = await readdir(dirPath, { withFileTypes: true })\n\n for (const entry of entries) {\n if (!entry.isDirectory()) continue\n\n const entryPath = join(dirPath, entry.name)\n\n // skip node_modules and hidden directories\n if (entry.name.startsWith(\".\") || entry.name === \"node_modules\") {\n continue\n }\n\n const packageJsonPath = join(entryPath, \"package.json\")\n\n // check if this directory has a package.json\n if (existsSync(packageJsonPath)) {\n try {\n const content = await readFile(packageJsonPath, \"utf-8\")\n const packageJson = packageJsonSchema.parse(JSON.parse(content))\n\n const relativePath = relative(workspaceRoot, entryPath)\n const type = packageJson.highstate?.type ?? \"source\"\n\n packages.push({\n path: entryPath,\n relativePath,\n name: packageJson.name,\n type,\n })\n } catch {\n // ignore directories with invalid package.json files\n }\n }\n\n // continue scanning subdirectories, but with limited depth to avoid deep node_modules\n if (depth < 3) {\n await scanDirectory(entryPath, depth + 1)\n }\n }\n }\n\n await scanDirectory(packagesDir)\n return packages.sort((a, b) => a.relativePath.localeCompare(b.relativePath))\n}\n\n/**\n * Updates the root tsconfig.json with package references\n */\nexport async function updateTsconfigReferences(\n workspaceRoot: string,\n packages: HighstatePackage[],\n ensureTsconfigs = false,\n): Promise<void> {\n const tsconfigPath = join(workspaceRoot, \"tsconfig.json\")\n\n // ensure all packages have valid tsconfig.json files\n if (ensureTsconfigs) {\n await ensurePackageTsconfigs(\n workspaceRoot,\n\n // only udate for Highstate-managed packages\n packages.filter(pkg => pkg.type !== undefined),\n )\n }\n\n // generate references array\n const references = packages.map(pkg => ({\n path: `./${pkg.relativePath}/tsconfig.json`,\n }))\n\n const tsconfigContent = {\n files: [],\n references,\n }\n\n // write the file with proper formatting\n await writeFile(tsconfigPath, `${JSON.stringify(tsconfigContent, null, 2)}\\n`, \"utf-8\")\n}\n\n/**\n * Ensures all packages have valid tsconfig.json files\n */\nasync function ensurePackageTsconfigs(\n workspaceRoot: string,\n packages: HighstatePackage[],\n): Promise<void> {\n for (const pkg of packages) {\n const tsconfigPath = join(pkg.path, \"tsconfig.json\")\n const tsconfigContent = generateTsconfigContent(workspaceRoot, pkg.path)\n\n await writeFile(tsconfigPath, `${JSON.stringify(tsconfigContent, null, 2)}\\n`, \"utf-8\")\n }\n}\n\n/**\n * Creates a new package of the specified type\n */\nexport async function createPackage(\n workspaceRoot: string,\n name: string,\n type: \"source\" | \"library\" | \"worker\",\n): Promise<HighstatePackage> {\n const packagePath = join(workspaceRoot, \"packages\", name)\n const srcPath = join(packagePath, \"src\")\n\n // create directories\n await mkdir(packagePath, { recursive: true })\n await mkdir(srcPath, { recursive: true })\n\n // create package.json\n const packageJson = {\n name: `@highstate/${name}`,\n version: \"0.0.1\",\n type: \"module\",\n highstate: {\n type,\n },\n }\n\n await writeFile(\n join(packagePath, \"package.json\"),\n `${JSON.stringify(packageJson, null, 2)}\\n`,\n \"utf-8\",\n )\n\n // create tsconfig.json\n const tsconfigContent = generateTsconfigContent(workspaceRoot, packagePath)\n await writeFile(\n join(packagePath, \"tsconfig.json\"),\n `${JSON.stringify(tsconfigContent, null, 2)}\\n`,\n \"utf-8\",\n )\n\n // create basic index.ts\n await writeFile(join(srcPath, \"index.ts\"), `// ${name} package\\n`, \"utf-8\")\n\n return {\n path: packagePath,\n relativePath: `packages/${name}`,\n name: `@highstate/${name}`,\n type,\n }\n}\n","import { hostname } from \"node:os\"\nimport { identityToRecipient } from \"age-encryption\"\nimport { Command } from \"clipanion\"\nimport { logger } from \"../../shared\"\n\nexport class BackendIdentityCommand extends Command {\n static paths = [[\"backend\", \"identity\"]]\n\n static usage = Command.Usage({\n category: \"Backend\",\n description: \"Ensures the backend identity is set up and returns the recipient.\",\n })\n\n async execute(): Promise<void> {\n // do not initialize the backend services here, because the state might not be available yet\n const { getOrCreateBackendIdentity } = await import(\"@highstate/backend\")\n\n const backendIdentity = await getOrCreateBackendIdentity(logger)\n const recipient = await identityToRecipient(backendIdentity)\n\n logger.info(`stored backend identity: \"%s\"`, recipient)\n\n const suggestedTitle = hostname()\n\n if (!suggestedTitle) {\n logger.info(`run \"highstate backend unlock-method add %s\" on a trusted device`, recipient)\n return\n }\n\n logger.info(\n `run \"highstate backend unlock-method add %s --title %s\" on a trusted device`,\n recipient,\n suggestedTitle,\n )\n }\n}\n","import { disposeServices } from \"@highstate/backend\"\nimport { input } from \"@inquirer/prompts\"\nimport { Command, Option } from \"clipanion\"\nimport { getBackendServices, logger } from \"../../../shared\"\n\nexport class BackendUnlockMethodAddCommand extends Command {\n static paths = [[\"backend\", \"unlock-method\", \"add\"]]\n\n static usage = Command.Usage({\n category: \"Backend\",\n description: \"Adds a new backend unlock method for the current workspace.\",\n examples: [[\"Add recipient\", \"highstate backend unlock-method add age1example --title Laptop\"]],\n })\n\n recipient = Option.String()\n title = Option.String(\"--title\")\n description = Option.String(\"--description\")\n\n async execute(): Promise<void> {\n let title = this.title\n if (!title) {\n title = await input({\n message: \"Unlock Method Title\",\n default: \"New Device\",\n validate: value => (value.trim().length > 0 ? true : \"Title is required\"),\n })\n }\n\n let description = this.description\n if (description === undefined) {\n description = await input({\n message: \"Description (optional)\",\n default: \"\",\n })\n }\n\n const services = await getBackendServices()\n\n try {\n const result = await services.backendUnlockService.addUnlockMethod({\n recipient: this.recipient,\n meta: description\n ? { title: title.trim(), description: description.trim() }\n : { title: title.trim() },\n })\n\n logger.info(`added backend unlock method \"%s\"`, result.id)\n } finally {\n await disposeServices(services)\n }\n\n // TODO: investigate why this is needed to properly exit\n process.exit(0)\n }\n}\n","import { disposeServices } from \"@highstate/backend\"\nimport { confirm } from \"@inquirer/prompts\"\nimport { Command, Option } from \"clipanion\"\nimport { getBackendServices, logger } from \"../../../shared\"\n\nexport class BackendUnlockMethodDeleteCommand extends Command {\n static paths = [[\"backend\", \"unlock-method\", \"delete\"]]\n\n static usage = Command.Usage({\n category: \"Backend\",\n description: \"Removes a backend unlock method by its identifier.\",\n })\n\n id = Option.String()\n force = Option.Boolean(\"--force\", false)\n\n async execute(): Promise<void> {\n if (!this.force) {\n const answer = await confirm({\n message: `Delete backend unlock method ${this.id}?`,\n default: false,\n })\n\n if (!answer) {\n logger.info(\"cancelled backend unlock method deletion\")\n return\n }\n }\n\n const services = await getBackendServices()\n\n try {\n await services.backendUnlockService.deleteUnlockMethod(this.id)\n logger.info(`deleted backend unlock method \"%s\"`, this.id)\n } finally {\n await disposeServices(services)\n }\n\n process.exit(0)\n }\n}\n","import { disposeServices } from \"@highstate/backend\"\nimport { Command } from \"clipanion\"\nimport { Table } from \"console-table-printer\"\nimport { getBackendServices, logger } from \"../../../shared\"\n\nexport class BackendUnlockMethodListCommand extends Command {\n static paths = [[\"backend\", \"unlock-method\", \"list\"]]\n\n static usage = Command.Usage({\n category: \"Backend\",\n description: \"Lists backend unlock methods registered for the current workspace.\",\n })\n\n async execute(): Promise<void> {\n const services = await getBackendServices()\n\n try {\n const methods = await services.backendUnlockService.listUnlockMethods()\n\n if (methods.length === 0) {\n logger.warn(\"no backend unlock methods configured\")\n return\n }\n\n const table = new Table({\n columns: [\n { name: \"title\", title: \"Title\" },\n { name: \"id\", title: \"ID\" },\n { name: \"recipient\", title: \"Recipient\" },\n { name: \"description\", title: \"Description\", maxLen: 30 },\n ],\n defaultColumnOptions: {\n alignment: \"left\",\n },\n })\n\n table.addRows(\n methods.map(method => ({\n title: method.meta.title,\n id: method.id,\n recipient: method.recipient,\n description: method.meta.description ?? \"\",\n })),\n )\n\n table.printTable()\n } finally {\n await disposeServices(services)\n }\n\n process.exit(0)\n }\n}\n","import type { Plugin } from \"esbuild\"\nimport { writeFile } from \"node:fs/promises\"\nimport { resolve } from \"node:path\"\nimport { encode } from \"@msgpack/msgpack\"\nimport { Command, Option } from \"clipanion\"\nimport { readPackageJSON, resolvePackageJSON } from \"pkg-types\"\nimport { mapValues } from \"remeda\"\nimport { build } from \"tsup\"\nimport {\n createBinTransformerPlugin,\n extractEntryPoints,\n highstateConfigSchema,\n logger,\n SourceHashCalculator,\n schemaTransformerPlugin,\n} from \"../shared\"\n\nexport class BuildCommand extends Command {\n static paths = [[\"build\"]]\n\n static usage = Command.Usage({\n category: \"Builder\",\n description: \"Builds the Highstate library or unit package.\",\n })\n\n watch = Option.Boolean(\"--watch\", false)\n library = Option.Boolean(\"--library\", false)\n silent = Option.Boolean(\"--silent\", true)\n noSourceHash = Option.Boolean(\"--no-source-hash\", false)\n\n async execute(): Promise<void> {\n const packageJson = await readPackageJSON()\n\n const highstateConfig = highstateConfigSchema.parse(packageJson.highstate ?? {})\n if (highstateConfig.type === \"library\") {\n this.library = true\n }\n\n if (highstateConfig.type === \"worker\") {\n this.noSourceHash = true\n }\n\n if (!packageJson.name) {\n throw new Error(\"package.json must have a name field\")\n }\n\n const entryPoints = extractEntryPoints(packageJson)\n\n if (Object.keys(entryPoints).length === 0) {\n return\n }\n\n const esbuildPlugins: Plugin[] = []\n\n const binSourceFilePaths = Object.values(entryPoints)\n .filter(value => value.isBin)\n .map(value => value.entryPoint.slice(2)) // remove \"./\"\n\n if (this.library) {\n esbuildPlugins.push(schemaTransformerPlugin)\n }\n\n if (binSourceFilePaths.length > 0) {\n esbuildPlugins.push(createBinTransformerPlugin(binSourceFilePaths))\n }\n\n await build({\n entry: mapValues(entryPoints, value => value.entryPoint),\n outDir: \"dist\",\n watch: this.watch,\n sourcemap: true,\n clean: true,\n format: \"esm\",\n target: \"es2024\",\n platform: \"node\",\n external: [\"@pulumi/pulumi\"],\n esbuildPlugins,\n treeshake: true,\n removeNodeProtocol: false,\n silent: this.silent || [\"warn\", \"error\", \"fatal\"].includes(logger.level),\n })\n\n const packageJsonPath = await resolvePackageJSON()\n const upToDatePackageJson = await readPackageJSON()\n\n if (!this.noSourceHash) {\n const sourceHashCalculator = new SourceHashCalculator(\n packageJsonPath,\n upToDatePackageJson,\n logger,\n )\n\n const distPathToExportKey = new Map<string, string>()\n for (const value of Object.values(entryPoints)) {\n distPathToExportKey.set(value.distPath, value.key)\n }\n\n await sourceHashCalculator.writeHighstateManifest(\"./dist\", distPathToExportKey)\n }\n\n // write the \"highstate.library.json\" file if the library flag is set\n if (this.library) {\n const { loadLibrary } = await import(\"../shared/library-loader.js\")\n const fullModulePaths = Object.values(entryPoints).map(value => resolve(value.distPath))\n\n logger.info(\"evaluating library components from modules: %s\", fullModulePaths.join(\", \"))\n\n const library = await loadLibrary(logger, fullModulePaths)\n const libraryPath = resolve(\"./dist\", \"highstate.library.msgpack\")\n\n await writeFile(libraryPath, encode(library), \"utf8\")\n }\n\n logger.info(\"build completed successfully\")\n }\n}\n","import { Command, UsageError } from \"clipanion\"\nimport { consola } from \"consola\"\nimport { colorize } from \"consola/utils\"\nimport { getPort } from \"get-port-please\"\nimport { addDevDependency } from \"nypm\"\nimport { readPackageJSON } from \"pkg-types\"\nimport { getBackendServices, logger } from \"../shared\"\n\nexport class DesignerCommand extends Command {\n static paths = [[\"designer\"]]\n\n static usage = Command.Usage({\n category: \"Designer\",\n description: \"Starts the Highstate designer in the current project.\",\n })\n\n async execute(): Promise<void> {\n const packageJson = await readPackageJSON()\n if (!packageJson.devDependencies?.[\"@highstate/cli\"]) {\n throw new UsageError(\n \"This project is not a Highstate project.\\n@highstate/cli must be installed as a devDependency.\",\n )\n }\n\n if (!packageJson.devDependencies?.[\"@highstate/designer\"]) {\n logger.info(\"Installing @highstate/designer...\")\n\n await addDevDependency([\"@highstate/designer\", \"classic-level\"])\n }\n\n logger.info(\"starting highstate designer...\")\n\n await getBackendServices()\n\n const oldConsoleLog = console.log\n\n const port = await getPort()\n\n process.env.NITRO_PORT = port.toString()\n process.env.NITRO_HOST = \"0.0.0.0\"\n\n await new Promise<void>(resolve => {\n console.log = (message: string) => {\n if (message.startsWith(\"Listening on\")) {\n resolve()\n }\n }\n\n const path = \"@highstate/designer/.output/server/index.mjs\"\n void import(path)\n })\n\n console.log = oldConsoleLog\n\n consola.log(\n [\n \"\\n \",\n colorize(\"bold\", colorize(\"cyanBright\", \"Highstate Designer\")),\n \"\\n \",\n colorize(\"greenBright\", \"➜ Local: \"),\n colorize(\"underline\", colorize(\"cyanBright\", `http://localhost:${port}`)),\n \"\\n\",\n ].join(\"\"),\n )\n\n process.on(\"SIGINT\", () => {\n process.stdout.write(\"\\r\")\n consola.info(\"shutting down highstate designer...\")\n\n setTimeout(() => process.exit(0), 1000)\n })\n }\n}\n","import { Command, Option } from \"clipanion\"\nimport {\n createPackage,\n findWorkspaceRoot,\n highstateConfigSchema,\n logger,\n scanWorkspacePackages,\n updateTsconfigReferences,\n} from \"../../shared\"\n\nexport class CreateCommand extends Command {\n static paths = [[\"package\", \"create\"]]\n\n static usage = Command.Usage({\n category: \"Package\",\n description: \"Creates a new package in the workspace.\",\n })\n\n name = Option.String({ required: true })\n type = Option.String(\"--type,-t\", {\n description: \"Package type (source, library, worker)\",\n })\n\n async execute(): Promise<void> {\n const workspaceRoot = await findWorkspaceRoot()\n const packageType = highstateConfigSchema.shape.type.parse(this.type)\n\n await createPackage(workspaceRoot, this.name, packageType)\n\n // update tsconfig references\n const packages = await scanWorkspacePackages(workspaceRoot)\n await updateTsconfigReferences(workspaceRoot, packages)\n\n logger.info(`created package: @highstate/${this.name} (${packageType})`)\n }\n}\n","import { Command } from \"clipanion\"\nimport { Table } from \"console-table-printer\"\nimport { findWorkspaceRoot, logger, scanWorkspacePackages } from \"../../shared\"\n\nexport class ListCommand extends Command {\n static paths = [[\"package\", \"list\"]]\n\n static usage = Command.Usage({\n category: \"Package\",\n description: \"Lists all packages in the workspace with their types.\",\n })\n\n async execute(): Promise<void> {\n const workspaceRoot = await findWorkspaceRoot()\n const packages = await scanWorkspacePackages(workspaceRoot)\n\n if (packages.length === 0) {\n logger.info(\"no packages found in workspace\")\n return\n }\n\n const table = new Table({\n columns: [\n { name: \"name\", title: \"Name\" },\n { name: \"type\", title: \"Type\" },\n { name: \"path\", title: \"Path\" },\n ],\n })\n\n table.addRows(\n packages.map(pkg => ({\n name: pkg.name,\n type: pkg.type ?? \"unknown\",\n path: pkg.relativePath,\n })),\n )\n\n table.printTable()\n }\n}\n","import { rm } from \"node:fs/promises\"\nimport { Command, Option } from \"clipanion\"\nimport {\n findWorkspaceRoot,\n logger,\n scanWorkspacePackages,\n updateTsconfigReferences,\n} from \"../../shared\"\n\nexport class RemoveCommand extends Command {\n static paths = [[\"package\", \"remove\"]]\n\n static usage = Command.Usage({\n category: \"Package\",\n description: \"Removes a package from the workspace.\",\n })\n\n name = Option.String({ required: true })\n\n async execute(): Promise<void> {\n const workspaceRoot = await findWorkspaceRoot()\n const packages = await scanWorkspacePackages(workspaceRoot)\n\n const targetPackage = packages.find(\n pkg =>\n pkg.name === this.name ||\n pkg.name === `@highstate/${this.name}` ||\n pkg.relativePath.endsWith(this.name),\n )\n\n if (!targetPackage) {\n logger.error(`package not found: ${this.name}`)\n process.exit(1)\n }\n\n // remove the package directory\n await rm(targetPackage.path, { recursive: true, force: true })\n\n // update tsconfig references\n const remainingPackages = await scanWorkspacePackages(workspaceRoot)\n await updateTsconfigReferences(workspaceRoot, remainingPackages)\n\n logger.info(`removed package: ${targetPackage.name}`)\n }\n}\n","import { Command } from \"clipanion\"\nimport { findWorkspaceRoot, scanWorkspacePackages, updateTsconfigReferences } from \"../../shared\"\n\nexport class UpdateReferencesCommand extends Command {\n static paths = [[\"package\", \"update-references\"]]\n\n static usage = Command.Usage({\n category: \"Package\",\n description: \"Updates the root tsconfig.json with references to all packages in the workspace.\",\n })\n\n async execute(): Promise<void> {\n const workspaceRoot = await findWorkspaceRoot()\n const packages = await scanWorkspacePackages(workspaceRoot)\n\n await updateTsconfigReferences(workspaceRoot, packages, true)\n }\n}\n","#!/usr/bin/env node\n\nimport { Builtins, Cli } from \"clipanion\"\nimport { version } from \"../package.json\"\nimport { BackendIdentityCommand } from \"./commands/backend/identity\"\nimport { BackendUnlockMethodAddCommand } from \"./commands/backend/unlock-method/add\"\nimport { BackendUnlockMethodDeleteCommand } from \"./commands/backend/unlock-method/delete\"\nimport { BackendUnlockMethodListCommand } from \"./commands/backend/unlock-method/list\"\nimport { BuildCommand } from \"./commands/build\"\nimport { DesignerCommand } from \"./commands/designer\"\nimport {\n CreateCommand as PackageCreateCommand,\n ListCommand as PackageListCommand,\n RemoveCommand as PackageRemoveCommand,\n UpdateReferencesCommand,\n} from \"./commands/package\"\n\nconst cli = new Cli({\n binaryName: \"highstate\",\n binaryLabel: \"Highstate\",\n binaryVersion: version,\n})\n\ncli.register(BuildCommand)\ncli.register(DesignerCommand)\ncli.register(BackendIdentityCommand)\ncli.register(BackendUnlockMethodListCommand)\ncli.register(BackendUnlockMethodAddCommand)\ncli.register(BackendUnlockMethodDeleteCommand)\ncli.register(UpdateReferencesCommand)\ncli.register(PackageListCommand)\ncli.register(PackageCreateCommand)\ncli.register(PackageRemoveCommand)\ncli.register(Builtins.HelpCommand)\ncli.register(Builtins.VersionCommand)\n\nawait cli.runExit(process.argv.slice(2))\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@highstate/cli",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.30",
|
|
4
4
|
"description": "The CLI for the Highstate project.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@aws-crypto/crc32": "^5.2.0",
|
|
26
|
-
"@highstate/backend": "^0.9.
|
|
27
|
-
"@highstate/contract": "^0.9.
|
|
26
|
+
"@highstate/backend": "^0.9.30",
|
|
27
|
+
"@highstate/contract": "^0.9.30",
|
|
28
28
|
"@inquirer/prompts": "^7.8.6",
|
|
29
29
|
"@msgpack/msgpack": "^3.1.2",
|
|
30
30
|
"@pulumi/pulumi": "^3.197.0",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"highstate-cli-bootstrap": "patch:@highstate/cli@npm%3A0.9.16#~/.yarn/patches/@highstate-cli-npm-0.9.16-e03b564691.patch",
|
|
61
61
|
"vitest": "^3.2.4"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "8f5a4724814f573e2172bc0eaf09fcbdd9eb0a4c"
|
|
64
64
|
}
|