@powerlines/plugin-alloy 0.26.146 → 0.26.148

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.
@@ -10,8 +10,8 @@ let _alloy_js_core = require("@alloy-js/core");
10
10
  let _stryke_string_format_camel_case = require("@stryke/string-format/camel-case");
11
11
  let _stryke_string_format_pascal_case = require("@stryke/string-format/pascal-case");
12
12
  let _alloy_js_typescript = require("@alloy-js/typescript");
13
- let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
14
13
  let _powerlines_schema = require("@powerlines/schema");
14
+ let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
15
15
  let _stryke_unique_id_uuid = require("@stryke/unique-id/uuid");
16
16
 
17
17
  //#region src/typescript/components/interface-declaration.tsx
@@ -38,7 +38,7 @@ interface InterfaceMemberPropsBase {
38
38
  doc?: Children;
39
39
  refkey?: Refkey | Refkey[];
40
40
  readOnly?: boolean;
41
- type?: Children | JsonSchemaPrimitiveType;
41
+ type?: Children | JsonSchemaPrimitiveType | string;
42
42
  nullish?: boolean;
43
43
  }
44
44
  interface InterfacePropertyMemberProps extends InterfaceMemberPropsBase {
@@ -38,7 +38,7 @@ interface InterfaceMemberPropsBase {
38
38
  doc?: Children;
39
39
  refkey?: Refkey | Refkey[];
40
40
  readOnly?: boolean;
41
- type?: Children | JsonSchemaPrimitiveType;
41
+ type?: Children | JsonSchemaPrimitiveType | string;
42
42
  nullish?: boolean;
43
43
  }
44
44
  interface InterfacePropertyMemberProps extends InterfaceMemberPropsBase {
@@ -9,8 +9,8 @@ import { Block, For, MemberDeclaration, Name, Show, childrenArray, computed, cre
9
9
  import { camelCase } from "@stryke/string-format/camel-case";
10
10
  import { pascalCase } from "@stryke/string-format/pascal-case";
11
11
  import { Declaration as Declaration$1, TSOutputSymbol, TSSymbolFlags, ensureTypeRefContext, useTSLexicalScope, useTSMemberScope, useTSNamePolicy } from "@alloy-js/typescript";
12
- import { isSetString } from "@stryke/type-checks/is-set-string";
13
12
  import { getPrimarySchemaType, getPropertiesList, isSchemaNullable, stringifyType } from "@powerlines/schema";
13
+ import { isSetString } from "@stryke/type-checks/is-set-string";
14
14
  import { uuid } from "@stryke/unique-id/uuid";
15
15
 
16
16
  //#region src/typescript/components/interface-declaration.tsx
@@ -1 +1 @@
1
- {"version":3,"file":"interface-declaration.mjs","names":[],"sources":["../../../src/typescript/components/interface-declaration.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport {\n Block,\n Children,\n childrenArray,\n computed,\n createSymbol,\n createSymbolSlot,\n effect,\n emitSymbol,\n findUnkeyedChildren,\n For,\n MemberDeclaration,\n Name,\n Namekey,\n Refkey,\n Show,\n splitProps,\n takeSymbols\n} from \"@alloy-js/core\";\nimport {\n CommonDeclarationProps,\n Declaration,\n ensureTypeRefContext,\n TSOutputSymbol,\n TSSymbolFlags,\n TypeParameterDescriptor,\n useTSLexicalScope,\n useTSMemberScope,\n useTSNamePolicy\n} from \"@alloy-js/typescript\";\nimport {\n getPrimarySchemaType,\n getPropertiesList,\n isSchemaNullable,\n JsonSchema,\n JsonSchemaLike,\n JsonSchemaPrimitiveType,\n JsonSchemaProperty,\n stringifyType\n} from \"@powerlines/schema\";\nimport { camelCase } from \"@stryke/string-format/camel-case\";\nimport { pascalCase } from \"@stryke/string-format/pascal-case\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { PartialKeys } from \"@stryke/types/base\";\nimport { uuid } from \"@stryke/unique-id/uuid\";\nimport {\n SchemaContext,\n SchemaPropertyContext\n} from \"../../core/contexts/schema\";\nimport { ComponentProps } from \"../../types/components\";\nimport { MemberScope } from \"../contexts/member-scope\";\nimport { PropertyName } from \"./property-name\";\nimport { TSDoc } from \"./tsdoc\";\nimport { TSDocObjectSchema, TSDocSchemaProperty } from \"./tsdoc-schema\";\nimport { TypeParameters } from \"./type-parameters\";\n\nexport interface InterfaceDeclarationProps<\n T extends Record<string, any> = Record<string, any>\n>\n extends PartialKeys<CommonDeclarationProps, \"name\">, ComponentProps {\n /**\n * A base type that this interface extends. This can be used to represent inheritance\n */\n extends?: Children;\n\n /**\n * The generic type parameters of the interface.\n */\n typeParameters?: TypeParameterDescriptor[] | string[];\n\n /**\n * The JSON Schema that describes the properties of this interface.\n *\n * @remarks\n * This is used to generate the members of the interface based on the properties of the schema.\n */\n schema?: JsonSchema<T>;\n\n /**\n * Documentation for the interface. This can be a string or any Alloy component that renders documentation content (such as `TSDoc`).\n */\n doc?: Children;\n}\n\nexport interface InterfaceDeclarationPropertyProps<\n T extends Record<string, any> = Record<string, any>\n>\n extends Omit<InterfaceMemberProps<T>, \"name\">, ComponentProps {\n schema: JsonSchemaProperty<T>;\n}\n\nexport interface InterfaceExpressionProps {\n children?: Children;\n}\n\nexport const InterfaceExpression = ensureTypeRefContext(\n function InterfaceExpression(props: InterfaceExpressionProps) {\n const scope = useTSLexicalScope();\n const symbol = createSymbol(TSOutputSymbol, \"\", undefined, {\n transient: true,\n binder: scope?.binder\n });\n\n emitSymbol(symbol);\n\n return (\n <group>\n <MemberScope ownerSymbol={symbol}>\n <Block>{props.children}</Block>\n </MemberScope>\n </group>\n );\n }\n);\n\nexport interface InterfaceMemberPropsBase {\n children?: Children;\n doc?: Children;\n refkey?: Refkey | Refkey[];\n readOnly?: boolean;\n type?: Children | JsonSchemaPrimitiveType;\n nullish?: boolean;\n}\n\nexport interface InterfacePropertyMemberProps extends InterfaceMemberPropsBase {\n name: string | Namekey;\n}\n\nexport interface InterfaceIndexerMemberProps extends InterfaceMemberPropsBase {\n indexer: Children;\n}\n\nexport interface InterfaceSchemaMemberProps<\n T extends Record<string, any> = Record<string, any>\n> extends InterfaceMemberPropsBase {\n schema: JsonSchemaProperty<T>;\n}\n\nexport type InterfaceMemberProps<\n T extends Record<string, any> = Record<string, any>\n> =\n | InterfacePropertyMemberProps\n | InterfaceIndexerMemberProps\n | InterfaceSchemaMemberProps<T>;\n\n/**\n * Create a TypeScript interface member.\n *\n * An interface member can either provide a `name` prop to create a named\n * property, or an `indexer` prop to define an indexer for the interface.\n *\n * The type of the member can be provided either as the `type` prop or as the\n * children of the component.\n */\nexport function InterfaceMember<\n T extends Record<string, any> = Record<string, any>\n>(props: InterfaceMemberProps<T>) {\n const type = (props as InterfaceSchemaMemberProps<T>).schema\n ? stringifyType<T>((props as InterfaceSchemaMemberProps<T>).schema)\n : (props.type ?? props.children);\n\n const readonly =\n ((props as InterfaceSchemaMemberProps<T>).schema &&\n (props as InterfaceSchemaMemberProps<T>).schema?.readOnly) ||\n (!(props as InterfaceSchemaMemberProps<T>).schema && props.readOnly)\n ? \"readonly \"\n : \"\";\n\n if (\"indexer\" in props) {\n return (\n <>\n <Show when={Boolean(props.doc)}>\n <TSDoc heading={props.doc} />\n </Show>\n {readonly}[{props.indexer}]: {type}\n </>\n );\n }\n\n const optional =\n !!(\n (props as InterfaceSchemaMemberProps<T>).schema &&\n \"nullable\" in (props as InterfaceSchemaMemberProps<T>).schema &&\n (props as InterfaceSchemaMemberProps<T>).schema.nullable\n ) || !!props.nullish;\n\n const scope = useTSMemberScope();\n const sym = createSymbol(\n TSOutputSymbol,\n (((props as InterfaceSchemaMemberProps<T>).schema\n ? (props as InterfaceSchemaMemberProps<T>).schema?.name\n : undefined) || isSetString((props as InterfacePropertyMemberProps).name)\n ? (props as InterfacePropertyMemberProps).name\n : (props as InterfacePropertyMemberProps).name.toString()) ||\n uuid().replace(/-/g, \"\"),\n scope.ownerSymbol.staticMembers,\n {\n refkeys: props.refkey,\n tsFlags:\n TSSymbolFlags.TypeSymbol |\n (optional ? TSSymbolFlags.Nullish : TSSymbolFlags.None),\n namePolicy: useTSNamePolicy().for(\"interface-member\"),\n binder: scope.binder\n }\n );\n\n const taken = takeSymbols();\n effect(() => {\n if (taken.size > 1) return;\n const symbol = Array.from(taken)[0];\n if (symbol?.isTransient) {\n symbol.moveMembersTo(sym);\n }\n });\n\n return (\n <MemberDeclaration symbol={sym}>\n <Show when={Boolean(props.doc)}>\n <TSDoc heading={props.doc} />\n </Show>\n {readonly}\n <PropertyName />\n {optional ? \"?\" : \"\"}: {type}\n </MemberDeclaration>\n );\n}\n\nconst BaseInterfaceDeclaration = ensureTypeRefContext(\n function InterfaceDeclaration(props: InterfaceDeclarationProps) {\n const ExprSlot = createSymbolSlot();\n\n const children = childrenArray(() => props.children);\n\n const extendsPart = props.extends ? <> extends {props.extends}</> : \"\";\n const filteredChildren = findUnkeyedChildren(children);\n const currentScope = useTSLexicalScope();\n\n const binder = currentScope?.binder;\n const sym = createSymbol(\n TSOutputSymbol,\n (isSetString(props.name) ? props.name : props.name?.toString()) ||\n uuid().replace(/-/g, \"\"),\n currentScope.types,\n {\n refkeys: props.refkey,\n default: props.default,\n export: props.export,\n metadata: props.metadata,\n tsFlags: TSSymbolFlags.TypeSymbol,\n namePolicy: useTSNamePolicy().for(\"interface\"),\n binder\n }\n );\n\n effect(() => {\n if (ExprSlot.ref.value) {\n const takenSymbols = ExprSlot.ref.value;\n for (const symbol of takenSymbols) {\n // ignore non-transient symbols (likely not the result of an expression).\n if (symbol.isTransient) {\n symbol.moveMembersTo(sym);\n }\n }\n }\n });\n\n return (\n <>\n <Show when={Boolean(props.doc)}>\n <TSDoc heading={props.doc} />\n </Show>\n <Declaration {...props} nameKind=\"interface\" kind=\"type\" symbol={sym}>\n interface <Name />\n {props.typeParameters && (\n <TypeParameters parameters={props.typeParameters} />\n )}\n {extendsPart}{\" \"}\n <ExprSlot>\n <InterfaceExpression>{filteredChildren}</InterfaceExpression>\n </ExprSlot>\n </Declaration>\n </>\n );\n }\n);\n\n/**\n * Generates a TypeScript interface for the given schema.\n */\nexport function InterfaceDeclaration<\n T extends Record<string, any> = Record<string, any>\n>(props: InterfaceDeclarationProps<T>) {\n const [{ name, schema, doc }, rest] = splitProps(props, [\n \"name\",\n \"schema\",\n \"doc\"\n ]);\n\n const interfaceName = computed(() =>\n pascalCase(isSetString(name) ? name : schema?.name || schema?.title || \"\")\n );\n const properties = computed(() =>\n schema\n ? getPropertiesList<T>(schema as Parameters<typeof getPropertiesList>[0])\n .filter(property => !property?.ignore)\n .sort((a, b) =>\n (a?.readOnly && b?.readOnly) || (!a?.readOnly && !b?.readOnly)\n ? !a.name && !b.name\n ? 0\n : !a.name\n ? -1\n : !b.name\n ? 1\n : a.name.localeCompare(b.name)\n : a?.readOnly\n ? 1\n : -1\n )\n : []\n );\n\n return (\n <Show\n when={schema && properties.value.length > 0}\n fallback={\n <BaseInterfaceDeclaration\n {...props}\n schema={{\n type: \"object\",\n name: interfaceName.value,\n properties: {}\n }}\n name={interfaceName.value}\n />\n }>\n <SchemaContext.Provider value={schema as JsonSchemaLike}>\n <TSDocObjectSchema heading={doc} schema={schema!} />\n <BaseInterfaceDeclaration\n export={true}\n name={interfaceName.value}\n {...rest}>\n <For each={properties} doubleHardline={true} semicolon={true}>\n {property => <InterfaceDeclarationProperty schema={property} />}\n </For>\n </BaseInterfaceDeclaration>\n </SchemaContext.Provider>\n </Show>\n );\n}\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function InterfaceDeclarationProperty<\n T extends Record<string, any> = Record<string, any>\n>(props: InterfaceDeclarationPropertyProps<T>) {\n const [{ schema }, rest] = splitProps(props, [\"schema\"]);\n\n const name = computed(\n () =>\n schema?.name ||\n camelCase(schema?.title || schema?.databaseSchemaName || schema?.$id)\n );\n\n return (\n <Show when={isSetString(name.value)}>\n <SchemaPropertyContext.Provider value={schema as JsonSchemaLike}>\n <TSDocSchemaProperty schema={schema} />\n <InterfaceMember\n name={name.value}\n readOnly={schema?.readOnly}\n nullish={schema?.nullable || isSchemaNullable<T>(schema)}\n type={getPrimarySchemaType<T>(schema)}\n {...rest}\n />\n </SchemaPropertyContext.Provider>\n </Show>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"interface-declaration.mjs","names":[],"sources":["../../../src/typescript/components/interface-declaration.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport {\n Block,\n Children,\n childrenArray,\n computed,\n createSymbol,\n createSymbolSlot,\n effect,\n emitSymbol,\n findUnkeyedChildren,\n For,\n MemberDeclaration,\n Name,\n Namekey,\n Refkey,\n Show,\n splitProps,\n takeSymbols\n} from \"@alloy-js/core\";\nimport {\n CommonDeclarationProps,\n Declaration,\n ensureTypeRefContext,\n TSOutputSymbol,\n TSSymbolFlags,\n TypeParameterDescriptor,\n useTSLexicalScope,\n useTSMemberScope,\n useTSNamePolicy\n} from \"@alloy-js/typescript\";\nimport {\n getPrimarySchemaType,\n getPropertiesList,\n isSchemaNullable,\n JsonSchema,\n JsonSchemaLike,\n JsonSchemaPrimitiveType,\n JsonSchemaProperty,\n stringifyType\n} from \"@powerlines/schema\";\nimport { camelCase } from \"@stryke/string-format/camel-case\";\nimport { pascalCase } from \"@stryke/string-format/pascal-case\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { PartialKeys } from \"@stryke/types/base\";\nimport { uuid } from \"@stryke/unique-id/uuid\";\nimport {\n SchemaContext,\n SchemaPropertyContext\n} from \"../../core/contexts/schema\";\nimport { ComponentProps } from \"../../types/components\";\nimport { MemberScope } from \"../contexts/member-scope\";\nimport { PropertyName } from \"./property-name\";\nimport { TSDoc } from \"./tsdoc\";\nimport { TSDocObjectSchema, TSDocSchemaProperty } from \"./tsdoc-schema\";\nimport { TypeParameters } from \"./type-parameters\";\n\nexport interface InterfaceDeclarationProps<\n T extends Record<string, any> = Record<string, any>\n>\n extends PartialKeys<CommonDeclarationProps, \"name\">, ComponentProps {\n /**\n * A base type that this interface extends. This can be used to represent inheritance\n */\n extends?: Children;\n\n /**\n * The generic type parameters of the interface.\n */\n typeParameters?: TypeParameterDescriptor[] | string[];\n\n /**\n * The JSON Schema that describes the properties of this interface.\n *\n * @remarks\n * This is used to generate the members of the interface based on the properties of the schema.\n */\n schema?: JsonSchema<T>;\n\n /**\n * Documentation for the interface. This can be a string or any Alloy component that renders documentation content (such as `TSDoc`).\n */\n doc?: Children;\n}\n\nexport interface InterfaceDeclarationPropertyProps<\n T extends Record<string, any> = Record<string, any>\n>\n extends Omit<InterfaceMemberProps<T>, \"name\">, ComponentProps {\n schema: JsonSchemaProperty<T>;\n}\n\nexport interface InterfaceExpressionProps {\n children?: Children;\n}\n\nexport const InterfaceExpression = ensureTypeRefContext(\n function InterfaceExpression(props: InterfaceExpressionProps) {\n const scope = useTSLexicalScope();\n const symbol = createSymbol(TSOutputSymbol, \"\", undefined, {\n transient: true,\n binder: scope?.binder\n });\n\n emitSymbol(symbol);\n\n return (\n <group>\n <MemberScope ownerSymbol={symbol}>\n <Block>{props.children}</Block>\n </MemberScope>\n </group>\n );\n }\n);\n\nexport interface InterfaceMemberPropsBase {\n children?: Children;\n doc?: Children;\n refkey?: Refkey | Refkey[];\n readOnly?: boolean;\n type?: Children | JsonSchemaPrimitiveType | string;\n nullish?: boolean;\n}\n\nexport interface InterfacePropertyMemberProps extends InterfaceMemberPropsBase {\n name: string | Namekey;\n}\n\nexport interface InterfaceIndexerMemberProps extends InterfaceMemberPropsBase {\n indexer: Children;\n}\n\nexport interface InterfaceSchemaMemberProps<\n T extends Record<string, any> = Record<string, any>\n> extends InterfaceMemberPropsBase {\n schema: JsonSchemaProperty<T>;\n}\n\nexport type InterfaceMemberProps<\n T extends Record<string, any> = Record<string, any>\n> =\n | InterfacePropertyMemberProps\n | InterfaceIndexerMemberProps\n | InterfaceSchemaMemberProps<T>;\n\n/**\n * Create a TypeScript interface member.\n *\n * An interface member can either provide a `name` prop to create a named\n * property, or an `indexer` prop to define an indexer for the interface.\n *\n * The type of the member can be provided either as the `type` prop or as the\n * children of the component.\n */\nexport function InterfaceMember<\n T extends Record<string, any> = Record<string, any>\n>(props: InterfaceMemberProps<T>) {\n const type = (props as InterfaceSchemaMemberProps<T>).schema\n ? stringifyType<T>((props as InterfaceSchemaMemberProps<T>).schema)\n : (props.type ?? props.children);\n\n const readonly =\n ((props as InterfaceSchemaMemberProps<T>).schema &&\n (props as InterfaceSchemaMemberProps<T>).schema?.readOnly) ||\n (!(props as InterfaceSchemaMemberProps<T>).schema && props.readOnly)\n ? \"readonly \"\n : \"\";\n\n if (\"indexer\" in props) {\n return (\n <>\n <Show when={Boolean(props.doc)}>\n <TSDoc heading={props.doc} />\n </Show>\n {readonly}[{props.indexer}]: {type}\n </>\n );\n }\n\n const optional =\n !!(\n (props as InterfaceSchemaMemberProps<T>).schema &&\n \"nullable\" in (props as InterfaceSchemaMemberProps<T>).schema &&\n (props as InterfaceSchemaMemberProps<T>).schema.nullable\n ) || !!props.nullish;\n\n const scope = useTSMemberScope();\n const sym = createSymbol(\n TSOutputSymbol,\n (((props as InterfaceSchemaMemberProps<T>).schema\n ? (props as InterfaceSchemaMemberProps<T>).schema?.name\n : undefined) || isSetString((props as InterfacePropertyMemberProps).name)\n ? (props as InterfacePropertyMemberProps).name\n : (props as InterfacePropertyMemberProps).name.toString()) ||\n uuid().replace(/-/g, \"\"),\n scope.ownerSymbol.staticMembers,\n {\n refkeys: props.refkey,\n tsFlags:\n TSSymbolFlags.TypeSymbol |\n (optional ? TSSymbolFlags.Nullish : TSSymbolFlags.None),\n namePolicy: useTSNamePolicy().for(\"interface-member\"),\n binder: scope.binder\n }\n );\n\n const taken = takeSymbols();\n effect(() => {\n if (taken.size > 1) return;\n const symbol = Array.from(taken)[0];\n if (symbol?.isTransient) {\n symbol.moveMembersTo(sym);\n }\n });\n\n return (\n <MemberDeclaration symbol={sym}>\n <Show when={Boolean(props.doc)}>\n <TSDoc heading={props.doc} />\n </Show>\n {readonly}\n <PropertyName />\n {optional ? \"?\" : \"\"}: {type}\n </MemberDeclaration>\n );\n}\n\nconst BaseInterfaceDeclaration = ensureTypeRefContext(\n function InterfaceDeclaration(props: InterfaceDeclarationProps) {\n const ExprSlot = createSymbolSlot();\n\n const children = childrenArray(() => props.children);\n\n const extendsPart = props.extends ? <> extends {props.extends}</> : \"\";\n const filteredChildren = findUnkeyedChildren(children);\n const currentScope = useTSLexicalScope();\n\n const binder = currentScope?.binder;\n const sym = createSymbol(\n TSOutputSymbol,\n (isSetString(props.name) ? props.name : props.name?.toString()) ||\n uuid().replace(/-/g, \"\"),\n currentScope.types,\n {\n refkeys: props.refkey,\n default: props.default,\n export: props.export,\n metadata: props.metadata,\n tsFlags: TSSymbolFlags.TypeSymbol,\n namePolicy: useTSNamePolicy().for(\"interface\"),\n binder\n }\n );\n\n effect(() => {\n if (ExprSlot.ref.value) {\n const takenSymbols = ExprSlot.ref.value;\n for (const symbol of takenSymbols) {\n // ignore non-transient symbols (likely not the result of an expression).\n if (symbol.isTransient) {\n symbol.moveMembersTo(sym);\n }\n }\n }\n });\n\n return (\n <>\n <Show when={Boolean(props.doc)}>\n <TSDoc heading={props.doc} />\n </Show>\n <Declaration {...props} nameKind=\"interface\" kind=\"type\" symbol={sym}>\n interface <Name />\n {props.typeParameters && (\n <TypeParameters parameters={props.typeParameters} />\n )}\n {extendsPart}{\" \"}\n <ExprSlot>\n <InterfaceExpression>{filteredChildren}</InterfaceExpression>\n </ExprSlot>\n </Declaration>\n </>\n );\n }\n);\n\n/**\n * Generates a TypeScript interface for the given schema.\n */\nexport function InterfaceDeclaration<\n T extends Record<string, any> = Record<string, any>\n>(props: InterfaceDeclarationProps<T>) {\n const [{ name, schema, doc }, rest] = splitProps(props, [\n \"name\",\n \"schema\",\n \"doc\"\n ]);\n\n const interfaceName = computed(() =>\n pascalCase(isSetString(name) ? name : schema?.name || schema?.title || \"\")\n );\n const properties = computed(() =>\n schema\n ? getPropertiesList<T>(schema as Parameters<typeof getPropertiesList>[0])\n .filter(property => !property?.ignore)\n .sort((a, b) =>\n (a?.readOnly && b?.readOnly) || (!a?.readOnly && !b?.readOnly)\n ? !a.name && !b.name\n ? 0\n : !a.name\n ? -1\n : !b.name\n ? 1\n : a.name.localeCompare(b.name)\n : a?.readOnly\n ? 1\n : -1\n )\n : []\n );\n\n return (\n <Show\n when={schema && properties.value.length > 0}\n fallback={\n <BaseInterfaceDeclaration\n {...props}\n schema={{\n type: \"object\",\n name: interfaceName.value,\n properties: {}\n }}\n name={interfaceName.value}\n />\n }>\n <SchemaContext.Provider value={schema as JsonSchemaLike}>\n <TSDocObjectSchema heading={doc} schema={schema!} />\n <BaseInterfaceDeclaration\n export={true}\n name={interfaceName.value}\n {...rest}>\n <For each={properties} doubleHardline={true} semicolon={true}>\n {property => <InterfaceDeclarationProperty schema={property} />}\n </For>\n </BaseInterfaceDeclaration>\n </SchemaContext.Provider>\n </Show>\n );\n}\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function InterfaceDeclarationProperty<\n T extends Record<string, any> = Record<string, any>\n>(props: InterfaceDeclarationPropertyProps<T>) {\n const [{ schema }, rest] = splitProps(props, [\"schema\"]);\n\n const name = computed(\n () =>\n schema?.name ||\n camelCase(schema?.title || schema?.databaseSchemaName || schema?.$id)\n );\n\n return (\n <Show when={isSetString(name.value)}>\n <SchemaPropertyContext.Provider value={schema as JsonSchemaLike}>\n <TSDocSchemaProperty schema={schema} />\n <InterfaceMember\n name={name.value}\n readOnly={schema?.readOnly}\n nullish={schema?.nullable || isSchemaNullable<T>(schema)}\n type={getPrimarySchemaType<T>(schema)}\n {...rest}\n />\n </SchemaPropertyContext.Provider>\n </Show>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAkCA,MAAY,sBAAA,qBAAA,SAAA,oBAAA,OAAA;CAEV,MAAM,SAAS,aAAM,gBAAA,IAAA,QAAA;EACvB,WAAO;EACL,QAHA,kBAGA,GAAA;CACA,CAAA;CACA,WAAA,MAAA;CACA,OAAA,gBAAc,SAAA,EACd,IAAA,WAAa;EACb,OAAA,gBAAuB,eAAA;GACvB,aAAiB;GACjB,IAAA,WAAgB;IAChB,OAAA,gBAAA,OAAA,EACO,IAAM,WAAG;KACX,OAAA,MAAA;IACL,EACA,CAAA;GACA;EACA,CAAA;CACA,EACA,CAAA;AACF,CAAC;;;;;;;;;;AAUD,SAAE,gBAAA,OAAA;CACA,MAAM,OAAM,MAAK,SAAS,cAAO,MAAA,MAAA,IAAA,MAAA,QAAA,MAAA;CACnC,MAAQ,WAAC,MAAgB,UAAU,MAAG,QAAM,YAAW,CAAA,MAAA,UAAA,MAAA,WAAA,cAAA;CACvD,IAAM,aAAG,OACT,OAAS;EAAA,gBAAqB,MAAE;GAC1B,IAAG,OAAQ;IACT,OAAC,QAAA,MAAmB,GAAA;GACtB;;IAEC,OAAA,gBAAU,OAAA,EACb,IAAQ,UAAO;KACnB,OAAA,MAAA;IACU,EACN,CAAA;GACE;EACF,CAAA;EAAA;EAAA;EAAA,WAAA,MAAA,OAAA;EAAA;EAAA;CAAA;;CAGF,MAAE,QAAA,iBAAA;CACF,MAAM,MAAC,aAAa,kBAAkB,MAAS,SAAA,MAAA,QAAA,OAAA,WAAA,YAAA,MAAA,IAAA,IAAA,MAAA,OAAA,MAAA,KAAA,SAAA,MAAA,KAAA,EAAA,QAAA,MAAA,EAAA,GAAA,MAAA,YAAA,eAAA;EAC7C,SAAA,MAAA;EACF,SAAA,cAAiB,cAAA,WAA4B,cAAQ,UAAA,cAAA;;EAEnD,QAAA,MAAA;CACF,CAAC;CACD,MAAC,QAAA,YAAA;CACD,aAAI;EACF,IAAC,MAAQ,OAAQ,GAAA;EACjB,MAAA,SAAA,MAAA,KAAA,KAAA,EAAA;EACF,IAAM,QAAG;CAGT,CAAC;CACD,OAAE,gBAAA,mBAAA;EACF,QAAM;EACR,IAAA,WAAA;;;KAEO,IAAA,OAAU;MACb,OAAQ,QAAa,MAAM,GAAG;KAClC;KACE,IAAQ,WAAK;MACL,OAAA,gBAAqB,OAAA,EAC/B,IAAA,UAAA;;MAEO,EACG,CAAC;KACX;;;;;;;;EAEA;CACE,CAAA;AACF;AACA,MAAI,2BAA4B,qBAAoB,SAAW,qBAAA,OAAA;CAC7D,MAAI,WAAW,iBAAI;CACnB,MAAI,WAAa,oBAAE,MAAA,QAAA;CACnB,MAAI,cAAA,MAAA,UAAA,CAAA,aAAA,WAAA,MAAA,OAAA,CAAA,IAAA;;CAEJ,MAAE,eAAkB,kBAAA;;CAEpB,MAAE,MAAO,aAAA,iBAAA,YAAA,MAAA,IAAA,IAAA,MAAA,OAAA,MAAA,MAAA,SAAA,MAAA,KAAA,EAAA,QAAA,MAAA,EAAA,GAAA,aAAA,OAAA;EACP,SAAQ,MAAA;EACR,SAAK,MAAA;EACL,QAAO,MAAO;EACd,UAAM,MAAA;EACN,SAAS,cAAA;EACT,YAAC,gBAAA,EAAA,IAAA,WAAA;EACH;CACD,CAAA;;EAED,IAAO,SAAU,IAAA,OAAA;GACf,MAAU,eAAS,SAAA,IAAA;GACf,KAAE,MAAQ,UAAA,cAEd,IAAU,OAAC,aACJ,OAAQ,cAAG,GAAA;;CAIpB,CAAA;CACE,OAAM,CAAA,gBAAgB,MAAA;EACxB,IAAA,OAAA;;EAEA;EACE,IAAA,WAAiB;GACnB,OAAA,gBAAA,OAAA;IAEO,OAAU,MAAA;GACb,EACF,CAAA;EACA;CACF,CAAA,GAAA,gBAAA,eAAA,WAAA,OAAA;;EAEA,MAAO;EACH,QAAQ;EACV,IAAA,WAAA;GACE,OAAA;IAAA;IAAA,gBAAA,MAAA,CAAA,CAAA;IAAA,WAAA,WAAA,CAAA,CAAA,MAAA,cAAA,EAAA,KAAA,gBAAA,gBAAA,EACA,IAAA,aAAA;KACA,OAAA,MAAA;MAEF,CAAA,CAAA;IAAA;IAAA;IAAA,gBAAA,UAAA,EACC,IAAS,WAAW;KACtB,OAAA,gBAAA,qBAAA,EACK,UAAgB,iBACnB,CAAQ;IACV,EACK,CAAC;GAAA;EACJ;CACD,CAAA,CAAA,CAAA;AACF,CAAA;;;;AAKA,SAAa,qBAAuB,OAAA;UAElC,MACE,QACA,OACC,QAAQ,WAAG,OAAA;EAAA;EAAA;EAA+B;CAAQ,CAAC;CACtD,MAAM,gBAAU,eAAA,WAAA,YAAA,IAAA,IAAA,OAAA,QAAA,QAAA,QAAA,SAAA,EAAA,CAAA;CAChB,MAAM,aAAE,eAAA,SAAA,kBAAA,MAAA,EAAA,QAAA,aAAA,CAAA,UAAA,MAAA,EAAA,MAAA,GAAA,MAAA,GAAA,YAAA,GAAA,YAAA,CAAA,GAAA,YAAA,CAAA,GAAA,WAAA,CAAA,EAAA,QAAA,CAAA,EAAA,OAAA,IAAA,CAAA,EAAA,OAAA,KAAA,CAAA,EAAA,OAAA,IAAA,EAAA,KAAA,cAAA,EAAA,IAAA,IAAA,GAAA,WAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;EAEN,IAAG,OAAQ;GACX,OAAO,UAAA,WAAA,MAAA,SAAA;EACP;EACA,IAAI,WAAW;GACb,OAAK,gBAAoB,0BAAO,WAAA,OAAA;IAC9B,IAAE,SAAI;KACL,OAAQ;MACT,MAAA;MACH,MAAA,cAAA;MACH,YAAA,CAAA;;IAEM;IACF,IAAA,OAAA;KACC,OAAS,cAAA;IACT;GACD,CAAC,CAAA;EACH;;GAEF,OAAW,gBAAG,cAAkB,UAAA;IAC1B,OAAM;IACV,IAAA,WAAc;KACX,OAAS,CAAA,gBAAA,mBAA+B;MACtC,SAAS;MACE;KACX,CAAA,GAAK,gBAAI,0BAA8B,WAAA;MACvC,UAAS;MACN,IAAC,OAAU;OACb,OAAW,cAAc;MAC/B;KACE,GAAO,MAAE,EACT,IAAO,WAAA;MACL,OAAa,gBAAY,KAAA;OACxB,MAAW;OACJ,gBAAE;OACJ,WAAM;OAChB,WAAA,aAAA,gBAAA,8BAAA,EACD,QAAA;MAEW,CAAC;KACH,EACJ,CAAA,CAAA,CAAK;IACT;GACE,CAAC;EACH;CACF,CAAC;AACH;;;;AAKA,SAAe,6BAAqB,OAAA;CAClC,MAAM,CAAA,EACJ,UACC,QAAE,WAAc,OAAA,CAAA,QAAA,CAAA;CACnB,MAAK,OAAQ,eAAe,QAAI,QAAA,UAAA,QAAA,SAAA,QAAA,sBAAA,QAAA,GAAA,CAAA;CAChC,OAAI,gBAAiB,MAAA;EACpB,IAAA,OAAA;GACH,OAAA,YAAA,KAAA,KAAA;;EAEA,IAAM,WAAA;GACJ,OAAS,gBAAoB,sBAAQ,UAAA;IACnC,OAAM;;KAEA,OAAA,CAAQ,gBAAkB,qBAAoB,SAE9C,CAAA,GAAA,gBAAoB,iBAAa,WAAe;MAChD,IAAA,OAAA;OACA,OAAA,KAAe;;MAEf,IAAM,WAAG;OACL,OAAE,QAAY;MACtB;MACC,IAAA,UAAkB;OACX,OAAC,QAAc,YAAG,iBAAA,MAAA;MAC1B;MACA,IAAA,OAAA;OACE,OAAS,qBAAY,MAAA;MACrB;KACA,GAAA,IAAQ,CAAA,CAAA;IACR;GACF,CAAC;EACH;CACF,CAAC;AACH"}
@@ -6,8 +6,8 @@ let _alloy_js_core = require("@alloy-js/core");
6
6
  let _stryke_string_format_camel_case = require("@stryke/string-format/camel-case");
7
7
  let _stryke_type_checks_is_undefined = require("@stryke/type-checks/is-undefined");
8
8
  let _alloy_js_typescript = require("@alloy-js/typescript");
9
- let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
10
9
  let _powerlines_schema = require("@powerlines/schema");
10
+ let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
11
11
 
12
12
  //#region src/typescript/components/object-declaration.tsx
13
13
  /**
@@ -5,8 +5,8 @@ import { Declaration, For, Name, Show, computed, createSymbolSlot, splitProps }
5
5
  import { camelCase } from "@stryke/string-format/camel-case";
6
6
  import { isUndefined } from "@stryke/type-checks/is-undefined";
7
7
  import { ObjectExpression, ObjectProperty, TSSymbolFlags, TypeRefContext, createValueSymbol, useTSNamePolicy } from "@alloy-js/typescript";
8
- import { isSetString } from "@stryke/type-checks/is-set-string";
9
8
  import { getPropertiesList } from "@powerlines/schema";
9
+ import { isSetString } from "@stryke/type-checks/is-set-string";
10
10
 
11
11
  //#region src/typescript/components/object-declaration.tsx
12
12
  /**
@@ -6,8 +6,8 @@ let _alloy_js_core = require("@alloy-js/core");
6
6
  let _stryke_string_format_title_case = require("@stryke/string-format/title-case");
7
7
  let _stryke_type_checks_is_undefined = require("@stryke/type-checks/is-undefined");
8
8
  let _stryke_type_checks = require("@stryke/type-checks");
9
- let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
10
9
  let _powerlines_schema = require("@powerlines/schema");
10
+ let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
11
11
 
12
12
  //#region src/typescript/components/tsdoc-schema.tsx
13
13
  /**
@@ -5,8 +5,8 @@ import { List, Show, childrenArray, computed, splitProps } from "@alloy-js/core"
5
5
  import { titleCase } from "@stryke/string-format/title-case";
6
6
  import { isUndefined } from "@stryke/type-checks/is-undefined";
7
7
  import { isSetObject } from "@stryke/type-checks";
8
- import { isSetString } from "@stryke/type-checks/is-set-string";
9
8
  import { getPrimarySchemaType } from "@powerlines/schema";
9
+ import { isSetString } from "@stryke/type-checks/is-set-string";
10
10
 
11
11
  //#region src/typescript/components/tsdoc-schema.tsx
12
12
  /**
@@ -4,7 +4,7 @@ const require_core_components_spacing = require('../../core/components/spacing.c
4
4
  let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
5
5
  let _alloy_js_core = require("@alloy-js/core");
6
6
  let _stryke_type_checks_is_undefined = require("@stryke/type-checks/is-undefined");
7
- let _powerlines_schema_codegen = require("@powerlines/schema/codegen");
7
+ let _powerlines_schema = require("@powerlines/schema");
8
8
  let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
9
9
 
10
10
  //#region src/typescript/components/tsdoc.tsx
@@ -165,7 +165,7 @@ function TSDocDefaultValue(props) {
165
165
  width: 2,
166
166
  get children() {
167
167
  return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Prose, { get children() {
168
- return (0, _powerlines_schema_codegen.stringifyValue)(defaultValue, type);
168
+ return (0, _powerlines_schema.stringifyValue)(defaultValue, type);
169
169
  } });
170
170
  }
171
171
  });
@@ -1,7 +1,7 @@
1
1
  import { ComponentProps } from "../../types/components.cjs";
2
2
  import { Children } from "@alloy-js/core";
3
3
  import { JSDocExampleProps, ParameterDescriptor } from "@alloy-js/typescript";
4
- import { JsonSchemaPrimitiveType } from "@powerlines/schema/types";
4
+ import { JsonSchemaPrimitiveType } from "@powerlines/schema";
5
5
 
6
6
  //#region src/typescript/components/tsdoc.d.ts
7
7
  interface TSDocProps extends ComponentProps {
@@ -46,7 +46,7 @@ declare function TSDocPermission(props: ComponentProps): Children;
46
46
  */
47
47
  declare function TSDocGroup(props: ComponentProps): Children;
48
48
  interface TSDocDefaultValueProps extends ComponentProps {
49
- type?: JsonSchemaPrimitiveType;
49
+ type?: JsonSchemaPrimitiveType | string;
50
50
  defaultValue: any;
51
51
  }
52
52
  /**
@@ -94,7 +94,7 @@ declare function TSDocHidden(): Children;
94
94
  */
95
95
  declare function TSDocRuntime(): Children;
96
96
  interface TSDocAttributesTagsProps {
97
- type?: JsonSchemaPrimitiveType;
97
+ type?: JsonSchemaPrimitiveType | string;
98
98
  default?: any;
99
99
  title?: string;
100
100
  alias?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"tsdoc.d.cts","names":[],"sources":["../../../src/typescript/components/tsdoc.tsx"],"mappings":";;;;;;UAsCiB,UAAA,SAAmB,cAAc;EAChD,OAAA,GAAU,QAAA;AAAA;;;;iBAMI,KAAA,CAAM,KAAA,EAAO,UAAA,GAAU,QAAA;AAAA,UA6BtB,aAAA,SAAsB,cAAc;EACnD,GAAG;AAAA;AApCe;AAMpB;;AANoB,iBA0CJ,QAAA,CAAS,KAAA,EAAO,aAAA,GAAa,QAAA;AAAA,UAgB5B,gBAAA;EACf,UAAA,EAAY,mBAAmB;AAAA;;;AArDM;iBA2DvB,WAAA,CAAY,KAAA,EAAO,gBAAA,GAAgB,QAAA;;;;iBA2BnC,UAAA,CAAW,KAAA,EAAO,cAAA,GAAc,QAAA;AAlDhD;;;AAAA,iBA+DgB,WAAA,CAAY,KAAA,EAAO,cAAA,GAAc,QAAA;;;;iBAajC,UAAA,CAAW,KAAA,EAAO,cAAA,GAAc,QAAA;AA5EH;AAgB7C;;AAhB6C,iBAyF7B,eAAA,CAAgB,KAAA,EAAO,cAAA,GAAc,QAAA;;AAxEpB;AAMjC;iBA+EgB,UAAA,CAAW,KAAA,EAAO,cAAA,GAAc,QAAA;AAAA,UAU/B,sBAAA,SAA+B,cAAc;EAC5D,IAAA,GAAO,uBAAA;EACP,YAAA;AAAA;;;AA3FiD;iBAiGnC,iBAAA,CAAkB,KAAA,EAAO,sBAAA,GAAsB,QAAA;;;;iBAkB/C,YAAA,CAAa,KAAA,EAAO,cAAA,GAAc,QAAA;;;;iBAelC,SAAA,CAAU,KAAA,EAAO,cAAA,GAAc,QAAA;AAAA,UAI9B,iBAAA,SAA0B,iBAAiB;EA9FjC;;;;;EAoGzB,GAAG;AAAA;AApG4C;AAajD;;AAbiD,iBA0GjC,YAAA,CAAa,KAAA,EAAO,iBAAA,GAAiB,QAAA;;;;iBA4BrC,aAAA,CAAA,GAAa,QAAA;;AAzHmB;AAahD;iBAmHgB,aAAA,CAAA,GAAa,QAAA;;;;iBAOb,WAAA,CAAA,GAAW,QAAA;;;AA1H0B;iBAiIrC,WAAA,CAAA,GAAW,QAAA;;;;iBAOX,YAAA,CAAA,GAAY,QAAA;AAAA,UAIX,wBAAA;EACf,IAAA,GAAO,uBAAuB;EAC9B,OAAA;EACA,KAAA;EACA,KAAA;EACA,IAAA;EACA,UAAA;EACA,QAAA;EACA,QAAA;EACA,MAAA;EACA,MAAA;EACA,OAAA;AAAA;AA9HY;AAMd;;AANc,iBAoIE,mBAAA,CAAoB,KAAA,EAAO,wBAAA,GAAwB,QAAA;AAAA,UAiFlD,eAAA;EACf,IAAA,EAAM,QAAA;EACN,QAAA,GAAW,QAAA;EACX,QAAA;EACA,OAAA,GAAU,QAAA;AAAA;AAjMZ;;;AAAA,iBAuMgB,UAAA,CAAW,KAAA,EAAO,eAAA,GAAe,QAAA;;;;iBAiDjC,YAAA,CAAa,KAAA,EAAO,cAAA,GAAc,QAAA;AAxPA;AAelD;;AAfkD,iBA+PlC,WAAA,CAAY,KAAA,EAAO,cAAA,GAAc,QAAA;AAAA,UAIhC,gBAAA,SAAyB,cAAc;EApPvB;;;;AAAc;AAI/C;;;;AAMK;AAML;;;EAkPE,MAAA;EAlPkC;;;;AAAiB;AA4BrD;;;;AAA6B;AAO7B;EA4NE,IAAA,EAAM,QAAA;AAAA;;AA5NqB;AAO7B;iBA2NgB,WAAA,CAAY,KAAA,EAAO,gBAAA,GAAgB,QAAA"}
1
+ {"version":3,"file":"tsdoc.d.cts","names":[],"sources":["../../../src/typescript/components/tsdoc.tsx"],"mappings":";;;;;;UAqCiB,UAAA,SAAmB,cAAc;EAChD,OAAA,GAAU,QAAA;AAAA;;;;iBAMI,KAAA,CAAM,KAAA,EAAO,UAAA,GAAU,QAAA;AAAA,UA6BtB,aAAA,SAAsB,cAAc;EACnD,GAAG;AAAA;AApCe;AAMpB;;AANoB,iBA0CJ,QAAA,CAAS,KAAA,EAAO,aAAA,GAAa,QAAA;AAAA,UAgB5B,gBAAA;EACf,UAAA,EAAY,mBAAmB;AAAA;;;AArDM;iBA2DvB,WAAA,CAAY,KAAA,EAAO,gBAAA,GAAgB,QAAA;;;;iBA2BnC,UAAA,CAAW,KAAA,EAAO,cAAA,GAAc,QAAA;AAlDhD;;;AAAA,iBA+DgB,WAAA,CAAY,KAAA,EAAO,cAAA,GAAc,QAAA;;;;iBAajC,UAAA,CAAW,KAAA,EAAO,cAAA,GAAc,QAAA;AA5EH;AAgB7C;;AAhB6C,iBAyF7B,eAAA,CAAgB,KAAA,EAAO,cAAA,GAAc,QAAA;;AAxEpB;AAMjC;iBA+EgB,UAAA,CAAW,KAAA,EAAO,cAAA,GAAc,QAAA;AAAA,UAU/B,sBAAA,SAA+B,cAAc;EAC5D,IAAA,GAAO,uBAAA;EACP,YAAA;AAAA;;;AA3FiD;iBAiGnC,iBAAA,CAAkB,KAAA,EAAO,sBAAA,GAAsB,QAAA;;;;iBAkB/C,YAAA,CAAa,KAAA,EAAO,cAAA,GAAc,QAAA;;;;iBAelC,SAAA,CAAU,KAAA,EAAO,cAAA,GAAc,QAAA;AAAA,UAI9B,iBAAA,SAA0B,iBAAiB;EA9FjC;;;;;EAoGzB,GAAG;AAAA;AApG4C;AAajD;;AAbiD,iBA0GjC,YAAA,CAAa,KAAA,EAAO,iBAAA,GAAiB,QAAA;;;;iBA4BrC,aAAA,CAAA,GAAa,QAAA;;AAzHmB;AAahD;iBAmHgB,aAAA,CAAA,GAAa,QAAA;;;;iBAOb,WAAA,CAAA,GAAW,QAAA;;;AA1H0B;iBAiIrC,WAAA,CAAA,GAAW,QAAA;;;;iBAOX,YAAA,CAAA,GAAY,QAAA;AAAA,UAIX,wBAAA;EACf,IAAA,GAAO,uBAAuB;EAC9B,OAAA;EACA,KAAA;EACA,KAAA;EACA,IAAA;EACA,UAAA;EACA,QAAA;EACA,QAAA;EACA,MAAA;EACA,MAAA;EACA,OAAA;AAAA;AA9HY;AAMd;;AANc,iBAoIE,mBAAA,CAAoB,KAAA,EAAO,wBAAA,GAAwB,QAAA;AAAA,UAiFlD,eAAA;EACf,IAAA,EAAM,QAAA;EACN,QAAA,GAAW,QAAA;EACX,QAAA;EACA,OAAA,GAAU,QAAA;AAAA;AAjMZ;;;AAAA,iBAuMgB,UAAA,CAAW,KAAA,EAAO,eAAA,GAAe,QAAA;;;;iBAiDjC,YAAA,CAAa,KAAA,EAAO,cAAA,GAAc,QAAA;AAxPA;AAelD;;AAfkD,iBA+PlC,WAAA,CAAY,KAAA,EAAO,cAAA,GAAc,QAAA;AAAA,UAIhC,gBAAA,SAAyB,cAAc;EApPvB;;;;AAAc;AAI/C;;;;AAMK;AAML;;;EAkPE,MAAA;EAlPkC;;;;AAAiB;AA4BrD;;;;AAA6B;AAO7B;EA4NE,IAAA,EAAM,QAAA;AAAA;;AA5NqB;AAO7B;iBA2NgB,WAAA,CAAY,KAAA,EAAO,gBAAA,GAAgB,QAAA"}
@@ -1,7 +1,7 @@
1
1
  import { ComponentProps } from "../../types/components.mjs";
2
2
  import { Children } from "@alloy-js/core";
3
3
  import { JSDocExampleProps, ParameterDescriptor } from "@alloy-js/typescript";
4
- import { JsonSchemaPrimitiveType } from "@powerlines/schema/types";
4
+ import { JsonSchemaPrimitiveType } from "@powerlines/schema";
5
5
 
6
6
  //#region src/typescript/components/tsdoc.d.ts
7
7
  interface TSDocProps extends ComponentProps {
@@ -46,7 +46,7 @@ declare function TSDocPermission(props: ComponentProps): Children;
46
46
  */
47
47
  declare function TSDocGroup(props: ComponentProps): Children;
48
48
  interface TSDocDefaultValueProps extends ComponentProps {
49
- type?: JsonSchemaPrimitiveType;
49
+ type?: JsonSchemaPrimitiveType | string;
50
50
  defaultValue: any;
51
51
  }
52
52
  /**
@@ -94,7 +94,7 @@ declare function TSDocHidden(): Children;
94
94
  */
95
95
  declare function TSDocRuntime(): Children;
96
96
  interface TSDocAttributesTagsProps {
97
- type?: JsonSchemaPrimitiveType;
97
+ type?: JsonSchemaPrimitiveType | string;
98
98
  default?: any;
99
99
  title?: string;
100
100
  alias?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"tsdoc.d.mts","names":[],"sources":["../../../src/typescript/components/tsdoc.tsx"],"mappings":";;;;;;UAsCiB,UAAA,SAAmB,cAAc;EAChD,OAAA,GAAU,QAAA;AAAA;;;;iBAMI,KAAA,CAAM,KAAA,EAAO,UAAA,GAAU,QAAA;AAAA,UA6BtB,aAAA,SAAsB,cAAc;EACnD,GAAG;AAAA;AApCe;AAMpB;;AANoB,iBA0CJ,QAAA,CAAS,KAAA,EAAO,aAAA,GAAa,QAAA;AAAA,UAgB5B,gBAAA;EACf,UAAA,EAAY,mBAAmB;AAAA;;;AArDM;iBA2DvB,WAAA,CAAY,KAAA,EAAO,gBAAA,GAAgB,QAAA;;;;iBA2BnC,UAAA,CAAW,KAAA,EAAO,cAAA,GAAc,QAAA;AAlDhD;;;AAAA,iBA+DgB,WAAA,CAAY,KAAA,EAAO,cAAA,GAAc,QAAA;;;;iBAajC,UAAA,CAAW,KAAA,EAAO,cAAA,GAAc,QAAA;AA5EH;AAgB7C;;AAhB6C,iBAyF7B,eAAA,CAAgB,KAAA,EAAO,cAAA,GAAc,QAAA;;AAxEpB;AAMjC;iBA+EgB,UAAA,CAAW,KAAA,EAAO,cAAA,GAAc,QAAA;AAAA,UAU/B,sBAAA,SAA+B,cAAc;EAC5D,IAAA,GAAO,uBAAA;EACP,YAAA;AAAA;;;AA3FiD;iBAiGnC,iBAAA,CAAkB,KAAA,EAAO,sBAAA,GAAsB,QAAA;;;;iBAkB/C,YAAA,CAAa,KAAA,EAAO,cAAA,GAAc,QAAA;;;;iBAelC,SAAA,CAAU,KAAA,EAAO,cAAA,GAAc,QAAA;AAAA,UAI9B,iBAAA,SAA0B,iBAAiB;EA9FjC;;;;;EAoGzB,GAAG;AAAA;AApG4C;AAajD;;AAbiD,iBA0GjC,YAAA,CAAa,KAAA,EAAO,iBAAA,GAAiB,QAAA;;;;iBA4BrC,aAAA,CAAA,GAAa,QAAA;;AAzHmB;AAahD;iBAmHgB,aAAA,CAAA,GAAa,QAAA;;;;iBAOb,WAAA,CAAA,GAAW,QAAA;;;AA1H0B;iBAiIrC,WAAA,CAAA,GAAW,QAAA;;;;iBAOX,YAAA,CAAA,GAAY,QAAA;AAAA,UAIX,wBAAA;EACf,IAAA,GAAO,uBAAuB;EAC9B,OAAA;EACA,KAAA;EACA,KAAA;EACA,IAAA;EACA,UAAA;EACA,QAAA;EACA,QAAA;EACA,MAAA;EACA,MAAA;EACA,OAAA;AAAA;AA9HY;AAMd;;AANc,iBAoIE,mBAAA,CAAoB,KAAA,EAAO,wBAAA,GAAwB,QAAA;AAAA,UAiFlD,eAAA;EACf,IAAA,EAAM,QAAA;EACN,QAAA,GAAW,QAAA;EACX,QAAA;EACA,OAAA,GAAU,QAAA;AAAA;AAjMZ;;;AAAA,iBAuMgB,UAAA,CAAW,KAAA,EAAO,eAAA,GAAe,QAAA;;;;iBAiDjC,YAAA,CAAa,KAAA,EAAO,cAAA,GAAc,QAAA;AAxPA;AAelD;;AAfkD,iBA+PlC,WAAA,CAAY,KAAA,EAAO,cAAA,GAAc,QAAA;AAAA,UAIhC,gBAAA,SAAyB,cAAc;EApPvB;;;;AAAc;AAI/C;;;;AAMK;AAML;;;EAkPE,MAAA;EAlPkC;;;;AAAiB;AA4BrD;;;;AAA6B;AAO7B;EA4NE,IAAA,EAAM,QAAA;AAAA;;AA5NqB;AAO7B;iBA2NgB,WAAA,CAAY,KAAA,EAAO,gBAAA,GAAgB,QAAA"}
1
+ {"version":3,"file":"tsdoc.d.mts","names":[],"sources":["../../../src/typescript/components/tsdoc.tsx"],"mappings":";;;;;;UAqCiB,UAAA,SAAmB,cAAc;EAChD,OAAA,GAAU,QAAA;AAAA;;;;iBAMI,KAAA,CAAM,KAAA,EAAO,UAAA,GAAU,QAAA;AAAA,UA6BtB,aAAA,SAAsB,cAAc;EACnD,GAAG;AAAA;AApCe;AAMpB;;AANoB,iBA0CJ,QAAA,CAAS,KAAA,EAAO,aAAA,GAAa,QAAA;AAAA,UAgB5B,gBAAA;EACf,UAAA,EAAY,mBAAmB;AAAA;;;AArDM;iBA2DvB,WAAA,CAAY,KAAA,EAAO,gBAAA,GAAgB,QAAA;;;;iBA2BnC,UAAA,CAAW,KAAA,EAAO,cAAA,GAAc,QAAA;AAlDhD;;;AAAA,iBA+DgB,WAAA,CAAY,KAAA,EAAO,cAAA,GAAc,QAAA;;;;iBAajC,UAAA,CAAW,KAAA,EAAO,cAAA,GAAc,QAAA;AA5EH;AAgB7C;;AAhB6C,iBAyF7B,eAAA,CAAgB,KAAA,EAAO,cAAA,GAAc,QAAA;;AAxEpB;AAMjC;iBA+EgB,UAAA,CAAW,KAAA,EAAO,cAAA,GAAc,QAAA;AAAA,UAU/B,sBAAA,SAA+B,cAAc;EAC5D,IAAA,GAAO,uBAAA;EACP,YAAA;AAAA;;;AA3FiD;iBAiGnC,iBAAA,CAAkB,KAAA,EAAO,sBAAA,GAAsB,QAAA;;;;iBAkB/C,YAAA,CAAa,KAAA,EAAO,cAAA,GAAc,QAAA;;;;iBAelC,SAAA,CAAU,KAAA,EAAO,cAAA,GAAc,QAAA;AAAA,UAI9B,iBAAA,SAA0B,iBAAiB;EA9FjC;;;;;EAoGzB,GAAG;AAAA;AApG4C;AAajD;;AAbiD,iBA0GjC,YAAA,CAAa,KAAA,EAAO,iBAAA,GAAiB,QAAA;;;;iBA4BrC,aAAA,CAAA,GAAa,QAAA;;AAzHmB;AAahD;iBAmHgB,aAAA,CAAA,GAAa,QAAA;;;;iBAOb,WAAA,CAAA,GAAW,QAAA;;;AA1H0B;iBAiIrC,WAAA,CAAA,GAAW,QAAA;;;;iBAOX,YAAA,CAAA,GAAY,QAAA;AAAA,UAIX,wBAAA;EACf,IAAA,GAAO,uBAAuB;EAC9B,OAAA;EACA,KAAA;EACA,KAAA;EACA,IAAA;EACA,UAAA;EACA,QAAA;EACA,QAAA;EACA,MAAA;EACA,MAAA;EACA,OAAA;AAAA;AA9HY;AAMd;;AANc,iBAoIE,mBAAA,CAAoB,KAAA,EAAO,wBAAA,GAAwB,QAAA;AAAA,UAiFlD,eAAA;EACf,IAAA,EAAM,QAAA;EACN,QAAA,GAAW,QAAA;EACX,QAAA;EACA,OAAA,GAAU,QAAA;AAAA;AAjMZ;;;AAAA,iBAuMgB,UAAA,CAAW,KAAA,EAAO,eAAA,GAAe,QAAA;;;;iBAiDjC,YAAA,CAAa,KAAA,EAAO,cAAA,GAAc,QAAA;AAxPA;AAelD;;AAfkD,iBA+PlC,WAAA,CAAY,KAAA,EAAO,cAAA,GAAc,QAAA;AAAA,UAIhC,gBAAA,SAAyB,cAAc;EApPvB;;;;AAAc;AAI/C;;;;AAMK;AAML;;;EAkPE,MAAA;EAlPkC;;;;AAAiB;AA4BrD;;;;AAA6B;AAO7B;EA4NE,IAAA,EAAM,QAAA;AAAA;;AA5NqB;AAO7B;iBA2NgB,WAAA,CAAY,KAAA,EAAO,gBAAA,GAAgB,QAAA"}
@@ -3,7 +3,7 @@ import { Spacing } from "../../core/components/spacing.mjs";
3
3
  import { createComponent, createIntrinsic, memo, mergeProps } from "@alloy-js/core/jsx-runtime";
4
4
  import { For, List, Prose, Show, childrenArray, computed, splitProps } from "@alloy-js/core";
5
5
  import { isUndefined } from "@stryke/type-checks/is-undefined";
6
- import { stringifyValue } from "@powerlines/schema/codegen";
6
+ import { stringifyValue } from "@powerlines/schema";
7
7
  import { isSetString } from "@stryke/type-checks/is-set-string";
8
8
 
9
9
  //#region src/typescript/components/tsdoc.tsx
@@ -1 +1 @@
1
- {"version":3,"file":"tsdoc.mjs","names":[],"sources":["../../../src/typescript/components/tsdoc.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport {\n Children,\n childrenArray,\n computed,\n For,\n List,\n Prose,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport { JSDocExampleProps, ParameterDescriptor } from \"@alloy-js/typescript\";\n\nimport { stringifyValue } from \"@powerlines/schema/codegen\";\nimport { JsonSchemaPrimitiveType } from \"@powerlines/schema/types\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport { Spacing } from \"../../core/components/spacing\";\nimport { usePowerlinesSafe } from \"../../core/contexts/context\";\nimport { ComponentProps } from \"../../types/components\";\n\nexport interface TSDocProps extends ComponentProps {\n heading?: Children;\n}\n\n/**\n * Generates a TypeScript interface for the given reflection class.\n */\nexport function TSDoc(props: TSDocProps) {\n const [{ children, heading }] = splitProps(props, [\"children\", \"heading\"]);\n\n return (\n <>\n /**\n <align string=\" * \">\n <hbr />\n <Show when={!isUndefined(heading)}>{heading}</Show>\n <Show\n when={\n !isUndefined(children) &&\n childrenArray(() => children).filter(Boolean).length > 0\n }>\n <Show when={!isUndefined(heading)}>\n <Spacing />\n </Show>\n <List hardline={false} softline={true}>\n {childrenArray(() => children)}\n </List>\n </Show>\n </align>\n <hbr />\n {`*/`}\n <hbr />\n </>\n );\n}\n\nexport interface TSDocTagProps extends ComponentProps {\n tag: string;\n}\n\n/**\n * Create a TSDoc `@<props.tag>` tag.\n */\nexport function TSDocTag(props: TSDocTagProps) {\n const [{ children, tag }] = splitProps(props, [\"children\", \"tag\"]);\n\n return (\n <>\n {`@${tag} `}\n <Show when={Boolean(children)}>\n <align width={2}>\n <Prose>{children}</Prose>\n </align>\n </Show>\n <sbr />\n </>\n );\n}\n\nexport interface TSDocParamsProps {\n parameters: ParameterDescriptor[] | string[];\n}\n\n/**\n * A component that creates a TSDoc block with `@param` tags for each parameter.\n */\nexport function TSDocParams(props: TSDocParamsProps) {\n const parameters = normalizeParametersForDoc(props.parameters);\n\n return (\n <For each={parameters}>\n {param => (\n <TSDocParam name={param.name} optional={param.optional}>\n {param.doc}\n </TSDocParam>\n )}\n </For>\n );\n}\n\nfunction normalizeParametersForDoc(\n parameters: ParameterDescriptor[] | string[]\n): ParameterDescriptor[] {\n if (parameters.some(p => typeof p === \"string\")) {\n return [];\n }\n\n return parameters as ParameterDescriptor[];\n}\n\n/**\n * Create a TSDoc `@title` tag.\n */\nexport function TSDocTitle(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"title\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@domain` tag.\n */\nexport function TSDocDomain(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"domain\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@alias` tag.\n */\nexport function TSDocAlias(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"alias\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@permission` tag.\n */\nexport function TSDocPermission(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"permission\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@group` tag.\n */\nexport function TSDocGroup(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"group\">\n {children}\n </TSDocTag>\n );\n}\n\nexport interface TSDocDefaultValueProps extends ComponentProps {\n type?: JsonSchemaPrimitiveType;\n defaultValue: any;\n}\n\n/**\n * Create a TSDoc `@defaultValue` tag.\n */\nexport function TSDocDefaultValue(props: TSDocDefaultValueProps) {\n const [{ type, defaultValue }] = splitProps(props, [\"type\", \"defaultValue\"]);\n\n return (\n <>\n {\"@defaultValue \"}\n <Show when={!isUndefined(defaultValue)}>\n <align width={2}>\n <Prose>{stringifyValue(defaultValue, type)}</Prose>\n </align>\n </Show>\n </>\n );\n}\n\n/**\n * Create a TSDoc `@remarks` tag.\n */\nexport function TSDocRemarks(props: ComponentProps) {\n return (\n <>\n {\"@remarks \"}\n <hbr />\n <List hardline={false} softline={true}>\n {childrenArray(() => props.children)}\n </List>\n </>\n );\n}\n\n/**\n * Create a TSDoc `@see` tag.\n */\nexport function TSDocLink(props: ComponentProps) {\n return <TSDocTag {...props} tag=\"see\" />;\n}\n\nexport interface TSDocExampleProps extends JSDocExampleProps {\n /**\n * Whether the file is a TSX file.\n *\n * @defaultValue false\n */\n tsx?: boolean;\n}\n\n/**\n * Create a TSDoc `@example` tag.\n */\nexport function TSDocExample(props: TSDocExampleProps) {\n const [{ tsx, fenced = true, language, children }] = splitProps(props, [\n \"tsx\",\n \"fenced\",\n \"language\",\n \"children\"\n ]);\n\n return (\n <>\n {\"@example \"}\n <hbr />\n <Show when={fenced}>\n ```{language || (tsx ? \"tsx\" : \"ts\")}\n <hbr />\n </Show>\n {children}\n <Show when={fenced}>\n <hbr />\n ```\n </Show>\n </>\n );\n}\n\n/**\n * Create a TSDoc `@readonly` tag.\n */\nexport function TSDocReadonly() {\n return <TSDocTag tag=\"readonly\" />;\n}\n\n/**\n * Create a TSDoc `@internal` tag.\n */\nexport function TSDocInternal() {\n return <TSDocTag tag=\"internal\" />;\n}\n\n/**\n * Create a TSDoc `@ignore` tag.\n */\nexport function TSDocIgnore() {\n return <TSDocTag tag=\"ignore\" />;\n}\n\n/**\n * Create a TSDoc `@hidden` tag.\n */\nexport function TSDocHidden() {\n return <TSDocTag tag=\"hidden\" />;\n}\n\n/**\n * Create a TSDoc `@runtime` tag.\n */\nexport function TSDocRuntime() {\n return <TSDocTag tag=\"runtime\" />;\n}\n\nexport interface TSDocAttributesTagsProps {\n type?: JsonSchemaPrimitiveType;\n default?: any;\n title?: string;\n alias?: string[];\n tags?: string[];\n resourceId?: string;\n readOnly?: boolean;\n internal?: boolean;\n ignore?: boolean;\n hidden?: boolean;\n runtime?: boolean;\n}\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function TSDocAttributesTags(props: TSDocAttributesTagsProps) {\n const [\n {\n type,\n alias,\n tags,\n readOnly,\n internal,\n ignore,\n hidden,\n runtime,\n default: defaultValue\n }\n ] = splitProps(props, [\n \"type\",\n \"alias\",\n \"tags\",\n \"readOnly\",\n \"internal\",\n \"ignore\",\n \"hidden\",\n \"runtime\",\n \"default\"\n ]);\n\n const title = computed(() => props.title?.trim() || \"\");\n const domain = computed(() => props.resourceId?.trim() || \"\");\n\n return (\n <>\n <Show when={isSetString(title.value)}>\n <TSDocTitle>{title.value}</TSDocTitle>\n </Show>\n <Show\n when={\n !isUndefined(alias) &&\n alias.length > 0 &&\n alias.some(a => isSetString(a?.trim()))\n }>\n <For each={alias?.filter(a => isSetString(a?.trim())) ?? []}>\n {alias => <TSDocAlias>{alias}</TSDocAlias>}\n </For>\n </Show>\n <Show when={isSetString(domain.value)}>\n <TSDocDomain>{domain.value}</TSDocDomain>\n </Show>\n <Show\n when={\n !isUndefined(tags) &&\n tags.length > 0 &&\n tags.some(g => isSetString(g?.trim()))\n }>\n <For each={tags?.filter(g => isSetString(g?.trim())) ?? []}>\n {tag => <TSDocGroup>{tag}</TSDocGroup>}\n </For>\n </Show>\n <Show when={readOnly === true}>\n <TSDocReadonly />\n </Show>\n <Show when={internal === true}>\n <TSDocInternal />\n </Show>\n <Show when={ignore === true}>\n <TSDocIgnore />\n </Show>\n <Show when={hidden === true}>\n <TSDocHidden />\n </Show>\n <Show when={runtime === true}>\n <TSDocRuntime />\n </Show>\n <Show\n when={\n runtime !== true && !isUndefined(type) && !isUndefined(defaultValue)\n }>\n <TSDocDefaultValue type={type} defaultValue={defaultValue} />\n </Show>\n </>\n );\n}\n\nexport interface TSDocParamProps {\n name: Children;\n children?: Children;\n optional?: boolean;\n default?: Children;\n}\n\n/**\n * Create a TSDoc parameter set off with `@param`.\n */\nexport function TSDocParam(props: TSDocParamProps) {\n return (\n <>\n {\"@param \"}\n <TSDocParamName\n name={props.name}\n optional={props.optional}\n default={props.default}\n />\n <TSDocParamDescription children={props.children} />\n </>\n );\n}\n\ninterface TSDocParamNameProps {\n name: Children;\n optional?: boolean;\n default?: Children;\n}\n\nfunction TSDocParamName(props: TSDocParamNameProps) {\n return (\n <>\n <Show when={props.optional}>{\"[\"}</Show>\n {props.name}\n <Show when={Boolean(props.default)}>={props.default}</Show>\n <Show when={props.optional}>{\"]\"}</Show>\n </>\n );\n}\n\ninterface TSDocParamDescriptionProps {\n children?: Children;\n}\n\nfunction TSDocParamDescription(props: TSDocParamDescriptionProps) {\n return (\n <Show when={Boolean(props.children)}>\n {\" - \"}\n <align width={2}>\n <Prose>{props.children}</Prose>\n </align>\n </Show>\n );\n}\n\n/**\n * Create a TSDoc `@returns` tag.\n */\nexport function TSDocReturns(props: ComponentProps) {\n return <TSDocTag {...props} tag=\"returns\" />;\n}\n\n/**\n * Create a TSDoc `@throws` tag.\n */\nexport function TSDocThrows(props: ComponentProps) {\n return <TSDocTag {...props} tag=\"throws\" />;\n}\n\nexport interface TSDocModuleProps extends ComponentProps {\n /**\n * The prefix for the builtin module name\n *\n * @remarks\n * This value is populated from the Powerlines configuration output builtin prefix by default.\n *\n * @example\n * ```ts\n * /**\n * @module powerlines:my-module\n * \\/\n * ```\n */\n prefix?: string;\n\n /**\n * The name of the module\n *\n * @remarks\n * This will be used in the `@module` tag as well as the import path for the module, e.g. `storm:<name>`.\n *\n * @example\n * ```ts\n * import { MyModule } from \"powerlines:my-module\";\n * ```\n */\n name: Children;\n}\n\n/**\n * Generates a TSDoc `@module` tag for the given module name.\n */\nexport function TSDocModule(props: TSDocModuleProps) {\n const [{ children, name, prefix }] = splitProps(props, [\n \"children\",\n \"name\",\n \"prefix\"\n ]);\n\n const context = usePowerlinesSafe();\n\n return (\n <>\n /**\n <align string=\" * \">\n <hbr />\n <Show when={Boolean(children)}>\n <List hardline={false} softline={true}>\n {childrenArray(() => children)}\n </List>\n <Spacing />\n </Show>\n {\"@module \"}\n {prefix || context?.config?.framework?.name || \"powerlines\"}:{name}\n </align>\n <hbr />\n {` */`}\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;;AA+BA,SAAS,MAAA,OAAA;CACT,MAAQ,CAAC,EACT,UACA,aACO,WAAE,OAAA,CAAiB,YAAY,SAAQ,CAAA;CAC9C,OAAS;EAAA;EAAA,gBAA0B,SAAS;;GAE5C,IAAO,WAAU;IACf,OAAU;KAAA,gBAAQ,OAAA,CAAA,CAAA;KAAA,gBAAA,MAAA;MACpB,IAAA,OAAA;;MAEE;MACC,UAAY;KACb,CAAA;KAAA,gBAAA,MAAA;MACK,IAAA,OAAS;OACN,OAAC,WAAmB,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC,EAAA,KAAA,oBAAsB,QAAA,EAAA,OAAA,OAAA,EAAA,SAAA;;MAEpE,IAAC,WAAA;OACJ,OAAA,CAAA,gBAAA,MAAA;QACG,IAAA,OAAA;SACK,OAAQ,CAAC,YAAG,OAAA;QACb;QACH,IAAK,WAAO;SACZ,OAAA,gBAAA,SAAA,CAAA,CAAA;QACC;OACA,CAAC,GAAE,gBAAY,MAAW;QACxB,UAAA;QACD,UAAA;QACA,IAAK,WAAO;SACV,OAAQ,oBAAC,QAAA;QACV;OACF,CAAC,CAAA;MACH;KACF,CAAC;IAAC;GACJ;EACF,CAAC;EAAG,gBAAO,OAAA,CAAA,CAAA;EAAA;EAAA,gBAAA,OAAA,CAAA,CAAA;CAAA;AACb;;;;AAIA,SAAG,SAAA,OAAA;CACH,MAAA,CAAA,YAEA,SACO,WAAM,OAAA,CAAA,YAAA,KAAA,CAAA;CACb,OAAA;EAAA,IAAA,IAAA;EAAA,gBAAA,MAAA;;IAEE,OAAA,QAAA,QAAA;GACC;GACD,IAAA,WAAA;IACI,OAAC,gBAAwB,SAAC;KACxB,OAAG;;MAEF,OAAA,gBAAA,OAAA,EACJ,SACK,CAAC;KACJ;IACD,CAAC;GACH;EACF,CAAC;EAAG,gBAAS,OAAA,CAAA,CAAA;CAAA;AACf;;;;AAIA,SAAA,YAAA,OAAA;CAEA,OAAO,gBAAU,KAAA;EACf,gDAAY;EACd,WAAA,UAAA,gBAAA,YAAA;;IAEE,OAAA,MAAA;GACG;GACH,IAAA,WAAA;IACK,OAAQ,MAAC;GACd;;IAEM,OAAC,MAAA;GACJ;EACD,CAAC;CACH,CAAC;AACH;AACA,SAAS,0BAAW,YAAA;CAClB,IAAI,WAAC,MAAA,MAAA,OAAA,MAAA,QAAA,GACH,OAAK,CAAA;CAET,OAAA;;;;;AAMA,SAAa,WAAA,OAAA;CACX,MAAA,CAAA,cAEA,QAAO,WAAc,OAAA,CAAA,UAAmB,CAAC;CAC3C,OAAA,gBAAA,UAAA,WAAA,MAAA;;EAEE;CACA,CAAC,CAAA;AACH;;;;AAKA,SAAgB,YAAY,OAAO;CACjC,MAAK,CAAA,EACH,YACD,QAAA,WAAA,OAAA,CAAA,UAAA,CAAA;CACH,OAAA,gBAAA,UAAA,WAAA,MAAA;;EAEE;CACA,CAAC,CAAA;AACH;;;;AAKA,SAAgB,WAAW,OAAE;CAC3B,MAAK,CAAA,EACH,YACD,QAAA,WAAA,OAAA,CAAA,UAAA,CAAA;CACH,OAAA,gBAAA,UAAA,WAAA,MAAA;;EAEE;CACA,CAAC,CAAA;AACH;;;;AAKA,SAAgB,gBAAa,OAAM;CACjC,MAAK,CAAA,EACH,YACD,QAAA,WAAA,OAAA,CAAA,UAAA,CAAA;CACH,OAAA,gBAAA,UAAA,WAAA,MAAA;;EAEE;CACA,CAAC,CAAA;AACH;;;;AAKA,SAAgB,WAAW,OAAE;CAC3B,MAAK,CAAA,EACH,YACD,QAAA,WAAA,OAAA,CAAA,UAAA,CAAA;CACH,OAAA,gBAAA,UAAA,WAAA,MAAA;;EAEE;CACA,CAAC,CAAA;AACH;;;;AAIA,SAAS,kBAAA,OAAA;CACP,MAAG,CAAA,EACD,MACA,kBACD,WAAA,OAAA,CAAA,QAAA,cAAA,CAAA;CACH,OAAA,CAAA,kBAAA,gBAAA,MAAA;;GAEM,OAAC,CAAA,YAAU,YAAA;EACf;EACA,IAAA,WAAiB;GACnB,OAAA,gBAAA,SAAA;;IAEE,IAAA,WAAA;KACQ,OAAO,gBAAiB,OAAG,EACnC,IAAA,WAAA;MACK,OAAS,eAAkB,cAAO,IAAA;KAC9B;IAEH;GACH,CAAA;EACD;CACF,CAAC,CAAC;AACJ;;;;AAKA,SAAG,aAAA,OAAA;CACH,OAAA;EAAA;EAAA,gBAAA,OAAA,CAAA,CAAA;EAAA,gBAAA,MAAA;;GAEE,UAAA;GACC,IAAA,WAAgB;IACjB,OAAA,oBAAA,MAAA,QAAA;GACF;EACE,CAAA;CAAA;AACF;;;;AAKA,SAAY,UAAA,OAAA;CACV,OAAI,gBAAA,UAAA,WAAA,OAAA,EACH,KAAA,MACH,CAAA,CAAA;;;;;AAKA,SAAgB,aAAU,OAAO;CAC/B,MAAM,CAAC,EACT,oBAEA,UACI,cACC,WAAY,OAAQ;EAAC;EAAK;EAAI;EAAA;CAAA,CAAA;CACjC,OAAC;EAAA;EAAA,gBAAA,OAAA,CAAA,CAAA;EAAA,gBAAA,MAAA;GACC,MAAE;GACF,IAAA,WAAA;IACE,OAAE;KAAA;KAAO,aAAA,MAAA,QAAA;KAAA,gBAAA,OAAA,CAAA,CAAA;IAAA;GACf;;;;GAEE,MAAA;GACC,IAAA,WAAgB;IACjB,OAAA,CAAA,gBAAA,OAAA,CAAA,CAAA,GAAA,KAAA;GACF;EACE,CAAA;CAAA;AACF;;;;;CAME,OAAO,gBAAA,UAAA,EACL,KAAC,WACH,CAAC;AACH;;;;AAKA,SAAe,gBAAA;CACb,OAAK,gBAAkB,UAAA,EACrB,KAAK,WACP,CAAC;AACH;;;;AAKA,SAAE,cAAA;CACA,OAAO,gBAAW,UAAa,EAC/B,KAAA,SACF,CAAA;AACA;;;;AAKA,SAAE,cAAA;CACF,OAAO,gBAAS,UAAgB,EAC9B,KAAO,SACT,CAAA;;;;;AAMA,SAAU,eAAqB;CAC/B,OAAA,gBAAA,UAAA,iBAEE,CAAA;AACF;;;;AAIA,SAAA,oBAAA,OAAA;UAEE,MACC,OACD,MACF,UACE,UACF,gBAEA,SACE,SAAO,kBACP,WAAa,OAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;CAAA,CAAA;CACb,MAAM,QAAQ,eAAA,MAAA,OAAA,KAAA,KAAA,EAAA;CACd,MAAM,SAAS,eAAC,MAAA,YAAA,KAAA,KAAA,EAAA;CAChB,OAAO;EAAA,gBAAQ,MAAA;GACf,IAAA,OAAa;IACb,OAAW,YAAO,MAAA,KAAA;GAClB;GACA,IAAM,WAAU;IAChB,OAAS,gBAAO,YAAA,EAChB,IAAU,WAAO;KACnB,OAAA,MAAA;MAEE,CAAA;GACC;EACD,CAAA;EAAA,gBAAA,MAAA;GACF,IAAO,OAAQ;IACb,OAAM,WAAA,CAAA,EAAA,CAAA,YAAA,KAAA,KAAA,MAAA,SAAA,EAAA,EAAA,KAAA,MAAA,MAAA,MAAA,YAAA,GAAA,KAAA,CAAA,CAAA;GACJ;GACA,IAAE,WAAI;IACJ,OAAK,gBAAA,KAAA;KACL,IAAI,OAAA;MACJ,OAAQ,OAAA,QAAA,MAAA,YAAA,GAAA,KAAA,CAAA,CAAA,KAAA,CAAA;KACR;KACA,WAAM,UAAA,gBAAA,YAAA,EACN,UAAM,MACN,CAAA;IACA,CAAA;GACF;EACF,CAAC;EAAG,gBAAkB,MAAA;GACpB,IAAC,OAAK;IACL,OAAM,YAAA,OAAA,KAAA;GACP;GACA,IAAC,WAAS;IACT,OAAQ,gBAAC,aAAA,EACT,IAAO,WAAA;KACP,OAAO,OAAA;IACP,EACA,CAAA;GACD;;;GAEF,IAAM,OAAO;IACb,OAAM,WAAkB,CAAC,EAAE,CAAC,YAAQ,IAAA,KAAY,KAAM,SAAO,EAAA,EAAA,KAAA,KAAA,MAAA,MAAA,YAAA,GAAA,KAAA,CAAA,CAAA;;GAE7D,IAAM,WAAC;IACJ,OAAA,gBAAA,KAAA;KACE,IAAK,OAAM;MACT,OAAA,MAAY,QAAM,MAAQ,YAAU,GAAA,KAAA,CAAA,CAAA,KAAA,CAAA;KACrC;KACD,WAAA,QAAA,gBAAA,YAAA,EACC,UAAK,IACL,CAAC;IACH,CAAC;GACH;EACF,CAAC;EAAG,gBAAG,MAAA;GACL,MAAK,aAAU;GACf,IAAI,WAAW;IACb,OAAO,gBAAA,eAAA,CAAA,CAAA;GACT;EACF,CAAC;EAAG,gBAAY,MAAY;GAC1B,MAAK,aAAa;GAClB,IAAI,WAAI;IACN,OAAC,gBAAA,eAAA,CAAA,CAAA;GACH;EACF,CAAC;EAAG,gBAAiB,MAAO;GAC1B,MAAM,WAAW;GACjB,IAAI,WAAW;IACb,OAAG,gBAAA,aAAA,CAAA,CAAA;GACL;EACF,CAAC;EAAG,gBAAa,MAAW;GAC1B,MAAM,WAAG;GACT,IAAI,WAAI;IACN,OAAM,gBAAmB,aAAK,CAAA,CAAA;GAChC;EACF,CAAC;EAAG,gBAAM,MAAA;GACR,MAAG,YAAW;GACd,IAAI,WAAC;IACH,OAAM,gBAAA,cAAA,CAAA,CAAA;GACR;EACF,CAAC;EAAG,gBAAgB,MAAA;GAClB,IAAI,OAAI;IACN,OAAM,WAAc,CAAC,EAAE,YAAK,QAAA,CAAA,YAAA,IAAA,EAAA,EAAA,KAAA,CAAA,YAAA,YAAA;GAC9B;GACA,IAAI,WAAI;IACN,OAAM,gBAAkB,mBAAK;KAC1B;KACG;IACN,CAAC;GACH;EACF,CAAC;CAAC;AACJ;;;;AAIA,SAAG,WAAA,OAAA;CACH,OAAA;EAAA;EAAA,gBAAA,gBAAA;;IAEM,OAAC,MAAU;GACf;GACA,IAAA,WAAW;IACX,OAAW,MAAA;GACX;GACF,KAAA,aAAA;;GAEE;EACA,CAAC;EAAA,gBAAe,uBAAyB,EACzC,IAAA,WAAA;GACI,OAAC,MAAS;EACd,EACA,CAAC;CAAC;AACJ;AACA,SAAO,eAAA,OAAA;CACL,OAAM;EAAA,gBAAgB,MAAA;GACpB,IAAI,OAAA;IACF,OAAE,MAAS;GACb;GACA,UAAG;EACL,CAAC;EAAG,WAAA,MAAA,IAAA;EAAA,gBAAA,MAAA;GACH,IAAA,OAAA;IACH,OAAA,QAAA,MAAA,OAAA;;GAEA,IAAA,WAAU;IACJ,OAAE,CAAA,KAAQ,WAAA,MAAA,OAAA,CAAA;GACd;EACA,CAAA;EAAA,gBAAkB,MAAA;GACpB,IAAA,OAAA;;GAEA;GACE,UAAO;EACP,CAAC;CAAC;AACJ;AACA,SAAO,sBAAU,OAAA;CACf,OAAK,gBAAmB,MAAM;EAC5B,IAAG,OAAK;GACN,OAAA,QAAA,MAAA,QAAA;EACH;EACH,IAAA,WAAA;;IAEA,OAAU;IACR,IAAU,WAAS;KACrB,OAAA,gBAAA,OAAA;MAES,OAAA,MAAA;KACA,EACC,CAAA;IACF;GACF,CAAC,CAAA;EACH;CACF,CAAC;AACH;;;;AAKA,SAAY,aAAiB,OAAG;CAC9B,OAAA,gBAAA,UAAA,WAAA,OAAA,EACF,KAAO,UACL,CAAA,CAAA;AACF;;;;AAKA,SAAgB,YAAY,OAAO;CACjC,OAAO,gBAAc,UAAY,WAAU,OAAA,EAC7C,KAAA;AAEA;;;;AAIA,SAAM,YAAA,OAAA;CACJ,MAAG,CAAI,EACN,UACC,MACA,YACG,WAAA,OAAA;EAAA;EAAA;EAAA;CAAA,CAAA;CACL,MAAK,UAAO,kBAAc;CAC1B,OAAK;EAAA;EAAA,gBAAA,SAAA;GACH,QAAG;GACH,IAAA,WAAA;IACF,OAAS;KAAA,gBAAM,OAAA,CAAA,CAAA;KAAA,gBAAA,MAAA;;OAEb,OAAA,QAAA,QAAA;MACI;MACL,IAAA,WAAA;OACG,OAAA,CAAA,gBAAA,MAAA;QACI,UAAY;QACnB,UAAA;QACG,IAAA,WAAA;SACE,OAAA,oBAAA,QAAA;QACI;OACL,CAAA,GAAA,gBAAA,SAAA,CAAA,CAAA,CAAA;MACH;KACE,CAAC;KAAC;KAAQ,WAAA,UAAA,SAAA,QAAA,WAAA,QAAA,YAAA;KAAA;KAAA;IAAA;GAChB;;;;;AAEA"}
1
+ {"version":3,"file":"tsdoc.mjs","names":[],"sources":["../../../src/typescript/components/tsdoc.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport {\n Children,\n childrenArray,\n computed,\n For,\n List,\n Prose,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport { JSDocExampleProps, ParameterDescriptor } from \"@alloy-js/typescript\";\nimport type { JsonSchemaPrimitiveType } from \"@powerlines/schema\";\nimport { stringifyValue } from \"@powerlines/schema\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport { Spacing } from \"../../core/components/spacing\";\nimport { usePowerlinesSafe } from \"../../core/contexts/context\";\nimport type { ComponentProps } from \"../../types/components\";\n\nexport interface TSDocProps extends ComponentProps {\n heading?: Children;\n}\n\n/**\n * Generates a TypeScript interface for the given reflection class.\n */\nexport function TSDoc(props: TSDocProps) {\n const [{ children, heading }] = splitProps(props, [\"children\", \"heading\"]);\n\n return (\n <>\n /**\n <align string=\" * \">\n <hbr />\n <Show when={!isUndefined(heading)}>{heading}</Show>\n <Show\n when={\n !isUndefined(children) &&\n childrenArray(() => children).filter(Boolean).length > 0\n }>\n <Show when={!isUndefined(heading)}>\n <Spacing />\n </Show>\n <List hardline={false} softline={true}>\n {childrenArray(() => children)}\n </List>\n </Show>\n </align>\n <hbr />\n {`*/`}\n <hbr />\n </>\n );\n}\n\nexport interface TSDocTagProps extends ComponentProps {\n tag: string;\n}\n\n/**\n * Create a TSDoc `@<props.tag>` tag.\n */\nexport function TSDocTag(props: TSDocTagProps) {\n const [{ children, tag }] = splitProps(props, [\"children\", \"tag\"]);\n\n return (\n <>\n {`@${tag} `}\n <Show when={Boolean(children)}>\n <align width={2}>\n <Prose>{children}</Prose>\n </align>\n </Show>\n <sbr />\n </>\n );\n}\n\nexport interface TSDocParamsProps {\n parameters: ParameterDescriptor[] | string[];\n}\n\n/**\n * A component that creates a TSDoc block with `@param` tags for each parameter.\n */\nexport function TSDocParams(props: TSDocParamsProps) {\n const parameters = normalizeParametersForDoc(props.parameters);\n\n return (\n <For each={parameters}>\n {param => (\n <TSDocParam name={param.name} optional={param.optional}>\n {param.doc}\n </TSDocParam>\n )}\n </For>\n );\n}\n\nfunction normalizeParametersForDoc(\n parameters: ParameterDescriptor[] | string[]\n): ParameterDescriptor[] {\n if (parameters.some(p => typeof p === \"string\")) {\n return [];\n }\n\n return parameters as ParameterDescriptor[];\n}\n\n/**\n * Create a TSDoc `@title` tag.\n */\nexport function TSDocTitle(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"title\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@domain` tag.\n */\nexport function TSDocDomain(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"domain\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@alias` tag.\n */\nexport function TSDocAlias(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"alias\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@permission` tag.\n */\nexport function TSDocPermission(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"permission\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@group` tag.\n */\nexport function TSDocGroup(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"group\">\n {children}\n </TSDocTag>\n );\n}\n\nexport interface TSDocDefaultValueProps extends ComponentProps {\n type?: JsonSchemaPrimitiveType | string;\n defaultValue: any;\n}\n\n/**\n * Create a TSDoc `@defaultValue` tag.\n */\nexport function TSDocDefaultValue(props: TSDocDefaultValueProps) {\n const [{ type, defaultValue }] = splitProps(props, [\"type\", \"defaultValue\"]);\n\n return (\n <>\n {\"@defaultValue \"}\n <Show when={!isUndefined(defaultValue)}>\n <align width={2}>\n <Prose>{stringifyValue(defaultValue, type)}</Prose>\n </align>\n </Show>\n </>\n );\n}\n\n/**\n * Create a TSDoc `@remarks` tag.\n */\nexport function TSDocRemarks(props: ComponentProps) {\n return (\n <>\n {\"@remarks \"}\n <hbr />\n <List hardline={false} softline={true}>\n {childrenArray(() => props.children)}\n </List>\n </>\n );\n}\n\n/**\n * Create a TSDoc `@see` tag.\n */\nexport function TSDocLink(props: ComponentProps) {\n return <TSDocTag {...props} tag=\"see\" />;\n}\n\nexport interface TSDocExampleProps extends JSDocExampleProps {\n /**\n * Whether the file is a TSX file.\n *\n * @defaultValue false\n */\n tsx?: boolean;\n}\n\n/**\n * Create a TSDoc `@example` tag.\n */\nexport function TSDocExample(props: TSDocExampleProps) {\n const [{ tsx, fenced = true, language, children }] = splitProps(props, [\n \"tsx\",\n \"fenced\",\n \"language\",\n \"children\"\n ]);\n\n return (\n <>\n {\"@example \"}\n <hbr />\n <Show when={fenced}>\n ```{language || (tsx ? \"tsx\" : \"ts\")}\n <hbr />\n </Show>\n {children}\n <Show when={fenced}>\n <hbr />\n ```\n </Show>\n </>\n );\n}\n\n/**\n * Create a TSDoc `@readonly` tag.\n */\nexport function TSDocReadonly() {\n return <TSDocTag tag=\"readonly\" />;\n}\n\n/**\n * Create a TSDoc `@internal` tag.\n */\nexport function TSDocInternal() {\n return <TSDocTag tag=\"internal\" />;\n}\n\n/**\n * Create a TSDoc `@ignore` tag.\n */\nexport function TSDocIgnore() {\n return <TSDocTag tag=\"ignore\" />;\n}\n\n/**\n * Create a TSDoc `@hidden` tag.\n */\nexport function TSDocHidden() {\n return <TSDocTag tag=\"hidden\" />;\n}\n\n/**\n * Create a TSDoc `@runtime` tag.\n */\nexport function TSDocRuntime() {\n return <TSDocTag tag=\"runtime\" />;\n}\n\nexport interface TSDocAttributesTagsProps {\n type?: JsonSchemaPrimitiveType | string;\n default?: any;\n title?: string;\n alias?: string[];\n tags?: string[];\n resourceId?: string;\n readOnly?: boolean;\n internal?: boolean;\n ignore?: boolean;\n hidden?: boolean;\n runtime?: boolean;\n}\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function TSDocAttributesTags(props: TSDocAttributesTagsProps) {\n const [\n {\n type,\n alias,\n tags,\n readOnly,\n internal,\n ignore,\n hidden,\n runtime,\n default: defaultValue\n }\n ] = splitProps(props, [\n \"type\",\n \"alias\",\n \"tags\",\n \"readOnly\",\n \"internal\",\n \"ignore\",\n \"hidden\",\n \"runtime\",\n \"default\"\n ]);\n\n const title = computed(() => props.title?.trim() || \"\");\n const domain = computed(() => props.resourceId?.trim() || \"\");\n\n return (\n <>\n <Show when={isSetString(title.value)}>\n <TSDocTitle>{title.value}</TSDocTitle>\n </Show>\n <Show\n when={\n !isUndefined(alias) &&\n alias.length > 0 &&\n alias.some(a => isSetString(a?.trim()))\n }>\n <For each={alias?.filter(a => isSetString(a?.trim())) ?? []}>\n {alias => <TSDocAlias>{alias}</TSDocAlias>}\n </For>\n </Show>\n <Show when={isSetString(domain.value)}>\n <TSDocDomain>{domain.value}</TSDocDomain>\n </Show>\n <Show\n when={\n !isUndefined(tags) &&\n tags.length > 0 &&\n tags.some(g => isSetString(g?.trim()))\n }>\n <For each={tags?.filter(g => isSetString(g?.trim())) ?? []}>\n {tag => <TSDocGroup>{tag}</TSDocGroup>}\n </For>\n </Show>\n <Show when={readOnly === true}>\n <TSDocReadonly />\n </Show>\n <Show when={internal === true}>\n <TSDocInternal />\n </Show>\n <Show when={ignore === true}>\n <TSDocIgnore />\n </Show>\n <Show when={hidden === true}>\n <TSDocHidden />\n </Show>\n <Show when={runtime === true}>\n <TSDocRuntime />\n </Show>\n <Show\n when={\n runtime !== true && !isUndefined(type) && !isUndefined(defaultValue)\n }>\n <TSDocDefaultValue type={type} defaultValue={defaultValue} />\n </Show>\n </>\n );\n}\n\nexport interface TSDocParamProps {\n name: Children;\n children?: Children;\n optional?: boolean;\n default?: Children;\n}\n\n/**\n * Create a TSDoc parameter set off with `@param`.\n */\nexport function TSDocParam(props: TSDocParamProps) {\n return (\n <>\n {\"@param \"}\n <TSDocParamName\n name={props.name}\n optional={props.optional}\n default={props.default}\n />\n <TSDocParamDescription children={props.children} />\n </>\n );\n}\n\ninterface TSDocParamNameProps {\n name: Children;\n optional?: boolean;\n default?: Children;\n}\n\nfunction TSDocParamName(props: TSDocParamNameProps) {\n return (\n <>\n <Show when={props.optional}>{\"[\"}</Show>\n {props.name}\n <Show when={Boolean(props.default)}>={props.default}</Show>\n <Show when={props.optional}>{\"]\"}</Show>\n </>\n );\n}\n\ninterface TSDocParamDescriptionProps {\n children?: Children;\n}\n\nfunction TSDocParamDescription(props: TSDocParamDescriptionProps) {\n return (\n <Show when={Boolean(props.children)}>\n {\" - \"}\n <align width={2}>\n <Prose>{props.children}</Prose>\n </align>\n </Show>\n );\n}\n\n/**\n * Create a TSDoc `@returns` tag.\n */\nexport function TSDocReturns(props: ComponentProps) {\n return <TSDocTag {...props} tag=\"returns\" />;\n}\n\n/**\n * Create a TSDoc `@throws` tag.\n */\nexport function TSDocThrows(props: ComponentProps) {\n return <TSDocTag {...props} tag=\"throws\" />;\n}\n\nexport interface TSDocModuleProps extends ComponentProps {\n /**\n * The prefix for the builtin module name\n *\n * @remarks\n * This value is populated from the Powerlines configuration output builtin prefix by default.\n *\n * @example\n * ```ts\n * /**\n * @module powerlines:my-module\n * \\/\n * ```\n */\n prefix?: string;\n\n /**\n * The name of the module\n *\n * @remarks\n * This will be used in the `@module` tag as well as the import path for the module, e.g. `storm:<name>`.\n *\n * @example\n * ```ts\n * import { MyModule } from \"powerlines:my-module\";\n * ```\n */\n name: Children;\n}\n\n/**\n * Generates a TSDoc `@module` tag for the given module name.\n */\nexport function TSDocModule(props: TSDocModuleProps) {\n const [{ children, name, prefix }] = splitProps(props, [\n \"children\",\n \"name\",\n \"prefix\"\n ]);\n\n const context = usePowerlinesSafe();\n\n return (\n <>\n /**\n <align string=\" * \">\n <hbr />\n <Show when={Boolean(children)}>\n <List hardline={false} softline={true}>\n {childrenArray(() => children)}\n </List>\n <Spacing />\n </Show>\n {\"@module \"}\n {prefix || context?.config?.framework?.name || \"powerlines\"}:{name}\n </align>\n <hbr />\n {` */`}\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;;AA6BA,SAAc,MAAA,OAAA;CACd,MAAQ,CAAC,EACT,UACA,aACO,WAAW,OAAO,CAAC,YAAU,SAAW,CAAA;CAC/C,OAAS;EAAA;EAAA,gBAA0B,SAAM;GACzC,QAAY;;IAEN,OAAC;KAAA,gBAAqB,OAAQ,CAAA,CAAA;KAAA,gBAAe,MAAA;MACjD,IAAU,OAAA;OACZ,OAAA,CAAA,YAAA,OAAA;;MAEE,UAAA;KACC,CAAA;KAAA,gBAAuB,MAAA;MACxB,IAAA,OAAA;OACK,OAAS,WAAa,CAAA,CAAA,CAAA,YAAY,QAAA,CAAA,EAAA,KAAA,oBAAA,QAAA,EAAA,OAAA,OAAA,EAAA,SAAA;MACjC;;OAEC,OAAA,CAAA,gBAAA,MAAA;QACJ,IAAA,OAAA;SACG,OAAA,CAAA,YAAA,OAAA;QACI;QACA,IAAE,WAAA;SACA,OAAO,gBAAY,SAAW,CAAA,CAAA;QACnC;OACC,CAAA,GAAI,gBAAC,MAAA;QACH,UAAC;QACD,UAAA;QACD,IAAA,WAAA;SACA,OAAU,oBAAc,QAAS;QAChC;OACF,CAAC,CAAC;MACJ;KACF,CAAC;IAAC;GACJ;EACF,CAAC;EAAG,gBAAQ,OAAA,CAAA,CAAA;EAAA;EAAA,gBAAA,OAAA,CAAA,CAAA;CAAA;AACd;;;;AAIA,SAAM,SAAA,OAAA;CACJ,MAAC,CAAA,EACH,mBAEO,WAAU,OAAA,CAAA,YAAqB,KAAC,CAAA;CACrC,OAAK;EAAA,IAAM,IAAA;EAAA,gBAAA,MAAA;GACb,IAAA,OAAA;;GAEE;GACC,IAAA,WAAgB;IACjB,OAAA,gBAAA,SAAA;KACK,OAAQ;KACP,IAAG,WAAU;sCAEZ,SACJ,CAAA;KACG;IACF,CAAC;GACH;EACF,CAAC;EAAG,gBAAY,OAAW,CAAA,CAAA;CAAK;AAClC;;;;AAIA,SAAG,YAAA,OAAA;;EAGH,MAFA,0BAAA,MAAA,UAEiB;EACf,WAAY,UAAA,gBAAwB,YAAQ;GAC9C,IAAA,OAAA;;GAEE;GACG,IAAA,WAAe;IAClB,OAAA,MAAA;GACI;GACJ,IAAM,WAAa;;GAEnB;EACE,CAAC;CACH,CAAC;AACH;AACA,SAAS,0BAAW,YAAA;CAClB,IAAI,WAAI,MAAU,MAAA,OAAA,MAAA,QAAA,GAChB,OAAG,CAAA;CAEL,OAAC;AACH;;;;AAKA,SAAgB,WAAW,OAAO;CAChC,MAAE,CAAA,EACF;CAEA,OAAO,gBAAc,UAAA,WAAqB,MAAA;EAC5C,KAAA;;CAEE,CAAA,CAAA;AACF;;;;AAKA,SAAS,YAAA,OAAA;CACP,MAAG,CAAA,EACD,YACC,QAAC,WAAQ,OAAA,CAAA,UAAA,CAAA;CACZ,OAAC,gBAAA,UAAA,WAAA,MAAA;EACH,KAAA;;CAEE,CAAA,CAAA;AACF;;;;AAKA,SAAS,WAAA,OAAA;CACP,MAAG,CAAA,EACD,YACC,QAAC,WAAQ,OAAA,CAAA,UAAA,CAAA;CACZ,OAAC,gBAAA,UAAA,WAAA,MAAA;EACH,KAAA;;CAEE,CAAA,CAAA;AACF;;;;AAKA,SAAS,gBAAA,OAAA;CACP,MAAG,CAAA,EACD,YACC,QAAC,WAAQ,OAAA,CAAA,UAAA,CAAA;CACZ,OAAC,gBAAA,UAAA,WAAA,MAAA;EACH,KAAA;;CAEE,CAAA,CAAA;AACF;;;;AAKA,SAAS,WAAA,OAAA;CACP,MAAG,CAAA,EACD,YACC,QAAC,WAAQ,OAAA,CAAA,UAAA,CAAA;CACZ,OAAC,gBAAA,UAAA,WAAA,MAAA;EACH,KAAA;;CAEE,CAAA,CAAA;AACF;;;;;CAKE,MAAM,CAAC,EACL,MACA,kBACE,WAAQ,OAAA,CAAA,QAAA,cAAA,CAAA;CACZ,OAAC,CAAA,kBAAA,gBAAA,MAAA;EACH,IAAA,OAAA;;EAEA;EACE,IAAM,WAAC;GACP,OAAA,gBAAiB,SAAA;IACnB,OAAA;;KAEE,OAAA,gBAAA,OAAA,EACU,IAAA,WAAQ;MAClB,OAAA,eAAA,cAAA,IAAA;KACK,EACG,CAAC;;GAET,CAAA;EACE;CACF,CAAC,CAAC;AACJ;;;;AAKA,SAAM,aAAA,OAAA;CACJ,OAAC;EAAA;EAAA,gBAAA,OAAA,CAAA,CAAA;EAAA,gBAAA,MAAA;GACH,UAAA;;GAEE,IAAA,WAAA;IACC,OAAS,oBAAoB,MAAA,QAAA;GAC9B;EACF,CAAA;CAAA;AACA;;;;AAKA,SAAS,UAAiB,OAAG;CAC3B,OAAM,gBAAI,UAAA,WAAA,OAAA,EACR,KAAE,MACJ,CAAC,CAAA;AACH;;;;AAIA,SAAE,aAAA,OAAA;CACF,MAAO,CAAA,EACL,KACF,SAAA,gBAEA,cACI,WAAA,OAAA;EAAA;EAAA;EAAA;EAAA;CAAA,CAAA;CACF,OAAG;EAAA;EAAiB,gBAAa,OAAA,CAAA,CAAA;EAAA,gBAAA,MAAA;GAChC,MAAA;GACC,IAAE,WAAa;IACf,OAAA;KAAA;KAAA,aAAA,MAAA,QAAA;KAAA,gBAAA,OAAA,CAAA,CAAA;IAAA;GACF;EACF,CAAA;EAAA;EAAA,gBAAA,MAAA;;GAEE,IAAA,WAAA;IACC,OAAS,CAAA,gBAAoB,OAAA,CAAA,CAAA,GAAA,KAAA;GAC9B;EACF,CAAA;CAAA;AACA;;;;AAKA,SAAI,gBAAA;oCAEF,KAAO,WACP,CAAC;AACH;;;;AAKA,SAAY,gBAAA;CACV,OAAK,gBAAQ,UAAA,EACX,KAAG,WACL,CAAC;AACH;;;;;CAME,OAAA,gBAAA,UAAA,EACC,KAAM,SACP,CAAA;AACF;;;;AAKA,SAAY,cAAkB;CAC5B,OAAA,gBAAA,UAAA,EACF,KAAO,SACL,CAAA;AACF;;;;AAKA,SAAgB,eAAc;CAC5B,OAAO,gBAAe,UAAU,EAClC,KAAA;AAEA;;;;AAIA,SAAU,oBAAwB,OAAA;CAClC,MAAA,CAAA,QAEE,OACC,MACD,UACF,UACE,QACF,iBAEA,SAAO,kBACA,WAAE,OAAA;EAAA;EAAyB;EAAO;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;CAAA,CAAA;CACvC,MAAA,QAAa,eAAA,MAAA,OAAA,KAAA,KAAA,EAAA;CACb,MAAM,SAAQ,eAAA,MAAA,YAAA,KAAA,KAAA,EAAA;CACd,OAAO;EAAC,gBAAQ,MAAA;GAChB,IAAM,OAAO;IACb,OAAW,YAAQ,MAAA,KAAA;GACnB;GACA,IAAA,WAAW;IACX,OAAS,gBAAO,YAAA,EACV,IAAG,WAAO;KACR,OAAE,MAAO;IACnB;GAEE;EACA,CAAC;EAAA,gBAAY,MAAW;GACxB,IAAA,OAAA;IACI,OAAC,WAAS,CAAA,EAAA,CAAA,YAA0B,KAAC,KAAA,MAAA,SAAwB,EAAE,EAAA,KAAA,MAAA,MAAA,MAAA,YAAA,GAAA,KAAA,CAAA,CAAA;GACnE;GACE,IAAA,WAAA;IACE,OAAI,gBAAA,KAAA;KACJ,IAAK,OAAA;MACD,OAAA,OAAA,QAAA,MAAA,YAAA,GAAA,KAAA,CAAA,CAAA,KAAA,CAAA;KACJ;KACA,WAAQ,UAAA,gBAAA,YAAA,EACR,UAAM,MACN,CAAA;IACA,CAAA;GACF;EACF,CAAC;EAAC,gBAAA,MAAA;GACA,IAAE,OAAA;IACD,OAAK,YAAA,OAAA,KAAA;GACN;GACA,IAAC,WAAK;IACL,OAAQ,gBAAC,aAAA,EACT,IAAA,WAAS;KACT,OAAO,OAAA;IACP,EACA,CAAA;GACD;EACF,CAAC;EAAC,gBAAA,MAAA;;IAEF,OAAW,WAAa,CAAC,EAAE,CAAC,YAAY,IAAE,KAAO,KAAK,SAAC,EAAA,EAAA,KAAA,KAAA,MAAA,MAAA,YAAA,GAAA,KAAA,CAAA,CAAA;GACvD;;IAEA,OAAO,gBAAA,KAAA;KACJ,IAAA,OAAA;MACE,OAAU,MAAC,QAAY,MAAK,YAAQ,GAAA,KAAA,CAAA,CAAA,KAAA,CAAA;KACnC;KACA,WAAI,QAAA,gBAAA,YAAA,EACL,UAAA,IACC,CAAA;IACF,CAAC;GACH;EACF,CAAC;EAAG,gBAAkB,MAAE;GACtB,MAAK,aAAA;GACL,IAAI,WAAW;IACb,OAAK,gBAAoB,eAAU,CAAA,CAAA;GACrC;EACF,CAAC;EAAG,gBAAM,MAAA;GACR,MAAG,aAAW;GACd,IAAI,WAAC;IACH,OAAM,gBAAA,eAAA,CAAA,CAAA;GACR;EACF,CAAC;EAAG,gBAAO,MAAA;GACT,MAAM,WAAC;GACP,IAAI,WAAO;IACT,OAAI,gBAAe,aAAmB,CAAC,CAAC;GAC1C;EACF,CAAC;EAAG,gBAAkB,MAAC;GACrB,MAAM,WAAS;GACf,IAAI,WAAK;IACP,OAAM,gBAAA,aAAA,CAAA,CAAA;GACR;EACF,CAAC;EAAG,gBAAkB,MAAA;GACpB,MAAI,YAAI;GACR,IAAG,WAAW;IACZ,OAAG,gBAAe,cAAA,CAAA,CAAA;GACpB;EACF,CAAC;EAAG,gBAAkB,MAAK;GACzB,IAAI,OAAC;IACH,OAAM,WAAA,CAAA,EAAA,YAAA,QAAA,CAAA,YAAA,IAAA,EAAA,EAAA,KAAA,CAAA,YAAA,YAAA;GACR;GACA,IAAI,WAAC;IACH,OAAM,gBAAA,mBAAA;KACA;KACU;IAChB,CAAC;GACH;EACF,CAAC;CAAC;AACJ;;;;AAIA,SAAM,WAAA,OAAA;CACJ,OAAC;EAAA;EAAA,gBAAA,gBAAA;GACH,IAAA,OAAA;;GAEA;GACE,IAAM,WAAQ;IACd,OAAW,MAAA;GACX;GACA,KAAO,aAAW;IACpB,OAAA,MAAA;;EAEE,CAAA;EAAA,gBAAA,uBAAA,EACC,IAAA,WAAe;GAChB,OAAA,MAAA;EACF,EACE,CAAA;CAAA;AACF;AACA,SAAS,eAAO,OAAA;CACd,OAAK;EAAA,gBAAA,MAAA;GACH,IAAI,OAAM;IACR,OAAE,MAAU;GACd;GACA,UAAG;EACL,CAAC;EAAG,WAAC,MAAA,IAAsB;EAAA,gBAAgB,MAAW;GACpD,IAAE,OAAA;IACH,OAAA,QAAA,MAAA,OAAA;GACH;;IAEA,OAAU,CAAA,KAAA,WAAoB,MAAA,OAAA,CAAA;GAC5B;EACA,CAAA;EAAA,gBAAkB,MAAA;GAClB,IAAA,OAAU;IACZ,OAAA,MAAA;;GAEA,UAAS;EACP,CAAA;CAAA;AACF;AACA,SAAO,sBAAiB,OAAc;CACpC,OAAK,gBAAU,MAAA;EACb,IAAG,OAAK;GACN,OAAM,QAAM,MAAM,QAAW;EAC/B;EACD,IAAA,WAAA;GACH,OAAA,CAAA,OAAA,gBAAA,SAAA;;IAEA,IAAU,WAAA;KACA,OAAG,gBAAQ,OAAA,EACrB,IAAA,WAAA;;KAES,EACA,CAAA;IACJ;GACC,CAAC,CAAC;EACJ;CACF,CAAC;AACH;;;;AAKA,SAAE,aAAA,OAAA;CACA,OAAO,gBAAkB,UAAK,WAAA,OAAA,EAC9B,KAAA,UACF,CAAA,CAAA;AACA;;;;AAKA,SAAE,YAAA,OAAA;CACF,OAAO,gBAAoB,UAAQ,WAAe,OAAC,EACjD,KAAO,SACT,CAAA,CAAA;;;;;AAKA,SAAG,YAAA,OAAA;CACD,MAAI,CAAA,EACF,UACD,MACC,YACG,WAAC,OAAA;EAAA;EAAA;EAAA;CAAA,CAAA;CACN,MAAK,UAAA,kBAAA;CACL,OAAK;EAAA;EAAO,gBAAc,SAAA;GACxB,QAAG;GACH,IAAG,WAAA;IACH,OAAA;KAAA,gBAAA,OAAA,CAAA,CAAA;KAAA,gBAAA,MAAA;MACI,IAAG,OAAM;;MAEb;MACI,IAAC,WAAY;OAClB,OAAA,CAAA,gBAAA,MAAA;QACG,UAAA;QACI,UAAY;QACnB,IAAA,WAAA;SACG,OAAA,oBAAA,QAAA;QACE;OACH,CAAM,GAAG,gBAAiB,SAAU,CAAC,CAAA,CAAE;MACrC;KACH,CAAA;KAAA;KAAA,WAAA,UAAA,SAAA,QAAA,WAAA,QAAA,YAAA;KAAA;KAAA;IAAA;GACF;EACF,CAAA;EAAA,gBAAA,OAAA,CAAA,CAAA;EAAA;CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerlines/plugin-alloy",
3
- "version": "0.26.146",
3
+ "version": "0.26.148",
4
4
  "description": "A package containing various Alloy framework components and helper utilities.",
5
5
  "keywords": ["alloy-js", "powerlines", "powerlines-plugin"],
6
6
  "homepage": "https://stormsoftware.com",
@@ -292,8 +292,8 @@
292
292
  "@alloy-js/json": "^0.23.0",
293
293
  "@alloy-js/markdown": "^0.23.0",
294
294
  "@alloy-js/typescript": "^0.23.0",
295
- "@powerlines/deepkit": "^0.9.36",
296
- "@powerlines/plugin-babel": "^0.13.56",
295
+ "@powerlines/deepkit": "^0.9.37",
296
+ "@powerlines/plugin-babel": "^0.13.57",
297
297
  "@storm-software/config-tools": "^1.190.27",
298
298
  "@stryke/capnp": "^0.12.102",
299
299
  "@stryke/convert": "^0.7.7",
@@ -306,13 +306,13 @@
306
306
  "@stryke/types": "^0.12.4",
307
307
  "@stryke/unique-id": "^0.3.87",
308
308
  "defu": "^6.1.7",
309
- "powerlines": "^0.47.60",
309
+ "powerlines": "^0.47.61",
310
310
  "prettier": "^3.8.3",
311
311
  "unctx": "^2.5.0"
312
312
  },
313
313
  "devDependencies": {
314
314
  "@babel/preset-typescript": "8.0.0-rc.5",
315
- "@powerlines/plugin-plugin": "^0.12.472",
315
+ "@powerlines/plugin-plugin": "^0.12.473",
316
316
  "@types/node": "^25.9.1"
317
317
  },
318
318
  "peerDependencies": {
@@ -324,5 +324,5 @@
324
324
  "@babel/preset-typescript": { "optional": false }
325
325
  },
326
326
  "publishConfig": { "access": "public" },
327
- "gitHead": "3b2fa8b99824b2931e215e3794ea4365b928034d"
327
+ "gitHead": "948380fe6f860d640b34db60e02d62f0d164b58a"
328
328
  }