@powerlines/plugin-date 0.12.60 → 0.12.61
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/README.md +5 -1
- package/dist/index.d.cts +1 -2
- package/dist/index.d.mts +1 -2
- package/dist/index.mjs +1 -2
- package/dist/plugin-hV5_FRg3.d.cts +1 -2
- package/dist/plugin-pf21oD6W.d.mts +1 -2
- package/dist/runtime-B8LVkjWB.d.cts +1 -2
- package/dist/runtime-DPe0V01H.d.mts +1 -2
- package/package.json +6 -6
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.mts.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/plugin-hV5_FRg3.d.cts.map +0 -1
- package/dist/plugin-pf21oD6W.d.mts.map +0 -1
- package/dist/runtime-B8LVkjWB.d.cts.map +0 -1
- package/dist/runtime-DPe0V01H.d.mts.map +0 -1
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["isFunction","isSetObject","isSetString","isUndefined","SUPPORTED_COMMANDS","isPlugin","value","name","applyToEnvironment","dedupe","dependsOn","Array","isArray","every","isPluginConfig","command","handler","isPluginConfigObject","plugin","options","isPluginConfigTuple","length","isPluginHookFunction","isPluginHookObject","isPluginHook","getHookHandler","pluginHook","extractPluginHook","context","hook","undefined","normal","bind","order","isHookExternal","startsWith","isHookInternal","checkDedupe","plugins","some","p","addPluginHook","hooksList","map","push","createContext","useContext","PowerlinesContext","usePowerlinesContext","usePowerlines","powerlines","ref","value","computed","Output","OutputExternal","ref","Show","splitProps","replacePath","PowerlinesContext","props","children","context","basePath","rest","contextRef","basePathRef","value","workspaceConfig","workspaceRoot","_$createComponent","_$mergeProps","Provider","when","Boolean","flushJobsAsync","getContextForRenderNode","isPrintHook","renderTree","LogLevelLabel","isParentPath","replacePath","isSetString","getHookHandler","isPluginHook","isPluginHookFunction","isPluginHookObject","printer","Output","createAlloyPlugin","builder","options","result","prepare","_self$","enforce","order","Promise","resolve","call","render","tree","_$createComponent","context","basePath","workspaceConfig","workspaceRoot","children","writeTree","alloy","generateOutput","currentDirectory","root","Array","isArray","recurse","cwd","child","renderContext","meta","directory","kind","path","contents","push","sourceFile","Error","outputFile","builtin","id","log","TRACE","builtinsPath","filetype","preset","output","mode","printTree","entry","entryPath","typeDefinition","copyFile","sourcePath","undefined","writeOutput","sub","emitBuiltin","emitEntry","fs","existsSync","source","read","write","JSON","stringify","printWidth","tabWidth","useTabs","insertFinalNewLine","printDocToString","printTreeWorker","formatted","endsWith","doc","node","normalizedNode","split","flatMap","line","index","array","length","print","subtree","isFunction","isObject","isSetString","getPluginName","plugin","Array","isArray","length","$$name","name","undefined","isDuplicatePlugin","plugins","some","existing","filterPluginByFileId","context","fileId","code","id","fs","ids","addPluginFilter","pluginOrPlugins","filter","Error","foundIndex","findIndex","toLowerCase","LogLevelLabel","isFunction","chalk","getPluginName","resolvePluginFunction","context","plugin","Array","isArray","length","resolveBabelPlugin","code","id","log","TRACE","bold","cyanBright","undefined","_generate","parse","parseAst","code","opts","plugins","sourceType","allowImportExportEverywhere","allowAwaitOutsideFunction","generate","default","generateFromAst","ast","importAttributesKeyword","sourceMaps","undefined","getLogFn","getLogLevel","LogLevelLabel","getColor","noop","titleCase","chalk","createLog","name","options","logLevel","SILENT","INFO","customLogger","type","args","bold","hex","gray","join","trim","BADGE_COLORS","extendLog","logFn","inverse","split","map","char","charCodeAt","reduce","ret","charCode","length","declare","LogLevelLabel","chalk","extendLog","createBabelPlugin","name","builder","plugin","context","api","options","dirname","cache","using","meta","checksum","assertVersion","log","TRACE","bold","cyanBright","result","$$name","t","isString","parseAst","findExport","ast","key","type","node","program","body","declaration","declarations","id","name","init","listExports","codeOrAst","flatMap","i","map","d","filter","Boolean","listImports","specifiers","s","imported","value","isImportCall","calleePath","isImport","callee","getImport","specifier","named","importDeclaration","importSpecifier","identifier","stringLiteral","addImport","path","addImportsToProgram","scope","getProgramParent","isNonNamespacedImport","importDeclPath","get","every","isImportSpecifier","importKind","getExistingImports","existingImports","Map","traverse","ImportDeclaration","set","source","module","unshiftContainer","transformAsync","LogLevelLabel","findFileExtension","findFileExtensionSafe","isParentPath","isSetObject","defu","isDuplicatePlugin","resolveBabelPlugin","plugin","options","name","config","undefined","transform","babel","configResolved","order","handler","devDependencies","plugins","presets","code","id","powerlinesPath","includes","log","TRACE","map","filter","_","arr","preset","Array","isArray","length","unshift","isTSX","result","highlightCode","ast","cloneInputAst","comments","sourceType","configFile","babelrc","envName","mode","caller","framework","filename","Boolean","Error","$","_capnpFileId","BigInt","ReflectionKind","NEVER","ANY","UNKNOWN","VOID","OBJECT","STRING","NUMBER","BOOLEAN","SYMBOL","BIGINT","NULL","UNDEFINED","REGEXP","LITERAL","TEMPLATE_LITERAL","PROPERTY","METHOD","FUNCTION","PARAMETER","PROMISE","CLASS","TYPE_PARAMETER","ENUM","UNION","INTERSECTION","ARRAY","TUPLE","TUPLE_MEMBER","ENUM_MEMBER","REST","OBJECT_LITERAL","INDEX_SIGNATURE","PROPERTY_SIGNATURE","METHOD_SIGNATURE","INFER","CALL_SIGNATURE","ReflectionVisibility","PUBLIC","PROTECTED","PRIVATE","TagsReflection","Struct","_capnp","displayName","id","size","ObjectSize","_adoptAlias","value","utils","adopt","getPointer","_disownAlias","disown","alias","getList","TextList","_hasAlias","isNull","_initAlias","length","initList","copyFrom","title","getText","setText","hidden","getBit","setBit","readonly","ignore","internal","_adoptPermission","_disownPermission","permission","_hasPermission","_initPermission","domain","toString","DefaultValueReflection_Value_Which","INTEGER","FLOAT","DefaultValueReflection_Value","_isUndefined","getUint16","undefined","_","setUint16","boolean","testWhich","_isBoolean","integer","getInt32","_isInteger","setInt32","float","getFloat64","_isFloat","setFloat64","string","_isString","which","DefaultValueReflection","getAs","_initValue","SerializedTypeReference","getUint32","setUint32","IndexAccessOrigin","_adoptContainer","_disownContainer","container","getStruct","_hasContainer","_initContainer","initStructAt","_adoptIndex","_disownIndex","index","_hasIndex","_initIndex","EntityOptions_EntityIndexOptions","_adoptNames","_disownNames","names","_hasNames","_initNames","options","EntityOptions","EntityIndexOptions","name","description","collection","database","singleTableInheritance","_adoptIndexes","_disownIndexes","indexes","_Indexes","_hasIndexes","_initIndexes","SerializedTypeObjectLiteral","typeName","_adoptTypeArguments","_disownTypeArguments","typeArguments","_TypeArguments","_hasTypeArguments","_initTypeArguments","_adoptIndexAccessOrigin","_disownIndexAccessOrigin","indexAccessOrigin","_hasIndexAccessOrigin","_initIndexAccessOrigin","_adoptDecorators","_disownDecorators","decorators","_Decorators","_hasDecorators","_initDecorators","kind","_adoptTypes","_disownTypes","types","_Types","_hasTypes","_initTypes","_adoptTags","_disownTags","tags","_hasTags","_initTags","SerializedTypeClassType","globalObject","classType","_adoptExtendsArguments","_disownExtendsArguments","extendsArguments","_ExtendsArguments","_hasExtendsArguments","_initExtendsArguments","_adoptArguments","_disownArguments","arguments","_Arguments","_hasArguments","_initArguments","_adoptSuperClass","_disownSuperClass","superClass","_hasSuperClass","_initSuperClass","SerializedTypeParameter","_adoptType","_disownType","type","_hasType","_initType","visibility","optional","_adoptDefault","_disownDefault","default","_hasDefault","_initDefault","SerializedTypeMethod","abstract","_adoptParameters","_disownParameters","parameters","_Parameters","_hasParameters","_initParameters","_adoptReturn","_disownReturn","return","_hasReturn","_initReturn","SerializedTypeProperty","SerializedTypeFunction","SerializedTypePromise","SerializedTypeEnumEntry","SerializedTypeEnum","_adoptEnumEntries","_disownEnumEntries","enumEntries","_EnumEntries","_hasEnumEntries","_initEnumEntries","_adoptValues","_disownValues","values","_hasValues","_initValues","_adoptIndexType","_disownIndexType","indexType","_hasIndexType","_initIndexType","SerializedTypeUnion","SerializedTypeIntersection","SerializedTypeArray","SerializedTypeIndexSignature","SerializedTypePropertySignature","SerializedTypeMethodSignature","SerializedTypeTypeParameter","SerializedTypeInfer","SerializedTypeTupleMember","SerializedTypeTuple","SerializedTypeRest","SimpleSerializedType","_adoptOrigin","_disownOrigin","origin","_hasOrigin","_initOrigin","SerializedTypeLiteralSymbol","SerializedTypeLiteralBigInt","SerializedTypeLiteralRegex","regex","SerializedTypeLiteral_Literal_Which","REGEX","SerializedTypeLiteral_Literal","_adoptSymbol","_disownSymbol","symbol","_hasSymbol","_initSymbol","_isSymbol","number","_isNumber","_adoptBigint","_disownBigint","bigint","_hasBigint","_initBigint","_isBigint","_adoptRegex","_disownRegex","_hasRegex","_initRegex","_isRegex","SerializedTypeLiteral","literal","_initLiteral","SerializedTypeTemplateLiteral","SerializedTypeOther","SerializedType_Type_Which","SIMPLE","CLASS_TYPE","OTHER","SerializedType_Type","_adoptSimple","_disownSimple","simple","_hasSimple","_initSimple","_isSimple","_adoptLiteral","_disownLiteral","_hasLiteral","_isLiteral","_adoptTemplateLiteral","_disownTemplateLiteral","templateLiteral","_hasTemplateLiteral","_initTemplateLiteral","_isTemplateLiteral","_adoptParameter","_disownParameter","parameter","_hasParameter","_initParameter","_isParameter","_adoptFunction","_disownFunction","function","_hasFunction","_initFunction","_isFunction","_adoptMethod","_disownMethod","method","_hasMethod","_initMethod","_isMethod","_adoptProperty","_disownProperty","property","_hasProperty","_initProperty","_isProperty","_adoptPromise","_disownPromise","promise","_hasPromise","_initPromise","_isPromise","_adoptClassType","_disownClassType","_hasClassType","_initClassType","_isClassType","_adoptEnum","_disownEnum","enum","_hasEnum","_initEnum","_isEnum","_adoptUnion","_disownUnion","union","_hasUnion","_initUnion","_isUnion","_adoptIntersection","_disownIntersection","intersection","_hasIntersection","_initIntersection","_isIntersection","_adoptArray","_disownArray","array","_hasArray","_initArray","_isArray","_adoptObjectLiteral","_disownObjectLiteral","objectLiteral","_hasObjectLiteral","_initObjectLiteral","_isObjectLiteral","_adoptIndexSignature","_disownIndexSignature","indexSignature","_hasIndexSignature","_initIndexSignature","_isIndexSignature","_adoptPropertySignature","_disownPropertySignature","propertySignature","_hasPropertySignature","_initPropertySignature","_isPropertySignature","_adoptMethodSignature","_disownMethodSignature","methodSignature","_hasMethodSignature","_initMethodSignature","_isMethodSignature","_adoptTypeParameter","_disownTypeParameter","typeParameter","_hasTypeParameter","_initTypeParameter","_isTypeParameter","_adoptInfer","_disownInfer","infer","_hasInfer","_initInfer","_isInfer","_adoptTuple","_disownTuple","tuple","_hasTuple","_initTuple","_isTuple","_adoptTupleMember","_disownTupleMember","tupleMember","_hasTupleMember","_initTupleMember","_isTupleMember","_adoptRest","_disownRest","rest","_hasRest","_initRest","_isRest","_adoptOther","_disownOther","other","_hasOther","_initOther","_isOther","SerializedType","SerializedTypes","CompositeList","ReflectionKind","ReflectionVisibility","isInteger","isSetObject","isUndefined","CapnpReflectionVisibility","convertToCapnp","serializedTypes","result","Array","isArray","length","Error","filter","serializedType","kind","forEach","index","convertToCapnpBase","get","_initType","convertFromCapnp","deserializedType","convertFromCapnpBase","type","push","convertToCapnpTagsReflection","alias","_initAlias","a","set","hidden","ignore","internal","readonly","title","domain","permission","_initPermission","p","convertFromCapnpTagsReflection","_hasTags","tags","map","value","undefined","convertToCapnpIndexAccessOrigin","indexAccessOriginIndex","_initIndex","id","indexAccessOriginContainer","_initContainer","container","convertFromCapnpIndexAccessOrigin","_hasIndexAccessOrigin","Number","indexAccessOrigin","objectLiteral","_initObjectLiteral","convertToCapnpObjectLiteral","class","classType","_initClassType","convertToCapnpClassType","parameter","_initParameter","convertToCapnpParameter","function","functionType","_initFunction","convertToCapnpFunction","method","methodType","_initMethod","convertToCapnpMethod","infer","inferType","_initInfer","convertToCapnpInfer","union","unionType","_initUnion","convertToCapnpUnion","array","arrayType","_initArray","convertToCapnpArray","intersection","intersectionType","_initIntersection","convertToCapnpIntersection","enum","enumType","_initEnum","convertToCapnpEnum","property","propertyType","_initProperty","convertToCapnpProperty","tuple","tupleType","_initTuple","convertToCapnpTuple","tupleMember","tupleMemberType","_initTupleMember","convertToCapnpTupleMember","propertySignature","propertySignatureType","_initPropertySignature","convertToCapnpPropertySignature","methodSignature","methodSignatureType","_initMethodSignature","convertToCapnpMethodSignature","literal","literalType","_initLiteral","convertToCapnpLiteral","never","any","unknown","void","object","string","number","boolean","symbol","bigint","null","regexp","simpleType","_initSimple","convertToCapnpSimple","otherType","_initOther","convertToCapnpOther","_isObjectLiteral","convertFromCapnpObjectLiteral","_isClassType","convertFromCapnpClassType","_isParameter","convertFromCapnpParameter","_isFunction","convertFromCapnpFunction","_isInfer","convertFromCapnpInfer","_isMethod","convertFromCapnpMethod","_isUnion","convertFromCapnpUnion","_isArray","convertFromCapnpArray","_isIntersection","convertFromCapnpIntersection","_isEnum","convertFromCapnpEnum","_isProperty","convertFromCapnpProperty","_isTuple","convertFromCapnpTuple","_isTupleMember","convertFromCapnpTupleMember","_isPropertySignature","convertFromCapnpPropertySignature","_isMethodSignature","convertFromCapnpMethodSignature","_isLiteral","convertFromCapnpLiteral","_isSimple","convertFromCapnpSimple","simple","_isOther","convertFromCapnpOther","other","toString","typeName","decorators","_hasDecorators","d","typeArguments","_hasTypeArguments","t","_hasOrigin","origin","_initOrigin","_initDecorators","decorator","_initTypeArguments","typeArgument","_initIndexAccessOrigin","_isString","_isNumber","_isBoolean","_isBigint","_isSymbol","name","regex","literalTypeBigint","_initBigint","literalTypeSymbol","_initSymbol","slice","literalTypeRegex","_initRegex","parameters","_hasParameters","return","String","_initTags","description","default","convertFromCapnpDefault","optional","convertToCapnpDefault","defaultValue","_initValue","integer","float","_isInteger","_isFloat","_initDefault","types","_initTypes","serializedTypeType","_hasTypes","visibility","public","PUBLIC","protected","PROTECTED","PRIVATE","abstract","private","indexType","_initIndexType","values","_initValues","enumEntries","_initEnumEntries","Object","keys","entries","key","enumEntry","_hasValues","_hasEnumEntries","reduce","ret","_initParameters","returnType","_initReturn","globalObject","arguments","_arguments","_initArguments","serializedTypeArguments","extendsArguments","serializedTypeExtendsArguments","superClass","_initSuperClass","_hasArguments","_hasExtendsArguments","_hasSuperClass","serializedTypeTypeArguments","parameterType","ReflectionKind","getUniqueBy","StormJSON","isNull","isString","isUndefined","stringifyDefaultValue","property","value","stringifyValue","type","getDefaultValue","stringifyStringValue","String","replaceAll","kind","boolean","trim","toLowerCase","string","literal","enum","getEnumReflectionType","union","isStringUnion","array","stringify","object","objectLiteral","parameter","Error","unique","values","filter","undefined","enumMember","number","length","getUnionTypes","types","member","some","kindToName","void","never","null","symbol","bigint","class","regexp","templateLiteral","method","function","promise","typeParameter","tuple","tupleMember","rest","indexSignature","propertySignature","methodSignature","infer","callSignature","any","intersection","joinPaths","getReflectionsPath","context","dataPath","omit","joinPaths","replaceExtension","replacePath","camelCase","isString","defu","resolveEntryInputFile","resolveEntryOutput","DEFAULT_ESBUILD_CONFIG","target","platform","format","write","minify","sourcemap","bundle","treeShaking","keepNames","splitting","logLevel","resolveESBuildEntry","context","entryPoints","reduce","ret","entry","config","sourceRoot","projectRoot","output","input","extractESBuildConfig","inject","build","override","Object","keys","length","fs","writeSync","workspaceConfig","workspaceRoot","artifactsPath","entries","map","key","value","Array","isArray","join","alias","builtins","id","path","ids","find","toString","replacement","undefined","variant","mainFields","conditions","define","resolveExtensions","extensions","packages","skipNodeModulesBundle","Boolean","treeshake","outdir","buildPath","tsconfig","tsconfigFilePath","tsconfigRaw","tsconfigJson","mode","metafile","LogLevelLabel","build","extractESBuildConfig","bundle","context","file","overrides","path","fs","resolve","existsSync","Error","result","entry","write","sourcemap","splitting","treeShaking","errors","length","map","error","text","join","warnings","log","WARN","warning","outputFiles","filter","Boolean","parseTypeDefinition","isSetString","bundle","resolve","context","type","overrides","typeDefinition","result","file","resolved","resolver","evalModule","text","filename","path","forceTranspile","exportName","name","reflect","resolve","reflectType","context","type","overrides","reflectType","merge","ReflectionClass","ReflectionKind","resolveClassType","isParentPath","joinPaths","titleCase","getEnvDefaultTypeDefinition","getSecretsDefaultTypeDefinition","readEnvTypeReflection","readSecretsReflection","mergeEnvReflections","context","reflections","reflection","createEnvReflection","type","map","mergeSecretsReflections","createSecretsReflection","BaseEnv","PLATFORM","MODE","DEBUG","TEST","MINIMAL","NO_COLOR","FORCE_COLOR","FORCE_HYPERLINK","STACKTRACE","INCLUDE_ERROR_DATA","CI","BaseSecrets","options","parent","superReflection","kind","class","description","config","name","classType","types","implements","objectLiteral","typeName","result","reflectEnv","file","configType","workspaceConfig","workspaceRoot","skipNodeModulesBundle","defaultConfigType","filter","Boolean","reflectSecrets","defaultSecretsType","convertFromCapnp","convertToCapnp","getReflectionsPath","SerializedTypes","deserializeType","ReflectionKind","resolveClassType","capnp","readFileBuffer","writeFileBuffer","writeFileBufferSync","resolvePackage","joinPaths","isEmptyObject","existsSync","createEnvReflection","resolveRuntimeTypeFile","context","paths","workspaceConfig","workspaceRoot","config","projectRoot","getEnvDefaultTypeDefinition","file","name","getSecretsDefaultTypeDefinition","getEnvTypeReflectionsPath","readEnvTypeReflection","filePath","env","types","reflection","message","Message","messageRoot","initRoot","dataBuffer","toArrayBuffer","writeEnvTypeReflection","buffer","getRoot","serialized","serializeType","root","_initTypes","length","getEnvReflectionsPath","readEnvReflection","used","type","kind","objectLiteral","typeName","description","superReflection","writeEnvReflection","readSecretsReflection","secrets","writeEnvReflectionSync","convertFromCapnp","SerializedTypes","CapnpSerializedTypes","stringifyDefaultValue","deserializeType","ReflectionClass","ReflectionKind","resolveClassType","createBabelPlugin","addImport","LogLevelLabel","capnp","readFileBufferSync","existsSync","getEnvReflectionsPath","envBabelPlugin","log","context","extractEnv","node","pass","isInjectable","envTypesAliasProperties","env","types","getProperties","filter","prop","getAlias","length","name","prefix","config","find","pre","startsWith","hasProperty","replace","some","includes","TRACE","filename","envProperty","getProperty","isIgnored","used","addProperty","property","inject","value","parsed","undefined","getDefaultValue","isValueRequired","Error","getPropertyNames","sort","a","b","String","localeCompare","map","typeDef","getNameAsString","join","visitor","MemberExpression","path","get","isIdentifier","identifier","replaceWithSourceString","module","imported","isCallExpression","callee","type","isMetaProperty","post","persistedEnv","from","kind","objectLiteral","description","reflectionPath","Message","getRoot","forEach","getDescription","default","optional","isOptional","readonly","isReadonly","visibility","getVisibility","getType","tags","getTags","refkey","refkeyExternal","args","childrenArray","For","List","Prose","Show","splitProps","stringifyDefaultValue","isSetString","isUndefined","usePowerlines","TSDoc","props","children","heading","_$createIntrinsic","string","_$createComponent","when","_$memo","length","TSDocTag","tag","Boolean","width","TSDocParams","parameters","normalizeParametersForDoc","each","param","TSDocParam","name","optional","doc","some","p","TSDocTitle","rest","_$mergeProps","TSDocDomain","TSDocAlias","TSDocPermission","TSDocDefaultValue","value","TSDocRemarks","hardline","TSDocLink","TSDocExample","tsx","fenced","language","TSDocReadonly","TSDocInternal","TSDocIgnore","TSDocHidden","TSDocAttributesTags","title","alias","permission","domain","readonly","internal","ignore","hidden","defaultValue","TSDocParamName","TSDocParamDescription","TSDocReturns","TSDocThrows","TSDocModule","prefix","context","config","output","builtinPrefix","Prose","SingleLineComment","props","variant","children","commentStart","_$createIntrinsic","string","_$createComponent","getContext","Show","SourceDirectoryContext","SourceFileContext","splitProps","useContext","useFormatOptions","appendPath","defu","SourceFile","props","children","meta","path","header","preset","filetype","reference","parentDirectory","context","addContent","printOptions","printWidth","tabWidth","useTabs","insertFinalNewLine","nodeContext","sourceFile","output","_$createComponent","Provider","value","when","undefined","_$createIntrinsic","code","Scope","Show","SourceDirectoryContext","splitProps","useContext","useScope","getSourceDirectoryData","ImportStatements","PackageContext","SourceFileContext","TSModuleScope","useSourceFile","appendPath","isBoolean","isString","SingleLineComment","SourceFile","TypescriptFile","props","children","path","imports","tsx","header","rest","directoryContext","sdData","modulePath","scope","modules","add","pkg","addModule","export","addExport","_$createComponent","Provider","value","_$mergeProps","TypescriptFileHeader","TypescriptFileHeaderImports","filetype","disableEslint","disableBiome","disablePrettier","when","Boolean","_$createIntrinsic","variant","sourceFile","importedModules","size","Object","keys","length","entries","map","module","imported","filter","i","default","alias","name","join","records","splitProps","TSDocModule","TypescriptFile","TypescriptFileHeader","TypescriptFileHeaderImports","BuiltinFile","props","children","imports","id","description","tsx","rest","_$createComponent","_$mergeProps","header","name","meta","builtin","path","createContext","createNamedContext","useContext","ReflectionClassContext","useReflectionClass","context","Error","ReflectionPropertyContext","useReflectionProperty","ReflectionMethodContext","useReflectionMethod","ReflectionParameterContext","useReflectionParameter","childrenArray","code","computed","List","Show","splitProps","titleCase","isSetString","isString","isUndefined","useReflectionClass","useReflectionMethod","useReflectionProperty","TSDoc","TSDocAttributesTags","TSDocReflectionClass","props","children","rest","reflectionClass","title","reflection","getTitle","getName","alias","getAlias","domain","getDomain","permission","getPermission","readonly","isReadonly","internal","isInternal","ignore","isIgnored","hidden","isHidden","_$createComponent","_$mergeProps","heading","getDescription","when","value","length","_$memo","Boolean","TSDocReflectionProperty","context","TSDocReflectionMethod","String","undefined","computed","For","splitProps","InterfaceDeclaration","InterfaceMember","stringifyType","pascalCase","ReflectionClassContext","ReflectionPropertyContext","TSDocReflectionClass","TSDocReflectionProperty","TypeScriptInterface","props","name","reflection","rest","interfaceName","getName","properties","getProperties","filter","item","isIgnored","sort","a","b","isReadonly","getNameAsString","localeCompare","_$createComponent","Provider","value","children","_$mergeProps","each","doubleHardline","semicolon","prop","TypescriptInterfaceProperty","property","readonly","optional","isOptional","nullish","isNullable","type","getType","computed","Declaration","CoreDeclaration","createSymbolSlot","For","Name","Show","splitProps","createValueSymbol","ObjectExpression","ObjectProperty","TSSymbolFlags","TypeRefContext","useTSNamePolicy","stringifyDefaultValue","camelCase","pascalCase","isUndefined","ReflectionClassContext","ReflectionPropertyContext","TSDocReflectionClass","TSDocReflectionProperty","TypescriptObject","props","reflection","value","objectName","name","getName","objectType","type","properties","getProperties","filter","item","isIgnored","defaultValue","getNameAsString","getAlias","reduce","ret","alias","undefined","getDefaultValue","sort","a","b","isReadonly","localeCompare","TypeSymbolSlot","ValueTypeSymbolSlot","sym","refkeys","refkey","default","export","metadata","tsFlags","nullish","Nullish","None","firstSymbol","namePolicy","for","moveMembersTo","keyword","var","let","_$createComponent","children","when","Provider","override","symbol","_$memo","initializer","each","comma","doubleHardline","prop","TypescriptObjectProperty","property","_$createIntrinsic","ENV_PREFIXES","camelCase","isString","removeEnvPrefix","env","name","reduce","ret","prefix","startsWith","slice","length","toUpperCase","Object","keys","key","formatEnvField","loadEnv","loadEnvBase","loadEnvFile","loadEnvFileBase","joinPaths","kebabCase","isSetObject","isSetString","loadConfig","defu","removeEnvPrefix","loadEnvFiles","options","mode","cwd","env","additionalFiles","length","additionalEnvFiles","Promise","all","map","additionalEnvFile","loadEnvDirectory","directory","cacheDir","packageJson","workspaceConfig","envResult","c12Result","name","envName","defaults","NAME","replace","namespace","MODE","ORG","organization","globalRc","dotenv","jitiOptions","fsCache","moduleCache","config","loadEnvFromContext","context","parsed","APP_NAME","APP_VERSION","version","BUILD_ID","meta","buildId","BUILD_TIMESTAMP","Date","timestamp","toISOString","BUILD_CHECKSUM","checksum","RELEASE_ID","releaseId","RELEASE_TAG","DEFAULT_LOCALE","locale","DEFAULT_TIMEZONE","timezone","LOG_LEVEL","logLevel","ERROR_URL","error","url","ORGANIZATION","PLATFORM","build","platform","DEBUG","STACKTRACE","ENVIRONMENT","environment","types","getProperties","reduce","ret","prop","getDefaultValue","project","workspace","projectRoot","cachePath","workspaceRoot","envPaths","process","computed","createResource","ReflectionClass","ReflectionKind","titleCase","loadEnvFromContext","readEnvTypeReflection","createReflectionResource","context","defaultValue","process","env","kind","objectLiteral","description","types","result","getProperties","forEach","prop","aliases","getAlias","filter","Boolean","alias","addProperty","name","optional","isOptional","undefined","readonly","isReadonly","getDescription","visibility","getVisibility","type","getType","default","getDefaultValue","tags","hidden","isHidden","ignore","isIgnored","internal","isInternal","a","concat","title","getTitle","permission","getPermission","domain","getDomain","setDefaultValue","value","getNameAsString","reduce","ret","code","computed","For","Show","splitProps","ClassDeclaration","ClassMethod","ElseIfClause","FunctionDeclaration","IfStatement","NewExpression","TypeDeclaration","VarDeclaration","usePowerlines","refkey","BuiltinFile","TSDoc","TSDocExample","TSDocLink","TSDocParam","TSDocRemarks","TSDocReturns","TSDocThrows","TypeScriptInterface","TypescriptObject","ReflectionClass","ReflectionKind","titleCase","isNull","defu","createReflectionResource","loadEnvFromContext","EnvTypeDefinition","props","defaultValue","reflection","context","_$createComponent","name","_$createIntrinsic","children","config","env","prefix","map","replace","join","ConfigPropertyConditional","sort","a","b","startsWith","localeCompare","toLowerCase","ConfigPropertyGet","property","index","condition","getNameAsString","when","_$memo","getAlias","length","each","joiner","alias","ConfigPropertySet","createEnvRefkey","envRefkey","envSerializerRefkey","EnvBuiltin","defaultConfig","rest","process","envInstance","result","kind","objectLiteral","description","types","data","undefined","reflectionGetProperties","getProperties","filter","isIgnored","reflectionSetProperties","isReadonly","_$mergeProps","id","imports","value","type","heading","initializer","args","target","Boolean","entryPath","async","parameters","optional","default","returnType","ender","createContext","createNamedContext","useContext","MarkdownTableColumnContext","useMarkdownTableColumn","MarkdownTableContext","columns","data","useMarkdownTable","createAlloyPlugin","ReflectionClass","ReflectionKind","stringifyType","babel","LogLevelLabel","parseTypeDefinition","toArray","ENV_PREFIXES","existsSync","createDirectory","isParentPath","joinPaths","constantCase","defu","envBabelPlugin","EnvBuiltin","loadEnv","getEnvDefaultTypeDefinition","getEnvReflectionsPath","getEnvTypeReflectionsPath","getSecretsDefaultTypeDefinition","readEnvReflection","readEnvTypeReflection","readSecretsReflection","writeEnvReflection","writeEnvTypeReflection","reflectEnv","reflectSecrets","plugin","options","name","dependsOn","config","log","TRACE","env","types","prefix","transform","plugins","WARN","envDefaultTypeDefinition","file","secrets","secretsDefaultTypeDefinition","reduce","ret","formattedPrefix","includes","push","replace","configResolved","inject","projectType","parsed","used","injected","command","persistedMeta","checksum","meta","workspaceConfig","workspaceRoot","projectRoot","undefined","Error","getProperties","length","envWithAlias","filter","prop","getAlias","Object","entries","forEach","key","value","unprefixedKey","startsWith","slice","aliasKey","find","reverse","hasProperty","getProperty","setDefaultValue","kind","objectLiteral","typeName","description","render","_self$","_$createComponent","defaultConfig","docs","outputPath","reflection","envDocFile","fs","write","packageJson","property","getNameAsString","sort","a","b","localeCompare","map","reflectionProperty","trim","getDescription","replaceAll","getType","hasDefault","String","getDefaultValue","isValueRequired","join","buildEnd","reflectionPath","titleCase","getBaseFileHeader","context","config","framework","getFileHeader","options","directive","prettierIgnore","getFileHeader","dateFnsModule","context","config","output","builtinPrefix","env","parsed","DEFAULT_LOCALE","replaceAll","getFileHeader","dayjsModule","context","config","output","builtinPrefix","getFileHeader","luxonModule","context","config","output","builtinPrefix","getFileHeader","momentModule","context","config","output","builtinPrefix","env","LogLevelLabel","defu","dateFnsModule","dayjsModule","luxonModule","momentModule","plugin","options","name","dependsOn","config","log","TRACE","date","type","includes","WARN","DEBUG","configResolved","dependencies","prepare","dateModule","emitBuiltin","Promise","resolve"],"sources":["../../powerlines/src/plugin-utils/helpers.ts","../../alloy/src/core/contexts/context.ts","../../alloy/src/core/components/output.tsx","../../alloy/src/create-plugin.tsx","../../deepkit/src/vendor/type.ts","../../plugin-babel/src/helpers/filters.ts","../../plugin-babel/src/helpers/options.ts","../../plugin-babel/src/helpers/ast-utils.ts","../../powerlines/src/lib/logger.ts","../../plugin-babel/src/helpers/create-plugin.ts","../../plugin-babel/src/helpers/module-helpers.ts","../../plugin-babel/src/index.ts","../../deepkit/schemas/reflection.ts","../../deepkit/src/capnp.ts","../../deepkit/schemas/reflection.js","../../deepkit/src/utilities.ts","../../deepkit/src/resolve-reflections.ts","../../powerlines/src/lib/build/esbuild.ts","../../powerlines/src/lib/utilities/bundle.ts","../../powerlines/src/lib/utilities/resolve.ts","../../deepkit/src/reflect-type.ts","../../plugin-env/src/helpers/reflect.ts","../../plugin-env/src/helpers/persistence.ts","../../plugin-env/src/babel/plugin.ts","../../alloy/src/helpers/refkey.ts","../../alloy/src/typescript/components/tsdoc.tsx","../../alloy/src/core/components/single-line-comment.tsx","../../alloy/src/core/components/source-file.tsx","../../alloy/src/typescript/components/typescript-file.tsx","../../alloy/src/typescript/components/builtin-file.tsx","../../alloy/src/core/contexts/reflection.ts","../../alloy/src/typescript/components/tsdoc-reflection.tsx","../../alloy/src/typescript/components/typescript-interface.tsx","../../alloy/src/typescript/components/typescript-object.tsx","../../plugin-env/src/helpers/source-file-env.ts","../../plugin-env/src/helpers/load.ts","../../plugin-env/src/helpers/create-reflection-resource.ts","../../plugin-env/src/components/env.tsx","../../alloy/src/markdown/contexts/markdown-table.ts","../../plugin-env/src/index.tsx","../../powerlines/src/lib/utilities/file-header.ts","../src/components/date-fns.ts","../src/components/dayjs.ts","../src/components/luxon.ts","../src/components/moment.ts","../src/index.ts"],"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 { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport { AnyFunction } from \"@stryke/types/base\";\nimport { SUPPORTED_COMMANDS } from \"../types/commands\";\nimport {\n PluginConfig,\n PluginConfigObject,\n PluginConfigTuple\n} from \"../types/config\";\nimport { PluginContext } from \"../types/context\";\nimport {\n BaseHookKeys,\n BaseHooksListItem,\n ExternalHookKeys,\n HookKeys\n} from \"../types/hooks\";\nimport { Plugin, PluginHook, PluginHookObject } from \"../types/plugin\";\nimport { ResolvedConfig } from \"../types/resolved\";\n\n/**\n * Type guard to check if an object is a {@link Plugin}\n *\n * @param value - The object to check\n * @returns True if the object is a {@link Plugin}, false otherwise\n */\nexport function isPlugin<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n>(value: unknown): value is Plugin<PluginContext<TResolvedConfig>> {\n return (\n isSetObject(value) &&\n \"name\" in value &&\n isSetString(value.name) &&\n (isUndefined(\n (value as Plugin<PluginContext<TResolvedConfig>>).applyToEnvironment\n ) ||\n (\"applyToEnvironment\" in value &&\n isFunction(value.applyToEnvironment))) &&\n (isUndefined((value as Plugin<PluginContext<TResolvedConfig>>).dedupe) ||\n (\"dedupe\" in value && isFunction(value.dedupe))) &&\n (isUndefined((value as Plugin<PluginContext<TResolvedConfig>>).dependsOn) ||\n (\"dependsOn\" in value &&\n Array.isArray(value.dependsOn) &&\n value.dependsOn.every(isPluginConfig))) &&\n SUPPORTED_COMMANDS.every(\n command =>\n isUndefined(\n (value as Plugin<PluginContext<TResolvedConfig>>)[command]\n ) ||\n (command in value &&\n (isFunction((value as Record<string, any>)[command]) ||\n (isSetObject((value as Record<string, any>)[command]) &&\n \"handler\" in (value as Record<string, any>)[command] &&\n isFunction((value as Record<string, any>)[command].handler))))\n )\n );\n}\n\n/**\n * Type guard to check if an object is a {@link PluginConfigObject}\n *\n * @param value - The object to check\n * @returns True if the object is a {@link PluginConfigObject}, false otherwise\n */\nexport function isPluginConfigObject(\n value: unknown\n): value is PluginConfigObject {\n return (\n isSetObject(value) &&\n \"plugin\" in value &&\n (((isSetString(value.plugin) || isFunction(value.plugin)) &&\n \"options\" in value &&\n isSetObject(value.options)) ||\n isPlugin(value.plugin))\n );\n}\n\n/**\n * Type guard to check if an object is a {@link PluginConfigTuple}\n *\n * @param value - The object to check\n * @returns True if the object is a {@link PluginConfigTuple}, false otherwise\n */\nexport function isPluginConfigTuple(\n value: unknown\n): value is PluginConfigTuple {\n return (\n Array.isArray(value) &&\n (value.length === 1 || value.length === 2) &&\n (((isSetString(value[0]) || isFunction(value[0])) &&\n value.length > 1 &&\n isSetObject(value[1])) ||\n isPlugin(value[0]))\n );\n}\n\n/**\n * Type guard to check if an object is a {@link PluginConfig}\n *\n * @param value - The object to check\n * @returns True if the object is a {@link PluginConfig}, false otherwise\n */\nexport function isPluginConfig(value: unknown): value is PluginConfig {\n return (\n isSetString(value) ||\n isFunction(value) ||\n isPlugin(value) ||\n isPluginConfigObject(value) ||\n isPluginConfigTuple(value)\n );\n}\n\n/**\n * Type guard to check if an value is a {@link PluginHook} function\n *\n * @param value - The value to check\n * @returns True if the value is a {@link PluginHook} function, false otherwise\n */\nexport function isPluginHookFunction(value: unknown): value is AnyFunction {\n return (\n isFunction(value) ||\n (isSetObject(value) && \"handler\" in value && isFunction(value.handler))\n );\n}\n\n/**\n * Type guard to check if an value is a {@link PluginHook} function\n *\n * @param value - The value to check\n * @returns True if the value is a {@link PluginHook} function, false otherwise\n */\nexport function isPluginHookObject(\n value: unknown\n): value is PluginHookObject<AnyFunction> {\n return isSetObject(value) && \"handler\" in value && isFunction(value.handler);\n}\n\n/**\n * Type guard to check if an object is a {@link PluginHook}\n *\n * @param value - The object to check\n * @returns True if the object is a {@link PluginHook}, false otherwise\n */\nexport function isPluginHook(value: unknown): value is PluginHook<AnyFunction> {\n return isPluginHookFunction(value) || isPluginHookObject(value);\n}\n\n/**\n * Extract the hook handler function from a plugin hook\n *\n * @param pluginHook - The plugin hook to extract the handler function from\n * @returns The hook handler function\n */\nexport function getHookHandler(\n pluginHook: PluginHook<AnyFunction>\n): AnyFunction {\n return isFunction(pluginHook) ? pluginHook : pluginHook.handler;\n}\n\n/**\n * Extract a plugin hook from a plugin\n *\n * @param context - The build context\n * @param plugin - The plugin to extract the hook from\n * @param hook - The name of the hook to extract\n * @returns The extracted hook, or undefined if the hook does not exist\n */\nexport function extractPluginHook<\n TContext extends PluginContext = PluginContext,\n TPlugin extends Plugin<TContext> = Plugin<TContext>\n>(context: TContext, plugin: TPlugin, hook: BaseHookKeys<TContext>) {\n const pluginHook = plugin[hook];\n if (!isPluginHook(pluginHook)) {\n return undefined;\n }\n\n return isFunction(pluginHook)\n ? {\n normal: pluginHook.bind(context)\n }\n : {\n [pluginHook.order ? pluginHook.order : \"normal\"]:\n pluginHook.handler.bind(context)\n };\n}\n\n/**\n * Check if a hook is external.\n *\n * @param hook - The name of the hook to check.\n * @returns True if the hook is external, false otherwise.\n */\nexport function isHookExternal(hook: HookKeys): hook is ExternalHookKeys {\n return (\n hook.startsWith(\"vite:\") ||\n hook.startsWith(\"esbuild:\") ||\n hook.startsWith(\"rolldown:\") ||\n hook.startsWith(\"rollup:\") ||\n hook.startsWith(\"webpack:\") ||\n hook.startsWith(\"rspack:\") ||\n hook.startsWith(\"farm:\")\n );\n}\n\n/**\n * Check if a hook is internal.\n *\n * @param hook - The name of the hook to check.\n * @returns True if the hook is external, false otherwise.\n */\nexport function isHookInternal(hook: HookKeys): hook is BaseHookKeys {\n return !isHookExternal(hook);\n}\n\n/**\n * Check if a plugin should be deduplicated.\n *\n * @param plugin - The plugin to check\n * @param plugins - The list of plugins to check against\n * @returns True if the plugin should be deduplicated, false otherwise\n */\nexport function checkDedupe<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig,\n TContext extends PluginContext<TResolvedConfig> =\n PluginContext<TResolvedConfig>\n>(plugin: Plugin<TContext>, plugins: Plugin<TContext>[]) {\n return (\n plugin.dedupe === false ||\n plugins.some(\n p =>\n p.dedupe !== false &&\n ((isFunction(p.dedupe) && p.dedupe(plugin)) || p.name === plugin.name)\n )\n );\n}\n\n/**\n * Add a plugin hook to the hooks list.\n *\n * @param context - The plugin context\n * @param plugin - The plugin to add the hook from\n * @param pluginHook - The plugin hook to add\n * @param hooksList - The list of hooks to add to\n */\nexport function addPluginHook<TContext extends PluginContext = PluginContext>(\n context: TContext,\n plugin: Plugin<TContext>,\n pluginHook: PluginHook<AnyFunction>,\n hooksList: BaseHooksListItem<TContext, BaseHookKeys<TContext>>[]\n) {\n if (\n !checkDedupe(\n plugin,\n hooksList.map(hook => hook.plugin)\n )\n ) {\n hooksList.push(\n isFunction(pluginHook)\n ? {\n plugin,\n handler: getHookHandler(pluginHook).bind(context)\n }\n : {\n plugin,\n ...pluginHook,\n handler: getHookHandler(pluginHook).bind(context)\n }\n );\n }\n}\n","/* -------------------------------------------------------------------\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 type { ComponentContext, Ref } from \"@alloy-js/core\";\nimport { createContext, useContext } from \"@alloy-js/core\";\nimport type { PluginContext } from \"powerlines/types/context\";\n\nexport interface PowerlinesContextInterface<\n TContext extends PluginContext = PluginContext\n> {\n ref: Ref<TContext>;\n}\n\n/**\n * The Powerlines context used in template rendering.\n */\nexport const PowerlinesContext: ComponentContext<\n PowerlinesContextInterface<any>\n> = createContext<PowerlinesContextInterface<any>>();\n\n/**\n * Hook to access the Powerlines Context.\n *\n * @returns The Context.\n */\nexport function usePowerlinesContext<\n TContext extends PluginContext = PluginContext\n>(): PowerlinesContextInterface<TContext> | undefined {\n return useContext<PowerlinesContextInterface<TContext>>(PowerlinesContext);\n}\n\n/**\n * Hook to access the Powerlines Context.\n *\n * @returns The reactive context ref.\n */\nexport function usePowerlines<\n TContext extends PluginContext = PluginContext\n>(): TContext | undefined {\n const powerlines = usePowerlinesContext<TContext>();\n\n return powerlines?.ref?.value;\n}\n","/* -------------------------------------------------------------------\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 type { OutputProps as OutputPropsExternal } from \"@alloy-js/core\";\nimport {\n computed,\n Output as OutputExternal,\n ref,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport { replacePath } from \"@stryke/path/replace\";\nimport type { PluginContext } from \"powerlines/types/context\";\nimport { PowerlinesContext } from \"../contexts/context\";\n\nexport interface OutputProps<TContext extends PluginContext = PluginContext>\n extends OutputPropsExternal {\n /**\n * The current Powerlines process context.\n */\n context: TContext;\n}\n\n/**\n * Output component for rendering the Powerlines plugin's output files via templates.\n */\nexport function Output<TContext extends PluginContext = PluginContext>(\n props: OutputProps<TContext>\n) {\n const [{ children, context, basePath }, rest] = splitProps(props, [\n \"children\",\n \"context\",\n \"basePath\"\n ]);\n\n const contextRef = ref(context);\n const basePathRef = computed(() =>\n basePath\n ? replacePath(basePath, contextRef.value.workspaceConfig.workspaceRoot)\n : contextRef.value.workspaceConfig.workspaceRoot\n );\n\n return (\n <OutputExternal {...rest} basePath={basePathRef.value}>\n <PowerlinesContext.Provider value={{ ref: contextRef }}>\n <Show when={Boolean(contextRef.value)}>{children}</Show>\n </PowerlinesContext.Provider>\n </OutputExternal>\n );\n}\n","/* -------------------------------------------------------------------\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 flushJobsAsync,\n getContextForRenderNode,\n isPrintHook,\n RenderedTextTree,\n renderTree\n} from \"@alloy-js/core\";\nimport { PluginPluginAlloyOptions } from \"@powerlines/plugin-plugin/types/plugin\";\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { isParentPath } from \"@stryke/path/is-parent-path\";\nimport { replacePath } from \"@stryke/path/replace\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport {\n getHookHandler,\n isPluginHook,\n isPluginHookFunction,\n isPluginHookObject\n} from \"powerlines/plugin-utils/helpers\";\nimport { PluginContext } from \"powerlines/types/context\";\nimport { Plugin } from \"powerlines/types/plugin\";\nimport { Doc } from \"prettier\";\nimport { printer } from \"prettier/doc.js\";\nimport { Output } from \"./core/components/output\";\nimport { OutputDirectory, OutputFile } from \"./types/components\";\nimport { AlloyPluginBuilder, AlloyPluginOptions } from \"./types/plugin\";\n\n/**\n * Creates an Alloy plugin using a plugin builder function.\n *\n * @param builder - The Alloy plugin builder function.\n * @returns An object representing the Alloy plugin.\n */\nexport function createAlloyPlugin<\n TContext extends PluginContext = PluginContext\n>(builder: AlloyPluginBuilder<TContext>) {\n return <T extends TContext>(\n options: Parameters<typeof builder>[0] & AlloyPluginOptions\n ) => {\n const result = builder(options);\n\n return {\n ...result,\n async prepare() {\n if (\n isPluginHook(result.prepare) &&\n result.enforce !== \"post\" &&\n (isPluginHookFunction(result.prepare) ||\n (isPluginHookObject(result.prepare) &&\n result.prepare.order !== \"post\"))\n ) {\n await Promise.resolve(getHookHandler(result.prepare).call(this));\n }\n\n if (isPluginHook(result.render)) {\n const tree = renderTree(\n <Output<TContext>\n context={this}\n basePath={this.workspaceConfig.workspaceRoot}>\n {result.render.call(this)}\n </Output>\n );\n\n await writeTree(this, tree, options?.alloy);\n }\n\n if (\n isPluginHook(result.prepare) &&\n (result.enforce === \"post\" ||\n (isPluginHookObject(result.prepare) &&\n result.prepare.order === \"post\"))\n ) {\n await Promise.resolve(getHookHandler(result.prepare).call(this));\n }\n }\n } as Plugin<T>;\n };\n}\n\n/**\n * Writes the rendered output files to the virtual file system.\n *\n * @param context - The context of the current build.\n * @param tree - The rendered output files.\n */\nasync function writeTree<TContext extends PluginContext = PluginContext>(\n context: TContext,\n tree: RenderedTextTree,\n options: PluginPluginAlloyOptions = {}\n) {\n await flushJobsAsync();\n\n let result!: OutputDirectory;\n const generateOutput = async (\n currentDirectory: OutputDirectory | undefined,\n root: RenderedTextTree\n ) => {\n if (!Array.isArray(root)) {\n return;\n }\n\n const recurse = async (cwd: OutputDirectory | undefined) => {\n for (const child of root) {\n await generateOutput(cwd, child as RenderedTextTree);\n }\n };\n\n const renderContext = getContextForRenderNode(root);\n if (!renderContext) {\n return recurse(currentDirectory);\n }\n\n if (renderContext.meta?.directory) {\n const directory: OutputDirectory = {\n kind: \"directory\",\n path: renderContext.meta.directory.path,\n contents: []\n };\n\n if (currentDirectory) {\n currentDirectory.contents.push(directory);\n } else {\n result = directory;\n }\n\n await recurse(directory);\n } else if (renderContext.meta?.sourceFile) {\n if (!currentDirectory) {\n // This shouldn't happen if you're using the Output component.\n throw new Error(\n \"Source file doesn't have parent directory. Make sure you have used the Output component.\"\n );\n }\n\n let outputFile!: OutputFile;\n if (renderContext.meta?.builtin) {\n if (!renderContext.meta.builtin.id) {\n throw new Error(\n \"Built-in runtime module doesn't have an ID. Make sure you have used the `<BuiltinFile />` component.\"\n );\n }\n\n context.log(\n LogLevelLabel.TRACE,\n `Rendering built-in runtime module with ID: ${renderContext.meta.builtin.id}`\n );\n\n outputFile = {\n kind: \"builtin\",\n id: renderContext.meta.builtin.id,\n path: replacePath(\n renderContext.meta.sourceFile.path,\n context.builtinsPath\n ),\n filetype: renderContext.meta.sourceFile.filetype,\n preset: renderContext.meta.output?.mode,\n contents: await printTree(context, root, options)\n };\n } else if (\n renderContext.meta?.entry ||\n isParentPath(context.entryPath, renderContext.meta.sourceFile.path)\n ) {\n context.log(\n LogLevelLabel.TRACE,\n `Rendering entry module at path: ${renderContext.meta.sourceFile.path}`\n );\n\n outputFile = {\n kind: \"entry\",\n typeDefinition: renderContext.meta.entry?.typeDefinition,\n path: renderContext.meta.sourceFile.path,\n filetype: renderContext.meta.sourceFile.filetype,\n preset: renderContext.meta.output?.mode,\n contents: await printTree(context, root, options)\n };\n } else {\n context.log(\n LogLevelLabel.TRACE,\n `Rendering source file at path: ${renderContext.meta.sourceFile.path}`\n );\n\n outputFile = {\n kind: \"file\",\n path: renderContext.meta.sourceFile.path,\n filetype: renderContext.meta.sourceFile.filetype,\n preset: renderContext.meta.output?.mode,\n contents: await printTree(context, root, options)\n };\n }\n\n currentDirectory.contents.push(outputFile);\n } else if (renderContext.meta?.copyFile) {\n if (!currentDirectory) {\n // This shouldn't happen if you're using the Output component.\n throw new Error(\n \"Copy file doesn't have parent directory. Make sure you have used the Output component.\"\n );\n }\n\n context.log(\n LogLevelLabel.TRACE,\n `Processing copy file operation from \"${\n renderContext.meta.copyFile.sourcePath\n }\" to \"${renderContext.meta.copyFile.path}\"`\n );\n\n if (!renderContext.meta.copyFile.sourcePath) {\n throw new Error(\n \"Copy file doesn't have a source path. Make sure you have provided a `sourcePath` property to the `meta.copyFile` context.\"\n );\n }\n\n if (!renderContext.meta.copyFile.path) {\n throw new Error(\n \"Copy file doesn't have a destination path. Make sure you have provided a `path` property to the `meta.copyFile` context.\"\n );\n }\n\n currentDirectory.contents.push({\n kind: \"file\",\n path: renderContext.meta.copyFile.path,\n sourcePath: renderContext.meta.copyFile.sourcePath,\n preset: renderContext.meta.output?.preset\n });\n } else {\n await recurse(currentDirectory);\n }\n };\n\n await generateOutput(undefined, tree);\n\n const writeOutput = async (context: TContext, output: OutputDirectory) => {\n for (const sub of output.contents) {\n if (sub.kind === \"directory\") {\n await writeOutput(context, sub);\n } else if (sub.kind === \"builtin\") {\n await context.emitBuiltin(sub.contents, sub.id, sub.path);\n } else if (sub.kind === \"entry\") {\n await context.emitEntry(sub.contents, sub.path);\n } else if (sub.kind === \"file\") {\n if (\"sourcePath\" in sub && sub.sourcePath) {\n if (!context.fs.existsSync(sub.sourcePath)) {\n throw new Error(\n `Source file \"${sub.sourcePath}\" for copy operation does not exist.`\n );\n }\n\n const source = await context.fs.read(sub.sourcePath);\n if (!isSetString(source)) {\n throw new Error(\n `Source file \"${sub.sourcePath}\" for copy operation is empty.`\n );\n }\n\n await context.fs.write(sub.path, source);\n } else if (\"contents\" in sub && isSetString(sub.contents)) {\n await context.fs.write(sub.path, sub.contents);\n } else {\n throw new Error(\n `Unexpected output extracted from the render tree: \\n\\n${JSON.stringify(sub, null, 2)}`\n );\n }\n }\n }\n };\n\n await writeOutput(context, result);\n}\n\nasync function printTree<TContext extends PluginContext = PluginContext>(\n context: TContext,\n tree: RenderedTextTree,\n options: PluginPluginAlloyOptions = {}\n) {\n options.printWidth ??= 160;\n options.tabWidth ??= 2;\n options.useTabs ??= false;\n options.insertFinalNewLine ??= true;\n\n await flushJobsAsync();\n\n const result = printer.printDocToString(\n printTreeWorker(tree),\n options as printer.Options\n ).formatted;\n\n return options.insertFinalNewLine && !result.endsWith(\"\\n\")\n ? `${result}\\n`\n : result;\n}\n\nfunction printTreeWorker(tree: RenderedTextTree): Doc {\n const doc: Doc = [];\n for (const node of tree) {\n if (typeof node === \"string\") {\n const normalizedNode = node\n .split(/\\r?\\n/)\n .flatMap((line, index, array) =>\n index < array.length - 1 ? [line] : [line]\n );\n doc.push(normalizedNode);\n } else if (isPrintHook(node)) {\n doc.push(node.print!(node.subtree, printTreeWorker));\n } else {\n doc.push(printTreeWorker(node));\n }\n }\n\n return doc;\n}\n","/* -------------------------------------------------------------------\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\n// Re-exported Deepkit - Type module\n\nexport * from \"@deepkit/type\";\n","/* -------------------------------------------------------------------\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 { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isObject } from \"@stryke/type-checks/is-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { Context } from \"powerlines/types\";\nimport {\n BabelTransformPlugin,\n BabelTransformPluginFilter,\n BabelTransformPluginOptions,\n ResolvedBabelTransformPluginOptions\n} from \"powerlines/types/babel\";\n\nexport function getPluginName(\n plugin: BabelTransformPluginOptions\n): string | undefined {\n return isSetString(plugin)\n ? plugin\n : Array.isArray(plugin) && plugin.length > 0\n ? getPluginName(plugin[0])\n : (plugin as BabelTransformPlugin).$$name ||\n (plugin as BabelTransformPlugin).name\n ? (plugin as BabelTransformPlugin).$$name ||\n (plugin as BabelTransformPlugin).name\n : undefined;\n}\n\n/**\n * Check if a Babel plugin is a duplicate of another plugin in the list.\n *\n * @param plugins - The list of existing Babel plugins.\n * @param plugin - The Babel plugin to check for duplicates.\n * @returns True if the plugin is a duplicate, false otherwise.\n */\nexport function isDuplicatePlugin(\n plugins: (ResolvedBabelTransformPluginOptions | undefined)[],\n plugin: BabelTransformPluginOptions\n): boolean {\n return !!(\n getPluginName(plugin) &&\n plugins.some(\n existing =>\n Array.isArray(existing) &&\n getPluginName(existing[0]) === getPluginName(plugin)\n )\n );\n}\n\n/**\n * Filters a Babel plugin by its runtime ID.\n *\n * @param context - The context in which the filter is applied.\n * @param fileId - The file ID to filter by.\n * @returns A filter function that checks if a plugin's ID matches the runtime ID.\n */\nexport function filterPluginByFileId<TContext extends Context = Context>(\n context: TContext,\n fileId: string\n): BabelTransformPluginFilter {\n return (code: string, id: string): boolean =>\n fileId !== id &&\n context.fs.ids[fileId] !== id &&\n fileId !== context.fs.ids[id] &&\n context.fs.ids[fileId] !== context.fs.ids[id];\n}\n\n/**\n * Adds a filter to a Babel plugin or a list of Babel plugins.\n *\n * @param context - The context in which the plugin is being added.\n * @param plugins - The Babel plugins to add the filter to.\n * @param filter - The filter function to apply to the plugins.\n * @param name - The name of the plugin to add the filter to.\n * @returns The updated list of Babel plugins with the filter applied.\n */\nexport function addPluginFilter(\n context: Context,\n plugins: BabelTransformPluginOptions[],\n filter: BabelTransformPluginFilter | null | undefined,\n name: string\n): BabelTransformPluginOptions[];\n\n/**\n * Adds a filter to a Babel plugin or a list of Babel plugins.\n *\n * @param context - The context in which the plugin is being added.\n * @param plugin - The Babel plugin to add the filter to.\n * @param filter - The filter function to apply to the plugin.\n * @returns The updated Babel plugin with the filter applied.\n */\nexport function addPluginFilter(\n context: Context,\n plugin: BabelTransformPlugin | BabelTransformPluginOptions,\n filter: NonNullable<BabelTransformPluginFilter>\n): BabelTransformPluginOptions;\n\n/**\n * Adds a filter to a Babel plugin or a list of Babel plugins.\n *\n * @param context - The context in which the plugin is being added.\n * @param pluginOrPlugins - The Babel plugin or plugins to add the filter to.\n * @param filter - The filter function to apply to the plugins.\n * @param name - The name of the plugin to add the filter to.\n * @returns The updated list of Babel plugins with the filter applied.\n */\nexport function addPluginFilter<\n T extends\n | BabelTransformPlugin\n | BabelTransformPluginOptions\n | BabelTransformPluginOptions[]\n>(\n context: Context,\n pluginOrPlugins: T,\n filter: NonNullable<BabelTransformPluginFilter>,\n name?: string\n): T extends BabelTransformPluginOptions[]\n ? BabelTransformPluginOptions[]\n : BabelTransformPluginOptions {\n if (\n !Array.isArray(pluginOrPlugins) ||\n (!pluginOrPlugins.some(plugin => Array.isArray(plugin)) &&\n pluginOrPlugins.length < 4 &&\n pluginOrPlugins.length > 0 &&\n (isSetString(pluginOrPlugins[0]) ||\n isFunction(pluginOrPlugins[0]) ||\n (pluginOrPlugins.length > 1 && isObject(pluginOrPlugins[1])) ||\n (pluginOrPlugins.length > 2 && isObject(pluginOrPlugins[2]))))\n ) {\n return Array.isArray(pluginOrPlugins)\n ? [\n pluginOrPlugins[0],\n pluginOrPlugins.length > 1 ? pluginOrPlugins[1] : {},\n {\n filter: (code, id) =>\n filter(code, id) &&\n (pluginOrPlugins.length < 2 ||\n !isFunction(pluginOrPlugins[2]) ||\n pluginOrPlugins[2]?.(code, id))\n }\n ]\n : [\n pluginOrPlugins,\n {},\n {\n filter\n }\n ];\n }\n\n if (!name) {\n throw new Error(\n \"No name was provided to \\`addPluginFilter\\`, could not find babel plugin without it.\"\n );\n }\n\n const foundIndex = pluginOrPlugins.findIndex(\n plugin => getPluginName(plugin)?.toLowerCase() === name.toLowerCase()\n );\n if (foundIndex > -1) {\n pluginOrPlugins[foundIndex] = addPluginFilter(\n context,\n pluginOrPlugins[foundIndex],\n filter,\n name\n );\n }\n\n return pluginOrPlugins;\n}\n","/* -------------------------------------------------------------------\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 { PluginOptions, PluginTarget } from \"@babel/core\";\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport chalk from \"chalk\";\nimport {\n BabelTransformPluginOptions,\n ResolvedBabelTransformPluginOptions\n} from \"powerlines/types/babel\";\nimport { Context } from \"powerlines/types/context\";\nimport { getPluginName } from \"./filters\";\n\nexport function resolvePluginFunction(\n context: Context,\n plugin:\n | any\n | PluginTarget\n | any[]\n | [PluginTarget, PluginOptions]\n | [PluginTarget, PluginOptions, string | undefined]\n): BabelTransformPluginOptions {\n try {\n return Array.isArray(plugin) && plugin.length > 0 && plugin[0]\n ? isFunction(plugin[0])\n ? plugin[0](context)\n : plugin[0]\n : isFunction(plugin)\n ? plugin(context)\n : plugin;\n } catch {\n return plugin[0];\n }\n}\n\n/**\n * Resolve the [Babel](https://babeljs.io/) plugin.\n *\n * @param context - The context for the transformation.\n * @param code - The code to be transformed.\n * @param id - The ID of the source file.\n * @param plugin - The Babel plugin to resolve.\n * @returns The resolved Babel plugin options, or undefined if the plugin is filtered out.\n */\nexport function resolveBabelPlugin(\n context: Context,\n code: string,\n id: string,\n plugin: BabelTransformPluginOptions\n): ResolvedBabelTransformPluginOptions | undefined {\n if (Array.isArray(plugin) && plugin.length > 0 && plugin[0]) {\n if (\n plugin.length > 2 &&\n plugin[2] &&\n isFunction(plugin[2]) &&\n !plugin[2](code, id)\n ) {\n context.log(\n LogLevelLabel.TRACE,\n `Skipping filtered Babel plugin ${chalk.bold.cyanBright(\n getPluginName(plugin) || \"unnamed\"\n )} for ${id}`\n );\n\n return undefined;\n }\n\n return plugin.length > 2\n ? [resolvePluginFunction(context, plugin), plugin[1], plugin[2]]\n : [resolvePluginFunction(context, plugin), plugin[1], null];\n }\n\n return [resolvePluginFunction(context, plugin), {}, null];\n}\n","/* -------------------------------------------------------------------\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 type { GeneratorOptions, GeneratorResult } from \"@babel/generator\";\nimport _generate from \"@babel/generator\";\nimport type { ParseResult, ParserOptions } from \"@babel/parser\";\nimport { parse } from \"@babel/parser\";\nimport type * as t from \"@babel/types\";\n\n/**\n * Parse the given code into an AST.\n *\n * @param code - The code to parse.\n * @param opts - The options for parsing.\n * @returns The parsed AST.\n */\nexport function parseAst(\n code: string,\n opts: ParserOptions = {}\n): ParseResult<t.File> {\n return parse(code, {\n plugins: [\"typescript\"],\n sourceType: \"module\",\n allowImportExportEverywhere: true,\n allowAwaitOutsideFunction: true,\n ...opts\n });\n}\n\nlet generate = _generate;\nif (\"default\" in generate) {\n generate = generate.default as typeof generate;\n}\n\nexport type GenerateFromAstOptions = GeneratorOptions &\n Required<Pick<GeneratorOptions, \"sourceFileName\" | \"filename\">>;\n\nexport function generateFromAst(\n ast: t.Node,\n opts?: GenerateFromAstOptions\n): GeneratorResult {\n return generate(\n ast,\n opts\n ? { importAttributesKeyword: \"with\", sourceMaps: true, ...opts }\n : undefined\n );\n}\n\nexport type { GeneratorResult } from \"@babel/generator\";\n","/* -------------------------------------------------------------------\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 { getLogFn, getLogLevel } from \"@storm-software/config-tools/logger\";\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { getColor } from \"@storm-software/config-tools/utilities/colors\";\nimport { noop } from \"@stryke/helpers/noop\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport chalk from \"chalk\";\nimport type { LogFn, WorkspaceConfig } from \"../types\";\n\nexport interface CreateLogOptions {\n name?: string;\n logLevel?: LogLevelLabel | null;\n customLogger?: LogFn;\n colors?: WorkspaceConfig[\"colors\"];\n}\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param name - The name of the logging function.\n * @param options - The options to configure the logging function.\n * @returns A logging function.\n */\nexport const createLog = (\n name: string | null,\n options: CreateLogOptions = {}\n): LogFn => {\n const logLevel =\n options.logLevel === null\n ? LogLevelLabel.SILENT\n : options.logLevel || LogLevelLabel.INFO;\n if (logLevel === LogLevelLabel.SILENT) {\n return noop;\n }\n\n if (options.customLogger) {\n return options.customLogger;\n }\n\n return (type: LogLevelLabel, ...args: string[]) =>\n getLogFn(getLogLevel(type), {\n ...options,\n logLevel\n })(\n `${chalk.bold.hex(\n getColor(\"brand\", options as Parameters<typeof getColor>[1])\n )(\n `powerlines${name ? `:${name}` : \"\"}${\n options.name ? ` ${chalk.gray(\"> \")}${options.name}` : \"\"\n } ${chalk.gray(\"> \")}`\n )}${args.join(\" \")} `.trim()\n );\n};\n\nconst BADGE_COLORS = [\n \"#00A0DD\",\n \"#6FCE4E\",\n \"#FBBF24\",\n \"#F43F5E\",\n \"#3B82F6\",\n \"#A855F7\",\n \"#469592\",\n \"#288EDF\",\n \"#10B981\",\n \"#EF4444\",\n \"#F0EC56\",\n \"#F472B6\",\n \"#22D3EE\",\n \"#EAB308\",\n \"#84CC16\",\n \"#F87171\",\n \"#0EA5E9\",\n \"#D946EF\",\n \"#FACC15\",\n \"#34D399\"\n] as const;\n\nexport const extendLog = (logFn: LogFn, name: string): LogFn => {\n return (type: LogLevelLabel, ...args: string[]) =>\n logFn(\n type,\n ` ${chalk.inverse.hex(\n BADGE_COLORS[\n name\n .split(\"\")\n .map(char => char.charCodeAt(0))\n .reduce((ret, charCode) => ret + charCode, 0) % BADGE_COLORS.length\n ] || BADGE_COLORS[0]\n )(` ${titleCase(name)} `)} ${args.join(\" \")} `\n );\n};\n","/* -------------------------------------------------------------------\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 { declare } from \"@babel/helper-plugin-utils\";\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport chalk from \"chalk\";\nimport { extendLog } from \"powerlines/lib/logger\";\nimport {\n BabelTransformPluginBuilder,\n DeclareBabelTransformPluginReturn\n} from \"powerlines/types/babel\";\nimport { Context } from \"powerlines/types/context\";\n\n/**\n * Create a Babel plugin using the provided builder function.\n *\n * @param name - The name of the plugin.\n * @param builder - The builder function that defines the plugin behavior.\n * @returns A Babel plugin declaration.\n */\nexport function createBabelPlugin<\n TContext extends Context = Context,\n TOptions extends Record<string, any> = Record<string, any>\n>(\n name: string,\n builder: BabelTransformPluginBuilder<TContext, TOptions>\n): DeclareBabelTransformPluginReturn<TContext, TOptions> {\n const plugin = (context: TContext) => {\n return declare<TOptions>((api, options, dirname) => {\n api.cache.using(() => context.meta.checksum);\n api.assertVersion(\"^7.0.0-0\");\n\n const log = extendLog(context.log, name);\n log(\n LogLevelLabel.TRACE,\n `Initializing the ${chalk.bold.cyanBright(name)} Babel plugin`\n );\n\n const result = builder({\n log,\n name,\n api,\n options,\n context,\n dirname\n });\n result.name = name;\n\n log(\n LogLevelLabel.TRACE,\n `Completed initialization of the ${chalk.bold.cyanBright(name)} Babel plugin`\n );\n\n return result;\n });\n };\n plugin.$$name = name;\n\n return plugin;\n}\n","/* -------------------------------------------------------------------\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 { NodePath } from \"@babel/core\";\nimport { ParseResult } from \"@babel/parser\";\nimport * as t from \"@babel/types\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { ImportSpecifier } from \"powerlines/types/babel\";\nimport { parseAst } from \"./ast-utils\";\n\n/**\n * Finds an export in the given Babel AST program by its key.\n *\n * @param ast - The parsed Babel AST result containing the program body.\n * @param key - The name of the export to find (e.g., \"default\" or a named export).\n * @returns The declaration of the export if found, otherwise undefined.\n */\nexport function findExport(ast: ParseResult<t.File>, key: string) {\n const type =\n key === \"default\" ? \"ExportDefaultDeclaration\" : \"ExportNamedDeclaration\";\n\n for (const node of ast.program.body) {\n if (node.type === type) {\n if (key === \"default\") {\n return node.declaration;\n }\n if (node.declaration && \"declarations\" in node.declaration) {\n const declaration = node.declaration.declarations[0];\n if (\n declaration &&\n \"name\" in declaration.id &&\n declaration.id.name === key\n ) {\n return declaration.init as any;\n }\n }\n }\n }\n}\n\n/**\n * Lists all exports from the given Babel AST program.\n *\n * @param codeOrAst - The parsed Babel AST result containing the program body.\n * @returns An array of export names, including \"default\" for default exports.\n */\nexport function listExports(codeOrAst: ParseResult<t.File> | string) {\n const ast = isString(codeOrAst) ? parseAst(codeOrAst) : codeOrAst;\n\n return ast.program.body\n .flatMap(i => {\n if (i.type === \"ExportDefaultDeclaration\") {\n return [\"default\"];\n }\n if (\n i.type === \"ExportNamedDeclaration\" &&\n i.declaration &&\n \"declarations\" in i.declaration\n ) {\n return i.declaration.declarations.map(d =>\n \"name\" in d.id ? d.id.name : \"\"\n );\n }\n return [];\n })\n .filter(Boolean);\n}\n\n/**\n * Lists all imports from the given Babel AST program.\n *\n * @param ast - The parsed Babel AST result containing the program body.\n * @returns An array of import names, including \"default\" for default imports.\n */\nexport function listImports(ast: ParseResult<t.File> | t.File) {\n return ast.program.body\n .flatMap(i => {\n if (i.type === \"ImportDeclaration\") {\n return i.specifiers.map(s => {\n if (s.type === \"ImportDefaultSpecifier\") {\n return \"default\";\n }\n if (s.type === \"ImportSpecifier\" && \"imported\" in s) {\n return s.imported.type === \"Identifier\"\n ? s.imported.name\n : s.imported.value;\n }\n return \"\";\n });\n }\n\n return [];\n })\n .filter(Boolean);\n}\n\nexport function isImportCall(\n calleePath: NodePath<t.CallExpression | t.NewExpression>\n) {\n return t.isImport(calleePath.node.callee);\n}\n\n/**\n * Gets the import declaration for a given name and specifier.\n *\n * @param specifier - The specifier of the import.\n * @param name - The name of the import.\n * @param named - Optional named import.\n * @returns The import declaration.\n */\nexport function getImport(\n specifier: string,\n name: string,\n named?: string\n): t.ImportDeclaration {\n return t.importDeclaration(\n [t.importSpecifier(t.identifier(name), t.stringLiteral(named || name))],\n t.stringLiteral(specifier)\n );\n}\n\n/**\n * Adds an import to the program if it doesn't already exist.\n *\n * @param path - The current NodePath in the AST.\n * @param specifier - The import specifier.\n */\nexport function addImport(path: NodePath<any>, specifier: ImportSpecifier) {\n addImportsToProgram(\n path.scope.getProgramParent().path as NodePath<t.Program>,\n specifier\n );\n}\n\n/*\n * Matches `import { ... } from <moduleName>;`\n * but not `import * as React from <moduleName>;`\n * `import type { Foo } from <moduleName>;`\n */\nfunction isNonNamespacedImport(\n importDeclPath: NodePath<t.ImportDeclaration>\n): boolean {\n return (\n importDeclPath\n .get(\"specifiers\")\n .filter(Boolean)\n .every(specifier => specifier?.isImportSpecifier()) &&\n importDeclPath.node.importKind !== \"type\" &&\n importDeclPath.node.importKind !== \"typeof\"\n );\n}\n\nfunction getExistingImports(\n program: NodePath<t.Program>\n): Map<string, NodePath<t.ImportDeclaration>> {\n const existingImports = new Map<string, NodePath<t.ImportDeclaration>>();\n program.traverse({\n ImportDeclaration(path) {\n if (isNonNamespacedImport(path)) {\n existingImports.set(path.node.source.value, path);\n }\n }\n });\n return existingImports;\n}\n\nexport function addImportsToProgram(\n path: NodePath<t.Program>,\n specifier: ImportSpecifier\n): void {\n const existingImports = getExistingImports(path);\n\n /**\n * If an existing import of this module exists (ie \\`import \\{ ... \\} from\n * '<moduleName>'\\`), inject new imported specifiers into the list of\n * destructured variables.\n */\n if (!existingImports.get(specifier.module)) {\n path.unshiftContainer(\n \"body\",\n t.importDeclaration(\n [\n t.importSpecifier(\n t.identifier(specifier.name || specifier.imported),\n t.identifier(specifier.imported)\n )\n ],\n t.stringLiteral(specifier.module)\n )\n );\n }\n}\n","/* -------------------------------------------------------------------\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 { transformAsync } from \"@babel/core\";\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport {\n findFileExtension,\n findFileExtensionSafe\n} from \"@stryke/path/file-path-fns\";\nimport { isParentPath } from \"@stryke/path/is-parent-path\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport defu from \"defu\";\nimport { ResolvedBabelTransformPluginOptions } from \"powerlines/types/babel\";\nimport { UserConfig } from \"powerlines/types/config\";\nimport { Plugin } from \"powerlines/types/plugin\";\nimport { isDuplicatePlugin } from \"./helpers/filters\";\nimport { resolveBabelPlugin } from \"./helpers/options\";\nimport { BabelPluginContext, BabelPluginOptions } from \"./types/plugin\";\n\nexport * from \"./helpers\";\nexport * from \"./types\";\n\n/**\n * Babel plugin for Powerlines.\n *\n * @param options - The Babel plugin user configuration options.\n * @returns A Powerlines plugin that integrates Babel transformations.\n */\nexport const plugin = (\n options: BabelPluginOptions = {}\n): Plugin<BabelPluginContext> => {\n return {\n name: \"babel\",\n config() {\n if (!isSetObject(options)) {\n return undefined;\n }\n\n return {\n transform: { babel: options }\n } as Partial<UserConfig>;\n },\n configResolved: {\n order: \"pre\",\n handler() {\n this.devDependencies[\"@babel/core\"] = \"^7.28.4\";\n\n this.config.transform.babel = defu(this.config.transform.babel ?? {}, {\n plugins: [],\n presets: []\n });\n }\n },\n async transform(code: string, id: string) {\n if (\n isParentPath(id, this.powerlinesPath) ||\n code.includes(\"/* @storm-ignore */\") ||\n code.includes(\"/* @storm-disable */\")\n ) {\n this.log(\n LogLevelLabel.TRACE,\n `Skipping Babel transformation for: ${id}`\n );\n\n return { code, id };\n }\n\n this.log(LogLevelLabel.TRACE, `Babel transforming file: ${id}`);\n\n const plugins = this.config.transform.babel.plugins\n .map(plugin => resolveBabelPlugin(this, code, id, plugin))\n .filter(\n (plugin, _, arr) => plugin && !isDuplicatePlugin(arr, plugin)\n ) as ResolvedBabelTransformPluginOptions[];\n const presets = this.config.transform.babel.presets\n .map(preset => resolveBabelPlugin(this, code, id, preset))\n .filter(\n (preset, _, arr) => preset && !isDuplicatePlugin(arr, preset)\n ) as ResolvedBabelTransformPluginOptions[];\n\n if (\n Array.isArray(plugins) &&\n plugins.length === 0 &&\n Array.isArray(presets) &&\n presets.length === 0\n ) {\n return { code, id };\n }\n\n if (\n [\"ts\", \"cts\", \"mts\", \"tsx\"].includes(findFileExtensionSafe(id)) &&\n !isDuplicatePlugin(plugins, \"@babel/plugin-syntax-typescript\") &&\n !isDuplicatePlugin(presets, \"@babel/preset-typescript\")\n ) {\n plugins.unshift([\n \"@babel/plugin-syntax-typescript\",\n { isTSX: findFileExtension(id) === \".tsx\" }\n ]);\n }\n\n const result = await transformAsync(code, {\n highlightCode: true,\n code: true,\n ast: false,\n cloneInputAst: false,\n comments: true,\n sourceType: \"module\",\n configFile: false,\n babelrc: false,\n envName: this.config.mode,\n caller: {\n name: this.config.framework\n },\n ...(this.config.transform.babel ?? {}),\n filename: id,\n plugins: plugins\n .map(plugin => {\n return Array.isArray(plugin) && plugin.length >= 2\n ? [\n plugin[0],\n defu(plugin.length > 1 && plugin[1] ? plugin[1] : {}, {\n options\n })\n ]\n : plugin;\n })\n .filter(Boolean),\n presets: presets\n .map(preset => {\n return Array.isArray(preset) && preset.length >= 2\n ? [\n preset[0],\n defu(preset.length > 1 && preset[1] ? preset[1] : {}, {\n options\n })\n ]\n : preset;\n })\n .filter(Boolean)\n });\n if (!result?.code) {\n throw new Error(`Powerlines - Babel plugin failed to compile ${id}`);\n }\n\n return { code: result.code, id };\n }\n } as Plugin<BabelPluginContext>;\n};\n\nexport default plugin;\n","/* eslint-disable */\n// biome-ignore lint: disable\n// Generated by storm-capnpc\n// Note: Do not edit this file manually - it will be overwritten automatically\nimport * as $ from \"@stryke/capnp\";\nexport const _capnpFileId = BigInt(\"0xae3c363dcecf2729\");\nexport const ReflectionKind = {\n NEVER: 0,\n ANY: 1,\n UNKNOWN: 2,\n VOID: 3,\n OBJECT: 4,\n STRING: 5,\n NUMBER: 6,\n BOOLEAN: 7,\n SYMBOL: 8,\n BIGINT: 9,\n NULL: 10,\n UNDEFINED: 11,\n REGEXP: 12,\n LITERAL: 13,\n TEMPLATE_LITERAL: 14,\n PROPERTY: 15,\n METHOD: 16,\n FUNCTION: 17,\n PARAMETER: 18,\n PROMISE: 19,\n CLASS: 20,\n TYPE_PARAMETER: 21,\n ENUM: 22,\n UNION: 23,\n INTERSECTION: 24,\n ARRAY: 25,\n TUPLE: 26,\n TUPLE_MEMBER: 27,\n ENUM_MEMBER: 28,\n REST: 29,\n OBJECT_LITERAL: 30,\n INDEX_SIGNATURE: 31,\n PROPERTY_SIGNATURE: 32,\n METHOD_SIGNATURE: 33,\n INFER: 34,\n CALL_SIGNATURE: 35\n} as const;\nexport type ReflectionKind = (typeof ReflectionKind)[keyof typeof ReflectionKind];\nexport const ReflectionVisibility = {\n PUBLIC: 0,\n PROTECTED: 1,\n PRIVATE: 2\n} as const;\nexport type ReflectionVisibility = (typeof ReflectionVisibility)[keyof typeof ReflectionVisibility];\nexport class TagsReflection extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"TagsReflection\",\n id: \"ab7e31d6b834bbf8\",\n size: new $.ObjectSize(8, 4),\n };\n _adoptAlias(value: $.Orphan<$.List<string>>): void {\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownAlias(): $.Orphan<$.List<string>> {\n return $.utils.disown(this.alias);\n }\n get alias(): $.List<string> {\n return $.utils.getList(0, $.TextList, this);\n }\n _hasAlias(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initAlias(length: number): $.List<string> {\n return $.utils.initList(0, $.TextList, length, this);\n }\n set alias(value: $.List<string>) {\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n get title(): string {\n return $.utils.getText(1, this);\n }\n set title(value: string) {\n $.utils.setText(1, value, this);\n }\n get hidden(): boolean {\n return $.utils.getBit(0, this);\n }\n set hidden(value: boolean) {\n $.utils.setBit(0, value, this);\n }\n get readonly(): boolean {\n return $.utils.getBit(1, this);\n }\n set readonly(value: boolean) {\n $.utils.setBit(1, value, this);\n }\n get ignore(): boolean {\n return $.utils.getBit(2, this);\n }\n set ignore(value: boolean) {\n $.utils.setBit(2, value, this);\n }\n get internal(): boolean {\n return $.utils.getBit(3, this);\n }\n set internal(value: boolean) {\n $.utils.setBit(3, value, this);\n }\n _adoptPermission(value: $.Orphan<$.List<string>>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownPermission(): $.Orphan<$.List<string>> {\n return $.utils.disown(this.permission);\n }\n get permission(): $.List<string> {\n return $.utils.getList(2, $.TextList, this);\n }\n _hasPermission(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initPermission(length: number): $.List<string> {\n return $.utils.initList(2, $.TextList, length, this);\n }\n set permission(value: $.List<string>) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n get domain(): string {\n return $.utils.getText(3, this);\n }\n set domain(value: string) {\n $.utils.setText(3, value, this);\n }\n public override toString(): string { return \"TagsReflection_\" + super.toString(); }\n}\nexport const DefaultValueReflection_Value_Which = {\n UNDEFINED: 0,\n BOOLEAN: 1,\n INTEGER: 2,\n FLOAT: 3,\n STRING: 4\n} as const;\nexport type DefaultValueReflection_Value_Which = (typeof DefaultValueReflection_Value_Which)[keyof typeof DefaultValueReflection_Value_Which];\nexport class DefaultValueReflection_Value extends $.Struct {\n static readonly UNDEFINED = DefaultValueReflection_Value_Which.UNDEFINED;\n static readonly BOOLEAN = DefaultValueReflection_Value_Which.BOOLEAN;\n static readonly INTEGER = DefaultValueReflection_Value_Which.INTEGER;\n static readonly FLOAT = DefaultValueReflection_Value_Which.FLOAT;\n static readonly STRING = DefaultValueReflection_Value_Which.STRING;\n public static override readonly _capnp = {\n displayName: \"value\",\n id: \"8748135e0497fe81\",\n size: new $.ObjectSize(16, 1),\n };\n get _isUndefined(): boolean {\n return $.utils.getUint16(0, this) === 0;\n }\n set undefined(_: true) {\n $.utils.setUint16(0, 0, this);\n }\n get boolean(): boolean {\n $.utils.testWhich(\"boolean\", $.utils.getUint16(0, this), 1, this);\n return $.utils.getBit(16, this);\n }\n get _isBoolean(): boolean {\n return $.utils.getUint16(0, this) === 1;\n }\n set boolean(value: boolean) {\n $.utils.setUint16(0, 1, this);\n $.utils.setBit(16, value, this);\n }\n get integer(): number {\n $.utils.testWhich(\"integer\", $.utils.getUint16(0, this), 2, this);\n return $.utils.getInt32(4, this);\n }\n get _isInteger(): boolean {\n return $.utils.getUint16(0, this) === 2;\n }\n set integer(value: number) {\n $.utils.setUint16(0, 2, this);\n $.utils.setInt32(4, value, this);\n }\n get float(): number {\n $.utils.testWhich(\"float\", $.utils.getUint16(0, this), 3, this);\n return $.utils.getFloat64(8, this);\n }\n get _isFloat(): boolean {\n return $.utils.getUint16(0, this) === 3;\n }\n set float(value: number) {\n $.utils.setUint16(0, 3, this);\n $.utils.setFloat64(8, value, this);\n }\n get string(): string {\n $.utils.testWhich(\"string\", $.utils.getUint16(0, this), 4, this);\n return $.utils.getText(0, this);\n }\n get _isString(): boolean {\n return $.utils.getUint16(0, this) === 4;\n }\n set string(value: string) {\n $.utils.setUint16(0, 4, this);\n $.utils.setText(0, value, this);\n }\n public override toString(): string { return \"DefaultValueReflection_Value_\" + super.toString(); }\n which(): DefaultValueReflection_Value_Which {\n return $.utils.getUint16(0, this) as DefaultValueReflection_Value_Which;\n }\n}\nexport class DefaultValueReflection extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"DefaultValueReflection\",\n id: \"96fe6f07954197c9\",\n size: new $.ObjectSize(16, 1),\n };\n get value(): DefaultValueReflection_Value {\n return $.utils.getAs(DefaultValueReflection_Value, this);\n }\n _initValue(): DefaultValueReflection_Value {\n return $.utils.getAs(DefaultValueReflection_Value, this);\n }\n public override toString(): string { return \"DefaultValueReflection_\" + super.toString(); }\n}\nexport class SerializedTypeReference extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeReference\",\n id: \"a83d8a28b5e80f3a\",\n size: new $.ObjectSize(8, 0),\n };\n get id(): number {\n return $.utils.getUint32(0, this);\n }\n set id(value: number) {\n $.utils.setUint32(0, value, this);\n }\n public override toString(): string { return \"SerializedTypeReference_\" + super.toString(); }\n}\nexport class IndexAccessOrigin extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"IndexAccessOrigin\",\n id: \"ca50b18186c87afe\",\n size: new $.ObjectSize(0, 2),\n };\n _adoptContainer(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownContainer(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.container);\n }\n get container(): SerializedTypeReference {\n return $.utils.getStruct(0, SerializedTypeReference, this);\n }\n _hasContainer(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initContainer(): SerializedTypeReference {\n return $.utils.initStructAt(0, SerializedTypeReference, this);\n }\n set container(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptIndex(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownIndex(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.index);\n }\n get index(): SerializedTypeReference {\n return $.utils.getStruct(1, SerializedTypeReference, this);\n }\n _hasIndex(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initIndex(): SerializedTypeReference {\n return $.utils.initStructAt(1, SerializedTypeReference, this);\n }\n set index(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n public override toString(): string { return \"IndexAccessOrigin_\" + super.toString(); }\n}\nexport class EntityOptions_EntityIndexOptions extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"EntityIndexOptions\",\n id: \"de584ad10b7c5004\",\n size: new $.ObjectSize(0, 2),\n };\n _adoptNames(value: $.Orphan<$.List<string>>): void {\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownNames(): $.Orphan<$.List<string>> {\n return $.utils.disown(this.names);\n }\n get names(): $.List<string> {\n return $.utils.getList(0, $.TextList, this);\n }\n _hasNames(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initNames(length: number): $.List<string> {\n return $.utils.initList(0, $.TextList, length, this);\n }\n set names(value: $.List<string>) {\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n /**\n* JSON stringified options\n*\n*/\n get options(): string {\n return $.utils.getText(1, this);\n }\n set options(value: string) {\n $.utils.setText(1, value, this);\n }\n public override toString(): string { return \"EntityOptions_EntityIndexOptions_\" + super.toString(); }\n}\nexport class EntityOptions extends $.Struct {\n static readonly EntityIndexOptions = EntityOptions_EntityIndexOptions;\n public static override readonly _capnp = {\n displayName: \"EntityOptions\",\n id: \"948d2d02cf676d60\",\n size: new $.ObjectSize(8, 5),\n };\n static _Indexes: $.ListCtor<EntityOptions_EntityIndexOptions>;\n get name(): string {\n return $.utils.getText(0, this);\n }\n set name(value: string) {\n $.utils.setText(0, value, this);\n }\n get description(): string {\n return $.utils.getText(1, this);\n }\n set description(value: string) {\n $.utils.setText(1, value, this);\n }\n get collection(): string {\n return $.utils.getText(2, this);\n }\n set collection(value: string) {\n $.utils.setText(2, value, this);\n }\n get database(): string {\n return $.utils.getText(3, this);\n }\n set database(value: string) {\n $.utils.setText(3, value, this);\n }\n get singleTableInheritance(): boolean {\n return $.utils.getBit(0, this);\n }\n set singleTableInheritance(value: boolean) {\n $.utils.setBit(0, value, this);\n }\n _adoptIndexes(value: $.Orphan<$.List<EntityOptions_EntityIndexOptions>>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownIndexes(): $.Orphan<$.List<EntityOptions_EntityIndexOptions>> {\n return $.utils.disown(this.indexes);\n }\n get indexes(): $.List<EntityOptions_EntityIndexOptions> {\n return $.utils.getList(4, EntityOptions._Indexes, this);\n }\n _hasIndexes(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initIndexes(length: number): $.List<EntityOptions_EntityIndexOptions> {\n return $.utils.initList(4, EntityOptions._Indexes, length, this);\n }\n set indexes(value: $.List<EntityOptions_EntityIndexOptions>) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n public override toString(): string { return \"EntityOptions_\" + super.toString(); }\n}\nexport class SerializedTypeObjectLiteral extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeObjectLiteral\",\n id: \"8b56235ad9bcb2b1\",\n size: new $.ObjectSize(8, 6),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n static _Types: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeObjectLiteral._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeObjectLiteral._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeObjectLiteral._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeObjectLiteral._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n _adoptTypes(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTypes(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.types);\n }\n get types(): $.List<SerializedTypeReference> {\n return $.utils.getList(4, SerializedTypeObjectLiteral._Types, this);\n }\n _hasTypes(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTypes(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(4, SerializedTypeObjectLiteral._Types, length, this);\n }\n set types(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n _adoptTags(value: $.Orphan<TagsReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(5, this));\n }\n _disownTags(): $.Orphan<TagsReflection> {\n return $.utils.disown(this.tags);\n }\n get tags(): TagsReflection {\n return $.utils.getStruct(5, TagsReflection, this);\n }\n _hasTags(): boolean {\n return !$.utils.isNull($.utils.getPointer(5, this));\n }\n _initTags(): TagsReflection {\n return $.utils.initStructAt(5, TagsReflection, this);\n }\n set tags(value: TagsReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(5, this));\n }\n public override toString(): string { return \"SerializedTypeObjectLiteral_\" + super.toString(); }\n}\nexport class SerializedTypeClassType extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeClassType\",\n id: \"9855392bf9c48b25\",\n size: new $.ObjectSize(8, 11),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n static _ExtendsArguments: $.ListCtor<SerializedTypeReference>;\n static _Arguments: $.ListCtor<SerializedTypeReference>;\n static _Types: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeClassType._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeClassType._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeClassType._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeClassType._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n get name(): string {\n return $.utils.getText(4, this);\n }\n set name(value: string) {\n $.utils.setText(4, value, this);\n }\n get globalObject(): boolean {\n return $.utils.getBit(16, this);\n }\n set globalObject(value: boolean) {\n $.utils.setBit(16, value, this);\n }\n get classType(): string {\n return $.utils.getText(5, this);\n }\n set classType(value: string) {\n $.utils.setText(5, value, this);\n }\n _adoptExtendsArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownExtendsArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.extendsArguments);\n }\n get extendsArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(6, SerializedTypeClassType._ExtendsArguments, this);\n }\n _hasExtendsArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initExtendsArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(6, SerializedTypeClassType._ExtendsArguments, length, this);\n }\n set extendsArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.arguments);\n }\n get arguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(7, SerializedTypeClassType._Arguments, this);\n }\n _hasArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(7, SerializedTypeClassType._Arguments, length, this);\n }\n set arguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n _adoptSuperClass(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(8, this));\n }\n _disownSuperClass(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.superClass);\n }\n get superClass(): SerializedTypeReference {\n return $.utils.getStruct(8, SerializedTypeReference, this);\n }\n _hasSuperClass(): boolean {\n return !$.utils.isNull($.utils.getPointer(8, this));\n }\n _initSuperClass(): SerializedTypeReference {\n return $.utils.initStructAt(8, SerializedTypeReference, this);\n }\n set superClass(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(8, this));\n }\n _adoptTypes(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(9, this));\n }\n _disownTypes(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.types);\n }\n get types(): $.List<SerializedTypeReference> {\n return $.utils.getList(9, SerializedTypeClassType._Types, this);\n }\n _hasTypes(): boolean {\n return !$.utils.isNull($.utils.getPointer(9, this));\n }\n _initTypes(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(9, SerializedTypeClassType._Types, length, this);\n }\n set types(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(9, this));\n }\n _adoptTags(value: $.Orphan<TagsReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(10, this));\n }\n _disownTags(): $.Orphan<TagsReflection> {\n return $.utils.disown(this.tags);\n }\n get tags(): TagsReflection {\n return $.utils.getStruct(10, TagsReflection, this);\n }\n _hasTags(): boolean {\n return !$.utils.isNull($.utils.getPointer(10, this));\n }\n _initTags(): TagsReflection {\n return $.utils.initStructAt(10, TagsReflection, this);\n }\n set tags(value: TagsReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(10, this));\n }\n public override toString(): string { return \"SerializedTypeClassType_\" + super.toString(); }\n}\nexport class SerializedTypeParameter extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeParameter\",\n id: \"fcbaa08bb97b8b1a\",\n size: new $.ObjectSize(8, 8),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeParameter._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeParameter._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeParameter._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeParameter._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n get name(): string {\n return $.utils.getText(4, this);\n }\n set name(value: string) {\n $.utils.setText(4, value, this);\n }\n _adoptType(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(5, this));\n }\n _disownType(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.type);\n }\n get type(): SerializedTypeReference {\n return $.utils.getStruct(5, SerializedTypeReference, this);\n }\n _hasType(): boolean {\n return !$.utils.isNull($.utils.getPointer(5, this));\n }\n _initType(): SerializedTypeReference {\n return $.utils.initStructAt(5, SerializedTypeReference, this);\n }\n set type(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(5, this));\n }\n get visibility(): ReflectionVisibility {\n return $.utils.getUint16(2, this) as ReflectionVisibility;\n }\n set visibility(value: ReflectionVisibility) {\n $.utils.setUint16(2, value, this);\n }\n get readonly(): boolean {\n return $.utils.getBit(32, this);\n }\n set readonly(value: boolean) {\n $.utils.setBit(32, value, this);\n }\n get optional(): boolean {\n return $.utils.getBit(33, this);\n }\n set optional(value: boolean) {\n $.utils.setBit(33, value, this);\n }\n _adoptDefault(value: $.Orphan<DefaultValueReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownDefault(): $.Orphan<DefaultValueReflection> {\n return $.utils.disown(this.default);\n }\n get default(): DefaultValueReflection {\n return $.utils.getStruct(6, DefaultValueReflection, this);\n }\n _hasDefault(): boolean {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initDefault(): DefaultValueReflection {\n return $.utils.initStructAt(6, DefaultValueReflection, this);\n }\n set default(value: DefaultValueReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptTags(value: $.Orphan<TagsReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownTags(): $.Orphan<TagsReflection> {\n return $.utils.disown(this.tags);\n }\n get tags(): TagsReflection {\n return $.utils.getStruct(7, TagsReflection, this);\n }\n _hasTags(): boolean {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initTags(): TagsReflection {\n return $.utils.initStructAt(7, TagsReflection, this);\n }\n set tags(value: TagsReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n public override toString(): string { return \"SerializedTypeParameter_\" + super.toString(); }\n}\nexport class SerializedTypeMethod extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeMethod\",\n id: \"8b5eff6d9ec2fb06\",\n size: new $.ObjectSize(8, 8),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n static _Parameters: $.ListCtor<SerializedTypeParameter>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeMethod._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeMethod._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeMethod._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeMethod._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get visibility(): ReflectionVisibility {\n return $.utils.getUint16(0, this) as ReflectionVisibility;\n }\n set visibility(value: ReflectionVisibility) {\n $.utils.setUint16(0, value, this);\n }\n get abstract(): boolean {\n return $.utils.getBit(16, this);\n }\n set abstract(value: boolean) {\n $.utils.setBit(16, value, this);\n }\n get optional(): boolean {\n return $.utils.getBit(17, this);\n }\n set optional(value: boolean) {\n $.utils.setBit(17, value, this);\n }\n get readonly(): boolean {\n return $.utils.getBit(18, this);\n }\n set readonly(value: boolean) {\n $.utils.setBit(18, value, this);\n }\n _adoptTags(value: $.Orphan<TagsReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTags(): $.Orphan<TagsReflection> {\n return $.utils.disown(this.tags);\n }\n get tags(): TagsReflection {\n return $.utils.getStruct(4, TagsReflection, this);\n }\n _hasTags(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTags(): TagsReflection {\n return $.utils.initStructAt(4, TagsReflection, this);\n }\n set tags(value: TagsReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(4, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(4, value, this);\n }\n get name(): string {\n return $.utils.getText(5, this);\n }\n set name(value: string) {\n $.utils.setText(5, value, this);\n }\n _adoptParameters(value: $.Orphan<$.List<SerializedTypeParameter>>): void {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownParameters(): $.Orphan<$.List<SerializedTypeParameter>> {\n return $.utils.disown(this.parameters);\n }\n get parameters(): $.List<SerializedTypeParameter> {\n return $.utils.getList(6, SerializedTypeMethod._Parameters, this);\n }\n _hasParameters(): boolean {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initParameters(length: number): $.List<SerializedTypeParameter> {\n return $.utils.initList(6, SerializedTypeMethod._Parameters, length, this);\n }\n set parameters(value: $.List<SerializedTypeParameter>) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptReturn(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownReturn(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.return);\n }\n get return(): SerializedTypeReference {\n return $.utils.getStruct(7, SerializedTypeReference, this);\n }\n _hasReturn(): boolean {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initReturn(): SerializedTypeReference {\n return $.utils.initStructAt(7, SerializedTypeReference, this);\n }\n set return(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n public override toString(): string { return \"SerializedTypeMethod_\" + super.toString(); }\n}\nexport class SerializedTypeProperty extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeProperty\",\n id: \"91d9dbea2037f78b\",\n size: new $.ObjectSize(8, 9),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeProperty._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeProperty._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeProperty._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeProperty._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get visibility(): ReflectionVisibility {\n return $.utils.getUint16(0, this) as ReflectionVisibility;\n }\n set visibility(value: ReflectionVisibility) {\n $.utils.setUint16(0, value, this);\n }\n get abstract(): boolean {\n return $.utils.getBit(16, this);\n }\n set abstract(value: boolean) {\n $.utils.setBit(16, value, this);\n }\n get optional(): boolean {\n return $.utils.getBit(17, this);\n }\n set optional(value: boolean) {\n $.utils.setBit(17, value, this);\n }\n get readonly(): boolean {\n return $.utils.getBit(18, this);\n }\n set readonly(value: boolean) {\n $.utils.setBit(18, value, this);\n }\n _adoptTags(value: $.Orphan<TagsReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTags(): $.Orphan<TagsReflection> {\n return $.utils.disown(this.tags);\n }\n get tags(): TagsReflection {\n return $.utils.getStruct(4, TagsReflection, this);\n }\n _hasTags(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTags(): TagsReflection {\n return $.utils.initStructAt(4, TagsReflection, this);\n }\n set tags(value: TagsReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(4, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(4, value, this);\n }\n get name(): string {\n return $.utils.getText(5, this);\n }\n set name(value: string) {\n $.utils.setText(5, value, this);\n }\n get description(): string {\n return $.utils.getText(6, this);\n }\n set description(value: string) {\n $.utils.setText(6, value, this);\n }\n _adoptType(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownType(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.type);\n }\n get type(): SerializedTypeReference {\n return $.utils.getStruct(7, SerializedTypeReference, this);\n }\n _hasType(): boolean {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initType(): SerializedTypeReference {\n return $.utils.initStructAt(7, SerializedTypeReference, this);\n }\n set type(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n _adoptDefault(value: $.Orphan<DefaultValueReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(8, this));\n }\n _disownDefault(): $.Orphan<DefaultValueReflection> {\n return $.utils.disown(this.default);\n }\n get default(): DefaultValueReflection {\n return $.utils.getStruct(8, DefaultValueReflection, this);\n }\n _hasDefault(): boolean {\n return !$.utils.isNull($.utils.getPointer(8, this));\n }\n _initDefault(): DefaultValueReflection {\n return $.utils.initStructAt(8, DefaultValueReflection, this);\n }\n set default(value: DefaultValueReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(8, this));\n }\n public override toString(): string { return \"SerializedTypeProperty_\" + super.toString(); }\n}\nexport class SerializedTypeFunction extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeFunction\",\n id: \"9130bccd82dfcfd4\",\n size: new $.ObjectSize(8, 8),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n static _Parameters: $.ListCtor<SerializedTypeParameter>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeFunction._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeFunction._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeFunction._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeFunction._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get visibility(): ReflectionVisibility {\n return $.utils.getUint16(0, this) as ReflectionVisibility;\n }\n set visibility(value: ReflectionVisibility) {\n $.utils.setUint16(0, value, this);\n }\n get abstract(): boolean {\n return $.utils.getBit(16, this);\n }\n set abstract(value: boolean) {\n $.utils.setBit(16, value, this);\n }\n get optional(): boolean {\n return $.utils.getBit(17, this);\n }\n set optional(value: boolean) {\n $.utils.setBit(17, value, this);\n }\n get readonly(): boolean {\n return $.utils.getBit(18, this);\n }\n set readonly(value: boolean) {\n $.utils.setBit(18, value, this);\n }\n _adoptTags(value: $.Orphan<TagsReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTags(): $.Orphan<TagsReflection> {\n return $.utils.disown(this.tags);\n }\n get tags(): TagsReflection {\n return $.utils.getStruct(4, TagsReflection, this);\n }\n _hasTags(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTags(): TagsReflection {\n return $.utils.initStructAt(4, TagsReflection, this);\n }\n set tags(value: TagsReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(4, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(4, value, this);\n }\n get name(): string {\n return $.utils.getText(5, this);\n }\n set name(value: string) {\n $.utils.setText(5, value, this);\n }\n _adoptParameters(value: $.Orphan<$.List<SerializedTypeParameter>>): void {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownParameters(): $.Orphan<$.List<SerializedTypeParameter>> {\n return $.utils.disown(this.parameters);\n }\n get parameters(): $.List<SerializedTypeParameter> {\n return $.utils.getList(6, SerializedTypeFunction._Parameters, this);\n }\n _hasParameters(): boolean {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initParameters(length: number): $.List<SerializedTypeParameter> {\n return $.utils.initList(6, SerializedTypeFunction._Parameters, length, this);\n }\n set parameters(value: $.List<SerializedTypeParameter>) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptReturn(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownReturn(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.return);\n }\n get return(): SerializedTypeReference {\n return $.utils.getStruct(7, SerializedTypeReference, this);\n }\n _hasReturn(): boolean {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initReturn(): SerializedTypeReference {\n return $.utils.initStructAt(7, SerializedTypeReference, this);\n }\n set return(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n public override toString(): string { return \"SerializedTypeFunction_\" + super.toString(); }\n}\nexport class SerializedTypePromise extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypePromise\",\n id: \"e9b0cbe936a42398\",\n size: new $.ObjectSize(8, 4),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypePromise._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypePromise._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypePromise._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypePromise._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get visibility(): ReflectionVisibility {\n return $.utils.getUint16(0, this) as ReflectionVisibility;\n }\n set visibility(value: ReflectionVisibility) {\n $.utils.setUint16(0, value, this);\n }\n get abstract(): boolean {\n return $.utils.getBit(16, this);\n }\n set abstract(value: boolean) {\n $.utils.setBit(16, value, this);\n }\n public override toString(): string { return \"SerializedTypePromise_\" + super.toString(); }\n}\nexport class SerializedTypeEnumEntry extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeEnumEntry\",\n id: \"d5bcb8b7c49ba556\",\n size: new $.ObjectSize(0, 2),\n };\n get name(): string {\n return $.utils.getText(0, this);\n }\n set name(value: string) {\n $.utils.setText(0, value, this);\n }\n get value(): string {\n return $.utils.getText(1, this);\n }\n set value(value: string) {\n $.utils.setText(1, value, this);\n }\n public override toString(): string { return \"SerializedTypeEnumEntry_\" + super.toString(); }\n}\nexport class SerializedTypeEnum extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeEnum\",\n id: \"d7d36f0ae79e3841\",\n size: new $.ObjectSize(8, 8),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n static _EnumEntries: $.ListCtor<SerializedTypeEnumEntry>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeEnum._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeEnum._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeEnum._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeEnum._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n _adoptEnumEntries(value: $.Orphan<$.List<SerializedTypeEnumEntry>>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownEnumEntries(): $.Orphan<$.List<SerializedTypeEnumEntry>> {\n return $.utils.disown(this.enumEntries);\n }\n get enumEntries(): $.List<SerializedTypeEnumEntry> {\n return $.utils.getList(4, SerializedTypeEnum._EnumEntries, this);\n }\n _hasEnumEntries(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initEnumEntries(length: number): $.List<SerializedTypeEnumEntry> {\n return $.utils.initList(4, SerializedTypeEnum._EnumEntries, length, this);\n }\n set enumEntries(value: $.List<SerializedTypeEnumEntry>) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n _adoptValues(value: $.Orphan<$.List<string>>): void {\n $.utils.adopt(value, $.utils.getPointer(5, this));\n }\n _disownValues(): $.Orphan<$.List<string>> {\n return $.utils.disown(this.values);\n }\n get values(): $.List<string> {\n return $.utils.getList(5, $.TextList, this);\n }\n _hasValues(): boolean {\n return !$.utils.isNull($.utils.getPointer(5, this));\n }\n _initValues(length: number): $.List<string> {\n return $.utils.initList(5, $.TextList, length, this);\n }\n set values(value: $.List<string>) {\n $.utils.copyFrom(value, $.utils.getPointer(5, this));\n }\n _adoptIndexType(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownIndexType(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.indexType);\n }\n get indexType(): SerializedTypeReference {\n return $.utils.getStruct(6, SerializedTypeReference, this);\n }\n _hasIndexType(): boolean {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initIndexType(): SerializedTypeReference {\n return $.utils.initStructAt(6, SerializedTypeReference, this);\n }\n set indexType(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptTags(value: $.Orphan<TagsReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownTags(): $.Orphan<TagsReflection> {\n return $.utils.disown(this.tags);\n }\n get tags(): TagsReflection {\n return $.utils.getStruct(7, TagsReflection, this);\n }\n _hasTags(): boolean {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initTags(): TagsReflection {\n return $.utils.initStructAt(7, TagsReflection, this);\n }\n set tags(value: TagsReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n public override toString(): string { return \"SerializedTypeEnum_\" + super.toString(); }\n}\nexport class SerializedTypeUnion extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeUnion\",\n id: \"a9ae4c95e41ff4ab\",\n size: new $.ObjectSize(8, 5),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n static _Types: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeUnion._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeUnion._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeUnion._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeUnion._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n _adoptTypes(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTypes(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.types);\n }\n get types(): $.List<SerializedTypeReference> {\n return $.utils.getList(4, SerializedTypeUnion._Types, this);\n }\n _hasTypes(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTypes(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(4, SerializedTypeUnion._Types, length, this);\n }\n set types(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n public override toString(): string { return \"SerializedTypeUnion_\" + super.toString(); }\n}\nexport class SerializedTypeIntersection extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeIntersection\",\n id: \"9ae42bd17511c09b\",\n size: new $.ObjectSize(8, 5),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n static _Types: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeIntersection._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeIntersection._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeIntersection._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeIntersection._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n _adoptTypes(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTypes(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.types);\n }\n get types(): $.List<SerializedTypeReference> {\n return $.utils.getList(4, SerializedTypeIntersection._Types, this);\n }\n _hasTypes(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTypes(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(4, SerializedTypeIntersection._Types, length, this);\n }\n set types(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n public override toString(): string { return \"SerializedTypeIntersection_\" + super.toString(); }\n}\nexport class SerializedTypeArray extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeArray\",\n id: \"97d1d75240151501\",\n size: new $.ObjectSize(8, 6),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeArray._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeArray._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeArray._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeArray._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n _adoptType(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownType(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.type);\n }\n get type(): SerializedTypeReference {\n return $.utils.getStruct(4, SerializedTypeReference, this);\n }\n _hasType(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initType(): SerializedTypeReference {\n return $.utils.initStructAt(4, SerializedTypeReference, this);\n }\n set type(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n _adoptTags(value: $.Orphan<TagsReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(5, this));\n }\n _disownTags(): $.Orphan<TagsReflection> {\n return $.utils.disown(this.tags);\n }\n get tags(): TagsReflection {\n return $.utils.getStruct(5, TagsReflection, this);\n }\n _hasTags(): boolean {\n return !$.utils.isNull($.utils.getPointer(5, this));\n }\n _initTags(): TagsReflection {\n return $.utils.initStructAt(5, TagsReflection, this);\n }\n set tags(value: TagsReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(5, this));\n }\n public override toString(): string { return \"SerializedTypeArray_\" + super.toString(); }\n}\nexport class SerializedTypeIndexSignature extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeIndexSignature\",\n id: \"93e335e2756821d8\",\n size: new $.ObjectSize(8, 6),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeIndexSignature._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeIndexSignature._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeIndexSignature._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeIndexSignature._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n _adoptIndex(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownIndex(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.index);\n }\n get index(): SerializedTypeReference {\n return $.utils.getStruct(4, SerializedTypeReference, this);\n }\n _hasIndex(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initIndex(): SerializedTypeReference {\n return $.utils.initStructAt(4, SerializedTypeReference, this);\n }\n set index(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n _adoptType(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(5, this));\n }\n _disownType(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.type);\n }\n get type(): SerializedTypeReference {\n return $.utils.getStruct(5, SerializedTypeReference, this);\n }\n _hasType(): boolean {\n return !$.utils.isNull($.utils.getPointer(5, this));\n }\n _initType(): SerializedTypeReference {\n return $.utils.initStructAt(5, SerializedTypeReference, this);\n }\n set type(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(5, this));\n }\n public override toString(): string { return \"SerializedTypeIndexSignature_\" + super.toString(); }\n}\nexport class SerializedTypePropertySignature extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypePropertySignature\",\n id: \"9bc1cebd2ca1569a\",\n size: new $.ObjectSize(8, 9),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypePropertySignature._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypePropertySignature._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypePropertySignature._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypePropertySignature._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n get name(): string {\n return $.utils.getText(4, this);\n }\n set name(value: string) {\n $.utils.setText(4, value, this);\n }\n get optional(): boolean {\n return $.utils.getBit(16, this);\n }\n set optional(value: boolean) {\n $.utils.setBit(16, value, this);\n }\n get readonly(): boolean {\n return $.utils.getBit(17, this);\n }\n set readonly(value: boolean) {\n $.utils.setBit(17, value, this);\n }\n get description(): string {\n return $.utils.getText(5, this);\n }\n set description(value: string) {\n $.utils.setText(5, value, this);\n }\n _adoptDefault(value: $.Orphan<DefaultValueReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownDefault(): $.Orphan<DefaultValueReflection> {\n return $.utils.disown(this.default);\n }\n get default(): DefaultValueReflection {\n return $.utils.getStruct(6, DefaultValueReflection, this);\n }\n _hasDefault(): boolean {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initDefault(): DefaultValueReflection {\n return $.utils.initStructAt(6, DefaultValueReflection, this);\n }\n set default(value: DefaultValueReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptType(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownType(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.type);\n }\n get type(): SerializedTypeReference {\n return $.utils.getStruct(7, SerializedTypeReference, this);\n }\n _hasType(): boolean {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initType(): SerializedTypeReference {\n return $.utils.initStructAt(7, SerializedTypeReference, this);\n }\n set type(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n _adoptTags(value: $.Orphan<TagsReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(8, this));\n }\n _disownTags(): $.Orphan<TagsReflection> {\n return $.utils.disown(this.tags);\n }\n get tags(): TagsReflection {\n return $.utils.getStruct(8, TagsReflection, this);\n }\n _hasTags(): boolean {\n return !$.utils.isNull($.utils.getPointer(8, this));\n }\n _initTags(): TagsReflection {\n return $.utils.initStructAt(8, TagsReflection, this);\n }\n set tags(value: TagsReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(8, this));\n }\n public override toString(): string { return \"SerializedTypePropertySignature_\" + super.toString(); }\n}\nexport class SerializedTypeMethodSignature extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeMethodSignature\",\n id: \"e25a2cc39d5930c8\",\n size: new $.ObjectSize(8, 8),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n static _Parameters: $.ListCtor<SerializedTypeParameter>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeMethodSignature._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeMethodSignature._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeMethodSignature._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeMethodSignature._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n get name(): string {\n return $.utils.getText(4, this);\n }\n set name(value: string) {\n $.utils.setText(4, value, this);\n }\n get optional(): boolean {\n return $.utils.getBit(16, this);\n }\n set optional(value: boolean) {\n $.utils.setBit(16, value, this);\n }\n _adoptParameters(value: $.Orphan<$.List<SerializedTypeParameter>>): void {\n $.utils.adopt(value, $.utils.getPointer(5, this));\n }\n _disownParameters(): $.Orphan<$.List<SerializedTypeParameter>> {\n return $.utils.disown(this.parameters);\n }\n get parameters(): $.List<SerializedTypeParameter> {\n return $.utils.getList(5, SerializedTypeMethodSignature._Parameters, this);\n }\n _hasParameters(): boolean {\n return !$.utils.isNull($.utils.getPointer(5, this));\n }\n _initParameters(length: number): $.List<SerializedTypeParameter> {\n return $.utils.initList(5, SerializedTypeMethodSignature._Parameters, length, this);\n }\n set parameters(value: $.List<SerializedTypeParameter>) {\n $.utils.copyFrom(value, $.utils.getPointer(5, this));\n }\n _adoptReturn(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownReturn(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.return);\n }\n get return(): SerializedTypeReference {\n return $.utils.getStruct(6, SerializedTypeReference, this);\n }\n _hasReturn(): boolean {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initReturn(): SerializedTypeReference {\n return $.utils.initStructAt(6, SerializedTypeReference, this);\n }\n set return(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptTags(value: $.Orphan<TagsReflection>): void {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownTags(): $.Orphan<TagsReflection> {\n return $.utils.disown(this.tags);\n }\n get tags(): TagsReflection {\n return $.utils.getStruct(7, TagsReflection, this);\n }\n _hasTags(): boolean {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initTags(): TagsReflection {\n return $.utils.initStructAt(7, TagsReflection, this);\n }\n set tags(value: TagsReflection) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n public override toString(): string { return \"SerializedTypeMethodSignature_\" + super.toString(); }\n}\nexport class SerializedTypeTypeParameter extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeTypeParameter\",\n id: \"81210361a54d5d71\",\n size: new $.ObjectSize(8, 5),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeTypeParameter._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeTypeParameter._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeTypeParameter._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeTypeParameter._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n get name(): string {\n return $.utils.getText(4, this);\n }\n set name(value: string) {\n $.utils.setText(4, value, this);\n }\n public override toString(): string { return \"SerializedTypeTypeParameter_\" + super.toString(); }\n}\nexport class SerializedTypeInfer extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeInfer\",\n id: \"91c6dd1e13f2b14d\",\n size: new $.ObjectSize(8, 4),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeInfer._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeInfer._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeInfer._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeInfer._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n public override toString(): string { return \"SerializedTypeInfer_\" + super.toString(); }\n}\nexport class SerializedTypeTupleMember extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeTupleMember\",\n id: \"e21c2a18d0d56fdf\",\n size: new $.ObjectSize(8, 6),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeTupleMember._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeTupleMember._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeTupleMember._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeTupleMember._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n _adoptType(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownType(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.type);\n }\n get type(): SerializedTypeReference {\n return $.utils.getStruct(4, SerializedTypeReference, this);\n }\n _hasType(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initType(): SerializedTypeReference {\n return $.utils.initStructAt(4, SerializedTypeReference, this);\n }\n set type(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n get optional(): boolean {\n return $.utils.getBit(16, this);\n }\n set optional(value: boolean) {\n $.utils.setBit(16, value, this);\n }\n get name(): string {\n return $.utils.getText(5, this);\n }\n set name(value: string) {\n $.utils.setText(5, value, this);\n }\n public override toString(): string { return \"SerializedTypeTupleMember_\" + super.toString(); }\n}\nexport class SerializedTypeTuple extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeTuple\",\n id: \"eb7501eb1ee4fb6d\",\n size: new $.ObjectSize(8, 5),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n static _Types: $.ListCtor<SerializedTypeTupleMember>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeTuple._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeTuple._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeTuple._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeTuple._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n _adoptTypes(value: $.Orphan<$.List<SerializedTypeTupleMember>>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTypes(): $.Orphan<$.List<SerializedTypeTupleMember>> {\n return $.utils.disown(this.types);\n }\n get types(): $.List<SerializedTypeTupleMember> {\n return $.utils.getList(4, SerializedTypeTuple._Types, this);\n }\n _hasTypes(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTypes(length: number): $.List<SerializedTypeTupleMember> {\n return $.utils.initList(4, SerializedTypeTuple._Types, length, this);\n }\n set types(value: $.List<SerializedTypeTupleMember>) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n public override toString(): string { return \"SerializedTypeTuple_\" + super.toString(); }\n}\nexport class SerializedTypeRest extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeRest\",\n id: \"f9e684a435cce5d1\",\n size: new $.ObjectSize(8, 5),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeRest._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeRest._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeRest._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeRest._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n _adoptType(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownType(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.type);\n }\n get type(): SerializedTypeReference {\n return $.utils.getStruct(4, SerializedTypeReference, this);\n }\n _hasType(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initType(): SerializedTypeReference {\n return $.utils.initStructAt(4, SerializedTypeReference, this);\n }\n set type(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n public override toString(): string { return \"SerializedTypeRest_\" + super.toString(); }\n}\nexport class SimpleSerializedType extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SimpleSerializedType\",\n id: \"80f983e4b811c3ca\",\n size: new $.ObjectSize(8, 5),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SimpleSerializedType._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SimpleSerializedType._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SimpleSerializedType._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SimpleSerializedType._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n _adoptOrigin(value: $.Orphan<SerializedTypeReference>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownOrigin(): $.Orphan<SerializedTypeReference> {\n return $.utils.disown(this.origin);\n }\n get origin(): SerializedTypeReference {\n return $.utils.getStruct(4, SerializedTypeReference, this);\n }\n _hasOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initOrigin(): SerializedTypeReference {\n return $.utils.initStructAt(4, SerializedTypeReference, this);\n }\n set origin(value: SerializedTypeReference) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n public override toString(): string { return \"SimpleSerializedType_\" + super.toString(); }\n}\nexport class SerializedTypeLiteralSymbol extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeLiteralSymbol\",\n id: \"f3dd6a3c6054bd55\",\n size: new $.ObjectSize(0, 2),\n };\n /**\n* \"symbol\"\n*\n*/\n get type(): string {\n return $.utils.getText(0, this);\n }\n set type(value: string) {\n $.utils.setText(0, value, this);\n }\n get name(): string {\n return $.utils.getText(1, this);\n }\n set name(value: string) {\n $.utils.setText(1, value, this);\n }\n public override toString(): string { return \"SerializedTypeLiteralSymbol_\" + super.toString(); }\n}\nexport class SerializedTypeLiteralBigInt extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeLiteralBigInt\",\n id: \"821a872d8be30bb2\",\n size: new $.ObjectSize(0, 2),\n };\n /**\n* \"bigint\"\n*\n*/\n get type(): string {\n return $.utils.getText(0, this);\n }\n set type(value: string) {\n $.utils.setText(0, value, this);\n }\n get value(): string {\n return $.utils.getText(1, this);\n }\n set value(value: string) {\n $.utils.setText(1, value, this);\n }\n public override toString(): string { return \"SerializedTypeLiteralBigInt_\" + super.toString(); }\n}\nexport class SerializedTypeLiteralRegex extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeLiteralRegex\",\n id: \"cc89f97b47927d99\",\n size: new $.ObjectSize(0, 2),\n };\n /**\n* \"regex\"\n*\n*/\n get type(): string {\n return $.utils.getText(0, this);\n }\n set type(value: string) {\n $.utils.setText(0, value, this);\n }\n get regex(): string {\n return $.utils.getText(1, this);\n }\n set regex(value: string) {\n $.utils.setText(1, value, this);\n }\n public override toString(): string { return \"SerializedTypeLiteralRegex_\" + super.toString(); }\n}\nexport const SerializedTypeLiteral_Literal_Which = {\n SYMBOL: 0,\n STRING: 1,\n NUMBER: 2,\n BOOLEAN: 3,\n BIGINT: 4,\n REGEX: 5\n} as const;\nexport type SerializedTypeLiteral_Literal_Which = (typeof SerializedTypeLiteral_Literal_Which)[keyof typeof SerializedTypeLiteral_Literal_Which];\nexport class SerializedTypeLiteral_Literal extends $.Struct {\n static readonly SYMBOL = SerializedTypeLiteral_Literal_Which.SYMBOL;\n static readonly STRING = SerializedTypeLiteral_Literal_Which.STRING;\n static readonly NUMBER = SerializedTypeLiteral_Literal_Which.NUMBER;\n static readonly BOOLEAN = SerializedTypeLiteral_Literal_Which.BOOLEAN;\n static readonly BIGINT = SerializedTypeLiteral_Literal_Which.BIGINT;\n static readonly REGEX = SerializedTypeLiteral_Literal_Which.REGEX;\n public static override readonly _capnp = {\n displayName: \"literal\",\n id: \"e4f0538973f3909f\",\n size: new $.ObjectSize(16, 5),\n };\n _adoptSymbol(value: $.Orphan<SerializedTypeLiteralSymbol>): void {\n $.utils.setUint16(2, 0, this);\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownSymbol(): $.Orphan<SerializedTypeLiteralSymbol> {\n return $.utils.disown(this.symbol);\n }\n get symbol(): SerializedTypeLiteralSymbol {\n $.utils.testWhich(\"symbol\", $.utils.getUint16(2, this), 0, this);\n return $.utils.getStruct(4, SerializedTypeLiteralSymbol, this);\n }\n _hasSymbol(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initSymbol(): SerializedTypeLiteralSymbol {\n $.utils.setUint16(2, 0, this);\n return $.utils.initStructAt(4, SerializedTypeLiteralSymbol, this);\n }\n get _isSymbol(): boolean {\n return $.utils.getUint16(2, this) === 0;\n }\n set symbol(value: SerializedTypeLiteralSymbol) {\n $.utils.setUint16(2, 0, this);\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n get string(): string {\n $.utils.testWhich(\"string\", $.utils.getUint16(2, this), 1, this);\n return $.utils.getText(4, this);\n }\n get _isString(): boolean {\n return $.utils.getUint16(2, this) === 1;\n }\n set string(value: string) {\n $.utils.setUint16(2, 1, this);\n $.utils.setText(4, value, this);\n }\n get number(): number {\n $.utils.testWhich(\"number\", $.utils.getUint16(2, this), 2, this);\n return $.utils.getFloat64(8, this);\n }\n get _isNumber(): boolean {\n return $.utils.getUint16(2, this) === 2;\n }\n set number(value: number) {\n $.utils.setUint16(2, 2, this);\n $.utils.setFloat64(8, value, this);\n }\n get boolean(): boolean {\n $.utils.testWhich(\"boolean\", $.utils.getUint16(2, this), 3, this);\n return $.utils.getBit(64, this);\n }\n get _isBoolean(): boolean {\n return $.utils.getUint16(2, this) === 3;\n }\n set boolean(value: boolean) {\n $.utils.setUint16(2, 3, this);\n $.utils.setBit(64, value, this);\n }\n _adoptBigint(value: $.Orphan<SerializedTypeLiteralBigInt>): void {\n $.utils.setUint16(2, 4, this);\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownBigint(): $.Orphan<SerializedTypeLiteralBigInt> {\n return $.utils.disown(this.bigint);\n }\n get bigint(): SerializedTypeLiteralBigInt {\n $.utils.testWhich(\"bigint\", $.utils.getUint16(2, this), 4, this);\n return $.utils.getStruct(4, SerializedTypeLiteralBigInt, this);\n }\n _hasBigint(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initBigint(): SerializedTypeLiteralBigInt {\n $.utils.setUint16(2, 4, this);\n return $.utils.initStructAt(4, SerializedTypeLiteralBigInt, this);\n }\n get _isBigint(): boolean {\n return $.utils.getUint16(2, this) === 4;\n }\n set bigint(value: SerializedTypeLiteralBigInt) {\n $.utils.setUint16(2, 4, this);\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n _adoptRegex(value: $.Orphan<SerializedTypeLiteralRegex>): void {\n $.utils.setUint16(2, 5, this);\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownRegex(): $.Orphan<SerializedTypeLiteralRegex> {\n return $.utils.disown(this.regex);\n }\n get regex(): SerializedTypeLiteralRegex {\n $.utils.testWhich(\"regex\", $.utils.getUint16(2, this), 5, this);\n return $.utils.getStruct(4, SerializedTypeLiteralRegex, this);\n }\n _hasRegex(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initRegex(): SerializedTypeLiteralRegex {\n $.utils.setUint16(2, 5, this);\n return $.utils.initStructAt(4, SerializedTypeLiteralRegex, this);\n }\n get _isRegex(): boolean {\n return $.utils.getUint16(2, this) === 5;\n }\n set regex(value: SerializedTypeLiteralRegex) {\n $.utils.setUint16(2, 5, this);\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n public override toString(): string { return \"SerializedTypeLiteral_Literal_\" + super.toString(); }\n which(): SerializedTypeLiteral_Literal_Which {\n return $.utils.getUint16(2, this) as SerializedTypeLiteral_Literal_Which;\n }\n}\nexport class SerializedTypeLiteral extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeLiteral\",\n id: \"b876ba24d27d88c8\",\n size: new $.ObjectSize(16, 5),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeLiteral._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeLiteral._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeLiteral._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeLiteral._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n get literal(): SerializedTypeLiteral_Literal {\n return $.utils.getAs(SerializedTypeLiteral_Literal, this);\n }\n _initLiteral(): SerializedTypeLiteral_Literal {\n return $.utils.getAs(SerializedTypeLiteral_Literal, this);\n }\n public override toString(): string { return \"SerializedTypeLiteral_\" + super.toString(); }\n}\nexport class SerializedTypeTemplateLiteral extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeTemplateLiteral\",\n id: \"8dd6c284d46cc265\",\n size: new $.ObjectSize(8, 5),\n };\n static _TypeArguments: $.ListCtor<SerializedTypeReference>;\n static _Decorators: $.ListCtor<SerializedTypeReference>;\n static _Types: $.ListCtor<SerializedTypeReference>;\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments(): $.List<SerializedTypeReference> {\n return $.utils.getList(1, SerializedTypeTemplateLiteral._TypeArguments, this);\n }\n _hasTypeArguments(): boolean {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(1, SerializedTypeTemplateLiteral._TypeArguments, length, this);\n }\n set typeArguments(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value: $.Orphan<IndexAccessOrigin>): void {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin(): $.Orphan<IndexAccessOrigin> {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin(): IndexAccessOrigin {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin(): boolean {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin(): IndexAccessOrigin {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value: IndexAccessOrigin) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.decorators);\n }\n get decorators(): $.List<SerializedTypeReference> {\n return $.utils.getList(3, SerializedTypeTemplateLiteral._Decorators, this);\n }\n _hasDecorators(): boolean {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(3, SerializedTypeTemplateLiteral._Decorators, length, this);\n }\n set decorators(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n _adoptTypes(value: $.Orphan<$.List<SerializedTypeReference>>): void {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTypes(): $.Orphan<$.List<SerializedTypeReference>> {\n return $.utils.disown(this.types);\n }\n get types(): $.List<SerializedTypeReference> {\n return $.utils.getList(4, SerializedTypeTemplateLiteral._Types, this);\n }\n _hasTypes(): boolean {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTypes(length: number): $.List<SerializedTypeReference> {\n return $.utils.initList(4, SerializedTypeTemplateLiteral._Types, length, this);\n }\n set types(value: $.List<SerializedTypeReference>) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n public override toString(): string { return \"SerializedTypeTemplateLiteral_\" + super.toString(); }\n}\nexport class SerializedTypeOther extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypeOther\",\n id: \"9e1048a692ff49ce\",\n size: new $.ObjectSize(8, 1),\n };\n get typeName(): string {\n return $.utils.getText(0, this);\n }\n set typeName(value: string) {\n $.utils.setText(0, value, this);\n }\n get kind(): ReflectionKind {\n return $.utils.getUint16(0, this) as ReflectionKind;\n }\n set kind(value: ReflectionKind) {\n $.utils.setUint16(0, value, this);\n }\n public override toString(): string { return \"SerializedTypeOther_\" + super.toString(); }\n}\nexport const SerializedType_Type_Which = {\n SIMPLE: 0,\n LITERAL: 1,\n TEMPLATE_LITERAL: 2,\n PARAMETER: 3,\n FUNCTION: 4,\n METHOD: 5,\n PROPERTY: 6,\n PROMISE: 7,\n CLASS_TYPE: 8,\n ENUM: 9,\n UNION: 10,\n INTERSECTION: 11,\n ARRAY: 12,\n OBJECT_LITERAL: 13,\n INDEX_SIGNATURE: 14,\n PROPERTY_SIGNATURE: 15,\n METHOD_SIGNATURE: 16,\n TYPE_PARAMETER: 17,\n INFER: 18,\n TUPLE: 19,\n TUPLE_MEMBER: 20,\n REST: 21,\n /**\n* For any other type that is not explicitly defined\n*\n*/\n OTHER: 22\n} as const;\nexport type SerializedType_Type_Which = (typeof SerializedType_Type_Which)[keyof typeof SerializedType_Type_Which];\nexport class SerializedType_Type extends $.Struct {\n static readonly SIMPLE = SerializedType_Type_Which.SIMPLE;\n static readonly LITERAL = SerializedType_Type_Which.LITERAL;\n static readonly TEMPLATE_LITERAL = SerializedType_Type_Which.TEMPLATE_LITERAL;\n static readonly PARAMETER = SerializedType_Type_Which.PARAMETER;\n static readonly FUNCTION = SerializedType_Type_Which.FUNCTION;\n static readonly METHOD = SerializedType_Type_Which.METHOD;\n static readonly PROPERTY = SerializedType_Type_Which.PROPERTY;\n static readonly PROMISE = SerializedType_Type_Which.PROMISE;\n static readonly CLASS_TYPE = SerializedType_Type_Which.CLASS_TYPE;\n static readonly ENUM = SerializedType_Type_Which.ENUM;\n static readonly UNION = SerializedType_Type_Which.UNION;\n static readonly INTERSECTION = SerializedType_Type_Which.INTERSECTION;\n static readonly ARRAY = SerializedType_Type_Which.ARRAY;\n static readonly OBJECT_LITERAL = SerializedType_Type_Which.OBJECT_LITERAL;\n static readonly INDEX_SIGNATURE = SerializedType_Type_Which.INDEX_SIGNATURE;\n static readonly PROPERTY_SIGNATURE = SerializedType_Type_Which.PROPERTY_SIGNATURE;\n static readonly METHOD_SIGNATURE = SerializedType_Type_Which.METHOD_SIGNATURE;\n static readonly TYPE_PARAMETER = SerializedType_Type_Which.TYPE_PARAMETER;\n static readonly INFER = SerializedType_Type_Which.INFER;\n static readonly TUPLE = SerializedType_Type_Which.TUPLE;\n static readonly TUPLE_MEMBER = SerializedType_Type_Which.TUPLE_MEMBER;\n static readonly REST = SerializedType_Type_Which.REST;\n static readonly OTHER = SerializedType_Type_Which.OTHER;\n public static override readonly _capnp = {\n displayName: \"type\",\n id: \"c677d7ed4a496eab\",\n size: new $.ObjectSize(8, 1),\n };\n _adoptSimple(value: $.Orphan<SimpleSerializedType>): void {\n $.utils.setUint16(0, 0, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownSimple(): $.Orphan<SimpleSerializedType> {\n return $.utils.disown(this.simple);\n }\n get simple(): SimpleSerializedType {\n $.utils.testWhich(\"simple\", $.utils.getUint16(0, this), 0, this);\n return $.utils.getStruct(0, SimpleSerializedType, this);\n }\n _hasSimple(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initSimple(): SimpleSerializedType {\n $.utils.setUint16(0, 0, this);\n return $.utils.initStructAt(0, SimpleSerializedType, this);\n }\n get _isSimple(): boolean {\n return $.utils.getUint16(0, this) === 0;\n }\n set simple(value: SimpleSerializedType) {\n $.utils.setUint16(0, 0, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptLiteral(value: $.Orphan<SerializedTypeLiteral>): void {\n $.utils.setUint16(0, 1, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownLiteral(): $.Orphan<SerializedTypeLiteral> {\n return $.utils.disown(this.literal);\n }\n get literal(): SerializedTypeLiteral {\n $.utils.testWhich(\"literal\", $.utils.getUint16(0, this), 1, this);\n return $.utils.getStruct(0, SerializedTypeLiteral, this);\n }\n _hasLiteral(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initLiteral(): SerializedTypeLiteral {\n $.utils.setUint16(0, 1, this);\n return $.utils.initStructAt(0, SerializedTypeLiteral, this);\n }\n get _isLiteral(): boolean {\n return $.utils.getUint16(0, this) === 1;\n }\n set literal(value: SerializedTypeLiteral) {\n $.utils.setUint16(0, 1, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptTemplateLiteral(value: $.Orphan<SerializedTypeTemplateLiteral>): void {\n $.utils.setUint16(0, 2, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownTemplateLiteral(): $.Orphan<SerializedTypeTemplateLiteral> {\n return $.utils.disown(this.templateLiteral);\n }\n get templateLiteral(): SerializedTypeTemplateLiteral {\n $.utils.testWhich(\"templateLiteral\", $.utils.getUint16(0, this), 2, this);\n return $.utils.getStruct(0, SerializedTypeTemplateLiteral, this);\n }\n _hasTemplateLiteral(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initTemplateLiteral(): SerializedTypeTemplateLiteral {\n $.utils.setUint16(0, 2, this);\n return $.utils.initStructAt(0, SerializedTypeTemplateLiteral, this);\n }\n get _isTemplateLiteral(): boolean {\n return $.utils.getUint16(0, this) === 2;\n }\n set templateLiteral(value: SerializedTypeTemplateLiteral) {\n $.utils.setUint16(0, 2, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptParameter(value: $.Orphan<SerializedTypeParameter>): void {\n $.utils.setUint16(0, 3, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownParameter(): $.Orphan<SerializedTypeParameter> {\n return $.utils.disown(this.parameter);\n }\n get parameter(): SerializedTypeParameter {\n $.utils.testWhich(\"parameter\", $.utils.getUint16(0, this), 3, this);\n return $.utils.getStruct(0, SerializedTypeParameter, this);\n }\n _hasParameter(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initParameter(): SerializedTypeParameter {\n $.utils.setUint16(0, 3, this);\n return $.utils.initStructAt(0, SerializedTypeParameter, this);\n }\n get _isParameter(): boolean {\n return $.utils.getUint16(0, this) === 3;\n }\n set parameter(value: SerializedTypeParameter) {\n $.utils.setUint16(0, 3, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptFunction(value: $.Orphan<SerializedTypeFunction>): void {\n $.utils.setUint16(0, 4, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownFunction(): $.Orphan<SerializedTypeFunction> {\n return $.utils.disown(this.function);\n }\n get function(): SerializedTypeFunction {\n $.utils.testWhich(\"function\", $.utils.getUint16(0, this), 4, this);\n return $.utils.getStruct(0, SerializedTypeFunction, this);\n }\n _hasFunction(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initFunction(): SerializedTypeFunction {\n $.utils.setUint16(0, 4, this);\n return $.utils.initStructAt(0, SerializedTypeFunction, this);\n }\n get _isFunction(): boolean {\n return $.utils.getUint16(0, this) === 4;\n }\n set function(value: SerializedTypeFunction) {\n $.utils.setUint16(0, 4, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptMethod(value: $.Orphan<SerializedTypeMethod>): void {\n $.utils.setUint16(0, 5, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownMethod(): $.Orphan<SerializedTypeMethod> {\n return $.utils.disown(this.method);\n }\n get method(): SerializedTypeMethod {\n $.utils.testWhich(\"method\", $.utils.getUint16(0, this), 5, this);\n return $.utils.getStruct(0, SerializedTypeMethod, this);\n }\n _hasMethod(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initMethod(): SerializedTypeMethod {\n $.utils.setUint16(0, 5, this);\n return $.utils.initStructAt(0, SerializedTypeMethod, this);\n }\n get _isMethod(): boolean {\n return $.utils.getUint16(0, this) === 5;\n }\n set method(value: SerializedTypeMethod) {\n $.utils.setUint16(0, 5, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptProperty(value: $.Orphan<SerializedTypeProperty>): void {\n $.utils.setUint16(0, 6, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownProperty(): $.Orphan<SerializedTypeProperty> {\n return $.utils.disown(this.property);\n }\n get property(): SerializedTypeProperty {\n $.utils.testWhich(\"property\", $.utils.getUint16(0, this), 6, this);\n return $.utils.getStruct(0, SerializedTypeProperty, this);\n }\n _hasProperty(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initProperty(): SerializedTypeProperty {\n $.utils.setUint16(0, 6, this);\n return $.utils.initStructAt(0, SerializedTypeProperty, this);\n }\n get _isProperty(): boolean {\n return $.utils.getUint16(0, this) === 6;\n }\n set property(value: SerializedTypeProperty) {\n $.utils.setUint16(0, 6, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptPromise(value: $.Orphan<SerializedTypePromise>): void {\n $.utils.setUint16(0, 7, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownPromise(): $.Orphan<SerializedTypePromise> {\n return $.utils.disown(this.promise);\n }\n get promise(): SerializedTypePromise {\n $.utils.testWhich(\"promise\", $.utils.getUint16(0, this), 7, this);\n return $.utils.getStruct(0, SerializedTypePromise, this);\n }\n _hasPromise(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initPromise(): SerializedTypePromise {\n $.utils.setUint16(0, 7, this);\n return $.utils.initStructAt(0, SerializedTypePromise, this);\n }\n get _isPromise(): boolean {\n return $.utils.getUint16(0, this) === 7;\n }\n set promise(value: SerializedTypePromise) {\n $.utils.setUint16(0, 7, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptClassType(value: $.Orphan<SerializedTypeClassType>): void {\n $.utils.setUint16(0, 8, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownClassType(): $.Orphan<SerializedTypeClassType> {\n return $.utils.disown(this.classType);\n }\n get classType(): SerializedTypeClassType {\n $.utils.testWhich(\"classType\", $.utils.getUint16(0, this), 8, this);\n return $.utils.getStruct(0, SerializedTypeClassType, this);\n }\n _hasClassType(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initClassType(): SerializedTypeClassType {\n $.utils.setUint16(0, 8, this);\n return $.utils.initStructAt(0, SerializedTypeClassType, this);\n }\n get _isClassType(): boolean {\n return $.utils.getUint16(0, this) === 8;\n }\n set classType(value: SerializedTypeClassType) {\n $.utils.setUint16(0, 8, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptEnum(value: $.Orphan<SerializedTypeEnum>): void {\n $.utils.setUint16(0, 9, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownEnum(): $.Orphan<SerializedTypeEnum> {\n return $.utils.disown(this.enum);\n }\n get enum(): SerializedTypeEnum {\n $.utils.testWhich(\"enum\", $.utils.getUint16(0, this), 9, this);\n return $.utils.getStruct(0, SerializedTypeEnum, this);\n }\n _hasEnum(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initEnum(): SerializedTypeEnum {\n $.utils.setUint16(0, 9, this);\n return $.utils.initStructAt(0, SerializedTypeEnum, this);\n }\n get _isEnum(): boolean {\n return $.utils.getUint16(0, this) === 9;\n }\n set enum(value: SerializedTypeEnum) {\n $.utils.setUint16(0, 9, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptUnion(value: $.Orphan<SerializedTypeUnion>): void {\n $.utils.setUint16(0, 10, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownUnion(): $.Orphan<SerializedTypeUnion> {\n return $.utils.disown(this.union);\n }\n get union(): SerializedTypeUnion {\n $.utils.testWhich(\"union\", $.utils.getUint16(0, this), 10, this);\n return $.utils.getStruct(0, SerializedTypeUnion, this);\n }\n _hasUnion(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initUnion(): SerializedTypeUnion {\n $.utils.setUint16(0, 10, this);\n return $.utils.initStructAt(0, SerializedTypeUnion, this);\n }\n get _isUnion(): boolean {\n return $.utils.getUint16(0, this) === 10;\n }\n set union(value: SerializedTypeUnion) {\n $.utils.setUint16(0, 10, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptIntersection(value: $.Orphan<SerializedTypeIntersection>): void {\n $.utils.setUint16(0, 11, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownIntersection(): $.Orphan<SerializedTypeIntersection> {\n return $.utils.disown(this.intersection);\n }\n get intersection(): SerializedTypeIntersection {\n $.utils.testWhich(\"intersection\", $.utils.getUint16(0, this), 11, this);\n return $.utils.getStruct(0, SerializedTypeIntersection, this);\n }\n _hasIntersection(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initIntersection(): SerializedTypeIntersection {\n $.utils.setUint16(0, 11, this);\n return $.utils.initStructAt(0, SerializedTypeIntersection, this);\n }\n get _isIntersection(): boolean {\n return $.utils.getUint16(0, this) === 11;\n }\n set intersection(value: SerializedTypeIntersection) {\n $.utils.setUint16(0, 11, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptArray(value: $.Orphan<SerializedTypeArray>): void {\n $.utils.setUint16(0, 12, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownArray(): $.Orphan<SerializedTypeArray> {\n return $.utils.disown(this.array);\n }\n get array(): SerializedTypeArray {\n $.utils.testWhich(\"array\", $.utils.getUint16(0, this), 12, this);\n return $.utils.getStruct(0, SerializedTypeArray, this);\n }\n _hasArray(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initArray(): SerializedTypeArray {\n $.utils.setUint16(0, 12, this);\n return $.utils.initStructAt(0, SerializedTypeArray, this);\n }\n get _isArray(): boolean {\n return $.utils.getUint16(0, this) === 12;\n }\n set array(value: SerializedTypeArray) {\n $.utils.setUint16(0, 12, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptObjectLiteral(value: $.Orphan<SerializedTypeObjectLiteral>): void {\n $.utils.setUint16(0, 13, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownObjectLiteral(): $.Orphan<SerializedTypeObjectLiteral> {\n return $.utils.disown(this.objectLiteral);\n }\n get objectLiteral(): SerializedTypeObjectLiteral {\n $.utils.testWhich(\"objectLiteral\", $.utils.getUint16(0, this), 13, this);\n return $.utils.getStruct(0, SerializedTypeObjectLiteral, this);\n }\n _hasObjectLiteral(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initObjectLiteral(): SerializedTypeObjectLiteral {\n $.utils.setUint16(0, 13, this);\n return $.utils.initStructAt(0, SerializedTypeObjectLiteral, this);\n }\n get _isObjectLiteral(): boolean {\n return $.utils.getUint16(0, this) === 13;\n }\n set objectLiteral(value: SerializedTypeObjectLiteral) {\n $.utils.setUint16(0, 13, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptIndexSignature(value: $.Orphan<SerializedTypeIndexSignature>): void {\n $.utils.setUint16(0, 14, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownIndexSignature(): $.Orphan<SerializedTypeIndexSignature> {\n return $.utils.disown(this.indexSignature);\n }\n get indexSignature(): SerializedTypeIndexSignature {\n $.utils.testWhich(\"indexSignature\", $.utils.getUint16(0, this), 14, this);\n return $.utils.getStruct(0, SerializedTypeIndexSignature, this);\n }\n _hasIndexSignature(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initIndexSignature(): SerializedTypeIndexSignature {\n $.utils.setUint16(0, 14, this);\n return $.utils.initStructAt(0, SerializedTypeIndexSignature, this);\n }\n get _isIndexSignature(): boolean {\n return $.utils.getUint16(0, this) === 14;\n }\n set indexSignature(value: SerializedTypeIndexSignature) {\n $.utils.setUint16(0, 14, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptPropertySignature(value: $.Orphan<SerializedTypePropertySignature>): void {\n $.utils.setUint16(0, 15, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownPropertySignature(): $.Orphan<SerializedTypePropertySignature> {\n return $.utils.disown(this.propertySignature);\n }\n get propertySignature(): SerializedTypePropertySignature {\n $.utils.testWhich(\"propertySignature\", $.utils.getUint16(0, this), 15, this);\n return $.utils.getStruct(0, SerializedTypePropertySignature, this);\n }\n _hasPropertySignature(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initPropertySignature(): SerializedTypePropertySignature {\n $.utils.setUint16(0, 15, this);\n return $.utils.initStructAt(0, SerializedTypePropertySignature, this);\n }\n get _isPropertySignature(): boolean {\n return $.utils.getUint16(0, this) === 15;\n }\n set propertySignature(value: SerializedTypePropertySignature) {\n $.utils.setUint16(0, 15, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptMethodSignature(value: $.Orphan<SerializedTypeMethodSignature>): void {\n $.utils.setUint16(0, 16, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownMethodSignature(): $.Orphan<SerializedTypeMethodSignature> {\n return $.utils.disown(this.methodSignature);\n }\n get methodSignature(): SerializedTypeMethodSignature {\n $.utils.testWhich(\"methodSignature\", $.utils.getUint16(0, this), 16, this);\n return $.utils.getStruct(0, SerializedTypeMethodSignature, this);\n }\n _hasMethodSignature(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initMethodSignature(): SerializedTypeMethodSignature {\n $.utils.setUint16(0, 16, this);\n return $.utils.initStructAt(0, SerializedTypeMethodSignature, this);\n }\n get _isMethodSignature(): boolean {\n return $.utils.getUint16(0, this) === 16;\n }\n set methodSignature(value: SerializedTypeMethodSignature) {\n $.utils.setUint16(0, 16, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptTypeParameter(value: $.Orphan<SerializedTypeTypeParameter>): void {\n $.utils.setUint16(0, 17, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownTypeParameter(): $.Orphan<SerializedTypeTypeParameter> {\n return $.utils.disown(this.typeParameter);\n }\n get typeParameter(): SerializedTypeTypeParameter {\n $.utils.testWhich(\"typeParameter\", $.utils.getUint16(0, this), 17, this);\n return $.utils.getStruct(0, SerializedTypeTypeParameter, this);\n }\n _hasTypeParameter(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initTypeParameter(): SerializedTypeTypeParameter {\n $.utils.setUint16(0, 17, this);\n return $.utils.initStructAt(0, SerializedTypeTypeParameter, this);\n }\n get _isTypeParameter(): boolean {\n return $.utils.getUint16(0, this) === 17;\n }\n set typeParameter(value: SerializedTypeTypeParameter) {\n $.utils.setUint16(0, 17, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptInfer(value: $.Orphan<SerializedTypeInfer>): void {\n $.utils.setUint16(0, 18, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownInfer(): $.Orphan<SerializedTypeInfer> {\n return $.utils.disown(this.infer);\n }\n get infer(): SerializedTypeInfer {\n $.utils.testWhich(\"infer\", $.utils.getUint16(0, this), 18, this);\n return $.utils.getStruct(0, SerializedTypeInfer, this);\n }\n _hasInfer(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initInfer(): SerializedTypeInfer {\n $.utils.setUint16(0, 18, this);\n return $.utils.initStructAt(0, SerializedTypeInfer, this);\n }\n get _isInfer(): boolean {\n return $.utils.getUint16(0, this) === 18;\n }\n set infer(value: SerializedTypeInfer) {\n $.utils.setUint16(0, 18, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptTuple(value: $.Orphan<SerializedTypeTuple>): void {\n $.utils.setUint16(0, 19, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownTuple(): $.Orphan<SerializedTypeTuple> {\n return $.utils.disown(this.tuple);\n }\n get tuple(): SerializedTypeTuple {\n $.utils.testWhich(\"tuple\", $.utils.getUint16(0, this), 19, this);\n return $.utils.getStruct(0, SerializedTypeTuple, this);\n }\n _hasTuple(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initTuple(): SerializedTypeTuple {\n $.utils.setUint16(0, 19, this);\n return $.utils.initStructAt(0, SerializedTypeTuple, this);\n }\n get _isTuple(): boolean {\n return $.utils.getUint16(0, this) === 19;\n }\n set tuple(value: SerializedTypeTuple) {\n $.utils.setUint16(0, 19, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptTupleMember(value: $.Orphan<SerializedTypeTupleMember>): void {\n $.utils.setUint16(0, 20, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownTupleMember(): $.Orphan<SerializedTypeTupleMember> {\n return $.utils.disown(this.tupleMember);\n }\n get tupleMember(): SerializedTypeTupleMember {\n $.utils.testWhich(\"tupleMember\", $.utils.getUint16(0, this), 20, this);\n return $.utils.getStruct(0, SerializedTypeTupleMember, this);\n }\n _hasTupleMember(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initTupleMember(): SerializedTypeTupleMember {\n $.utils.setUint16(0, 20, this);\n return $.utils.initStructAt(0, SerializedTypeTupleMember, this);\n }\n get _isTupleMember(): boolean {\n return $.utils.getUint16(0, this) === 20;\n }\n set tupleMember(value: SerializedTypeTupleMember) {\n $.utils.setUint16(0, 20, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptRest(value: $.Orphan<SerializedTypeRest>): void {\n $.utils.setUint16(0, 21, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownRest(): $.Orphan<SerializedTypeRest> {\n return $.utils.disown(this.rest);\n }\n get rest(): SerializedTypeRest {\n $.utils.testWhich(\"rest\", $.utils.getUint16(0, this), 21, this);\n return $.utils.getStruct(0, SerializedTypeRest, this);\n }\n _hasRest(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initRest(): SerializedTypeRest {\n $.utils.setUint16(0, 21, this);\n return $.utils.initStructAt(0, SerializedTypeRest, this);\n }\n get _isRest(): boolean {\n return $.utils.getUint16(0, this) === 21;\n }\n set rest(value: SerializedTypeRest) {\n $.utils.setUint16(0, 21, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptOther(value: $.Orphan<SerializedTypeOther>): void {\n $.utils.setUint16(0, 22, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownOther(): $.Orphan<SerializedTypeOther> {\n return $.utils.disown(this.other);\n }\n /**\n* For any other type that is not explicitly defined\n*\n*/\n get other(): SerializedTypeOther {\n $.utils.testWhich(\"other\", $.utils.getUint16(0, this), 22, this);\n return $.utils.getStruct(0, SerializedTypeOther, this);\n }\n _hasOther(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initOther(): SerializedTypeOther {\n $.utils.setUint16(0, 22, this);\n return $.utils.initStructAt(0, SerializedTypeOther, this);\n }\n get _isOther(): boolean {\n return $.utils.getUint16(0, this) === 22;\n }\n set other(value: SerializedTypeOther) {\n $.utils.setUint16(0, 22, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n public override toString(): string { return \"SerializedType_Type_\" + super.toString(); }\n which(): SerializedType_Type_Which {\n return $.utils.getUint16(0, this) as SerializedType_Type_Which;\n }\n}\nexport class SerializedType extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedType\",\n id: \"96856dcc2dd3d58f\",\n size: new $.ObjectSize(8, 1),\n };\n get type(): SerializedType_Type {\n return $.utils.getAs(SerializedType_Type, this);\n }\n _initType(): SerializedType_Type {\n return $.utils.getAs(SerializedType_Type, this);\n }\n public override toString(): string { return \"SerializedType_\" + super.toString(); }\n}\nexport class SerializedTypes extends $.Struct {\n public static override readonly _capnp = {\n displayName: \"SerializedTypes\",\n id: \"ac55398ab0ef4958\",\n size: new $.ObjectSize(0, 1),\n };\n static _Types: $.ListCtor<SerializedType>;\n _adoptTypes(value: $.Orphan<$.List<SerializedType>>): void {\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownTypes(): $.Orphan<$.List<SerializedType>> {\n return $.utils.disown(this.types);\n }\n get types(): $.List<SerializedType> {\n return $.utils.getList(0, SerializedTypes._Types, this);\n }\n _hasTypes(): boolean {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initTypes(length: number): $.List<SerializedType> {\n return $.utils.initList(0, SerializedTypes._Types, length, this);\n }\n set types(value: $.List<SerializedType>) {\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n public override toString(): string { return \"SerializedTypes_\" + super.toString(); }\n}\nEntityOptions._Indexes = $.CompositeList(EntityOptions_EntityIndexOptions);\nSerializedTypeObjectLiteral._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeObjectLiteral._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeObjectLiteral._Types = $.CompositeList(SerializedTypeReference);\nSerializedTypeClassType._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeClassType._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeClassType._ExtendsArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeClassType._Arguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeClassType._Types = $.CompositeList(SerializedTypeReference);\nSerializedTypeParameter._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeParameter._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeMethod._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeMethod._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeMethod._Parameters = $.CompositeList(SerializedTypeParameter);\nSerializedTypeProperty._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeProperty._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeFunction._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeFunction._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeFunction._Parameters = $.CompositeList(SerializedTypeParameter);\nSerializedTypePromise._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypePromise._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeEnum._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeEnum._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeEnum._EnumEntries = $.CompositeList(SerializedTypeEnumEntry);\nSerializedTypeUnion._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeUnion._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeUnion._Types = $.CompositeList(SerializedTypeReference);\nSerializedTypeIntersection._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeIntersection._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeIntersection._Types = $.CompositeList(SerializedTypeReference);\nSerializedTypeArray._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeArray._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeIndexSignature._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeIndexSignature._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypePropertySignature._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypePropertySignature._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeMethodSignature._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeMethodSignature._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeMethodSignature._Parameters = $.CompositeList(SerializedTypeParameter);\nSerializedTypeTypeParameter._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeTypeParameter._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeInfer._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeInfer._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeTupleMember._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeTupleMember._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeTuple._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeTuple._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeTuple._Types = $.CompositeList(SerializedTypeTupleMember);\nSerializedTypeRest._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeRest._Decorators = $.CompositeList(SerializedTypeReference);\nSimpleSerializedType._TypeArguments = $.CompositeList(SerializedTypeReference);\nSimpleSerializedType._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeLiteral._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeLiteral._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeTemplateLiteral._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeTemplateLiteral._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeTemplateLiteral._Types = $.CompositeList(SerializedTypeReference);\nSerializedTypes._Types = $.CompositeList(SerializedType);\n","/* -------------------------------------------------------------------\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\n/* eslint-disable camelcase */\n\nimport {\n ReflectionKind,\n ReflectionVisibility,\n SerializedType,\n SerializedTypeArray,\n SerializedTypeClassType,\n SerializedTypeEnum,\n SerializedTypeFunction,\n SerializedTypeInfer,\n SerializedTypeIntersection,\n SerializedTypeLiteral,\n SerializedTypeMethod,\n SerializedTypeMethodSignature,\n SerializedTypeObjectLiteral,\n SerializedTypeParameter,\n SerializedTypeProperty,\n SerializedTypePropertySignature,\n SerializedTypeReference,\n SerializedTypes,\n SerializedTypeTuple,\n SerializedTypeTupleMember,\n SerializedTypeUnion,\n SimpleSerializedType,\n TagsReflection\n} from \"@powerlines/deepkit/vendor/type\";\nimport { List } from \"@stryke/capnp\";\nimport { isInteger, isSetObject, isUndefined } from \"@stryke/type-checks\";\nimport {\n DefaultValueReflection as CapnpDefaultValueReflection,\n IndexAccessOrigin as CapnpIndexAccessOrigin,\n ReflectionVisibility as CapnpReflectionVisibility,\n SerializedType as CapnpSerializedType,\n SerializedTypeArray as CapnpSerializedTypeArray,\n SerializedTypeClassType as CapnpSerializedTypeClassType,\n SerializedTypeEnum as CapnpSerializedTypeEnum,\n SerializedTypeFunction as CapnpSerializedTypeFunction,\n SerializedTypeInfer as CapnpSerializedTypeInfer,\n SerializedTypeIntersection as CapnpSerializedTypeIntersection,\n SerializedTypeLiteral as CapnpSerializedTypeLiteral,\n SerializedTypeMethod as CapnpSerializedTypeMethod,\n SerializedTypeMethodSignature as CapnpSerializedTypeMethodSignature,\n SerializedTypeObjectLiteral as CapnpSerializedTypeObjectLiteral,\n SerializedTypeOther as CapnpSerializedTypeOther,\n SerializedTypeParameter as CapnpSerializedTypeParameter,\n SerializedTypeProperty as CapnpSerializedTypeProperty,\n SerializedTypePropertySignature as CapnpSerializedTypePropertySignature,\n SerializedTypeTuple as CapnpSerializedTypeTuple,\n SerializedTypeTupleMember as CapnpSerializedTypeTupleMember,\n SerializedTypeUnion as CapnpSerializedTypeUnion,\n SimpleSerializedType as CapnpSimpleSerializedType,\n TagsReflection as CapnpTagsReflection,\n SerializedType_Type\n} from \"../schemas/reflection\";\n\n/**\n * Converts a Deepkit serialized type to a Cap'n Proto serialized type.\n *\n * @param serializedTypes - The [Deepkit](https://deepkit.io/) {@link SerializedType | serialized type} to convert\n * @param result - The {@link capnp.List | list} object defined in a [Cap'n Proto](https://capnproto.org/) schema to write the converted type to\n */\nexport function convertToCapnp(\n serializedTypes: SerializedTypes,\n result: List<CapnpSerializedType>\n): List<CapnpSerializedType> {\n if (\n !serializedTypes ||\n !Array.isArray(serializedTypes) ||\n serializedTypes.length === 0\n ) {\n throw new Error(\"Invalid serialized type provided for conversion.\");\n }\n\n if (serializedTypes.length !== result.length) {\n throw new Error(\n `Mismatch in length of serialized types: expected ${\n result.length\n }, got ${serializedTypes.length}.`\n );\n }\n\n serializedTypes\n .filter(\n serializedType =>\n isSetObject(serializedType) && !isUndefined(serializedType.kind)\n )\n .forEach((serializedType, index) => {\n convertToCapnpBase(serializedType, result.get(index)._initType());\n });\n\n return result;\n}\n\n/**\n * Converts a Deepkit serialized type to a Cap'n Proto serialized type.\n *\n * @param serializedTypes - The {@link capnp.List | list} object defined in a [Cap'n Proto](https://capnproto.org/) schema\n * @returns The [Deepkit](https://deepkit.io/) {@link SerializedTypes | serialized types} converted from the Cap'n Proto serialized type\n */\nexport function convertFromCapnp(\n serializedTypes: List<CapnpSerializedType>\n): SerializedTypes {\n if (!serializedTypes) {\n throw new Error(\"Invalid serialized type provided for conversion.\");\n }\n\n const result = [] as SerializedTypes;\n serializedTypes.forEach(serializedType => {\n const deserializedType = convertFromCapnpBase(serializedType.type);\n result.push(deserializedType);\n });\n\n return result;\n}\n\n/**\n * Converts a Deepkit serialized type to a Cap'n Proto serialized type.\n *\n * @param result - The {@link capnp.List | list} object defined in a [Cap'n Proto](https://capnproto.org/) schema to write the converted type to\n * @param serializedType - The [Deepkit](https://deepkit.io/) {@link SerializedType | serialized type} to convert\n */\nexport function convertToCapnpTagsReflection(\n result: CapnpTagsReflection,\n serializedType?: TagsReflection\n): CapnpTagsReflection {\n if (serializedType?.alias?.length) {\n const alias = result._initAlias(serializedType.alias.length);\n serializedType.alias.forEach((a, index) => {\n alias.set(index, a);\n });\n }\n\n result.hidden = serializedType?.hidden ?? false;\n result.ignore = serializedType?.ignore ?? false;\n result.internal = serializedType?.internal ?? false;\n result.readonly = serializedType?.readonly ?? false;\n\n if (serializedType?.title) {\n result.title = serializedType?.title;\n }\n\n if (serializedType?.domain) {\n result.domain = serializedType?.domain;\n }\n\n if (serializedType?.permission?.length) {\n const permission = result._initPermission(serializedType.permission.length);\n serializedType.permission?.forEach((p, index) => {\n permission.set(index, p);\n });\n }\n\n return result;\n}\n\nexport interface WithTagsReflection {\n _hasTags: () => boolean;\n tags?: {\n alias: string[];\n hidden: boolean;\n domain: string;\n title: string;\n ignore: boolean;\n internal: boolean;\n readonly: boolean;\n permission: string[];\n };\n}\n\nexport function convertFromCapnpTagsReflection(\n serializedType: WithTagsReflection\n) {\n return serializedType._hasTags()\n ? {\n alias: serializedType.tags?.alias?.length\n ? serializedType.tags?.alias.map(value => value)\n : undefined,\n hidden: serializedType.tags?.hidden,\n domain: serializedType.tags?.domain\n ? serializedType.tags.domain\n : undefined,\n title: serializedType.tags?.title\n ? serializedType.tags.title\n : undefined,\n ignore: serializedType.tags?.ignore,\n internal: serializedType.tags?.internal,\n readonly: serializedType.tags?.readonly,\n permission: serializedType.tags?.permission?.length\n ? serializedType.tags?.permission?.map(value => value)\n : undefined\n }\n : undefined;\n}\n\ninterface CapnpIndexAccessOriginSerializedType {\n container: SerializedTypeReference;\n index: SerializedTypeReference;\n}\n\n/**\n * Converts a Deepkit serialized type to a Cap'n Proto serialized type.\n *\n * @param result - The {@link capnp.List | list} object defined in a [Cap'n Proto](https://capnproto.org/) schema to write the converted type to\n * @param serializedType - The [Deepkit](https://deepkit.io/) {@link SerializedType | serialized type} to convert\n */\nexport function convertToCapnpIndexAccessOrigin(\n result: CapnpIndexAccessOrigin,\n serializedType?: CapnpIndexAccessOriginSerializedType\n): CapnpIndexAccessOrigin {\n const indexAccessOriginIndex = result._initIndex();\n indexAccessOriginIndex.id = serializedType?.index ?? 0;\n const indexAccessOriginContainer = result._initContainer();\n indexAccessOriginContainer.id = serializedType?.container ?? 0;\n\n return result;\n}\n\nexport interface WithIndexAccessOrigin {\n _hasIndexAccessOrigin: () => boolean;\n indexAccessOrigin?: {\n container: {\n id: number;\n };\n index: {\n id: number;\n };\n };\n}\n\nexport function convertFromCapnpIndexAccessOrigin(\n serializedType: WithIndexAccessOrigin\n) {\n return serializedType._hasIndexAccessOrigin()\n ? {\n container: Number(serializedType.indexAccessOrigin?.container.id),\n index: Number(serializedType.indexAccessOrigin?.index.id)\n }\n : undefined;\n}\n\n/**\n * Converts a Deepkit serialized type to a Cap'n Proto serialized type.\n *\n * @param serializedType - The [Deepkit](https://deepkit.io/) {@link SerializedType | serialized type} to convert\n * @param result - The {@link capnp.List | list} object defined in a [Cap'n Proto](https://capnproto.org/) schema to write the converted type to\n */\nexport function convertToCapnpBase(\n serializedType: SerializedType,\n result: SerializedType_Type\n): SerializedType_Type {\n if (serializedType.kind === ReflectionKind.objectLiteral) {\n const objectLiteral = result._initObjectLiteral();\n convertToCapnpObjectLiteral(serializedType, objectLiteral);\n } else if (serializedType.kind === ReflectionKind.class) {\n const classType = result._initClassType();\n convertToCapnpClassType(serializedType, classType);\n } else if (serializedType.kind === ReflectionKind.parameter) {\n const parameter = result._initParameter();\n convertToCapnpParameter(serializedType, parameter);\n } else if (serializedType.kind === ReflectionKind.function) {\n const functionType = result._initFunction();\n convertToCapnpFunction(serializedType, functionType);\n } else if (serializedType.kind === ReflectionKind.method) {\n const methodType = result._initMethod();\n convertToCapnpMethod(serializedType, methodType);\n } else if (serializedType.kind === ReflectionKind.infer) {\n const inferType = result._initInfer();\n convertToCapnpInfer(serializedType, inferType);\n } else if (serializedType.kind === ReflectionKind.union) {\n const unionType = result._initUnion();\n convertToCapnpUnion(serializedType, unionType);\n } else if (serializedType.kind === ReflectionKind.array) {\n const arrayType = result._initArray();\n convertToCapnpArray(serializedType, arrayType);\n } else if (serializedType.kind === ReflectionKind.intersection) {\n const intersectionType = result._initIntersection();\n convertToCapnpIntersection(serializedType, intersectionType);\n } else if (serializedType.kind === ReflectionKind.enum) {\n const enumType = result._initEnum();\n convertToCapnpEnum(serializedType, enumType);\n } else if (serializedType.kind === ReflectionKind.property) {\n const propertyType = result._initProperty();\n convertToCapnpProperty(serializedType, propertyType);\n } else if (serializedType.kind === ReflectionKind.tuple) {\n const tupleType = result._initTuple();\n convertToCapnpTuple(serializedType, tupleType);\n } else if (serializedType.kind === ReflectionKind.tupleMember) {\n const tupleMemberType = result._initTupleMember();\n convertToCapnpTupleMember(serializedType, tupleMemberType);\n } else if (serializedType.kind === ReflectionKind.propertySignature) {\n const propertySignatureType = result._initPropertySignature();\n convertToCapnpPropertySignature(serializedType, propertySignatureType);\n } else if (serializedType.kind === ReflectionKind.methodSignature) {\n const methodSignatureType = result._initMethodSignature();\n convertToCapnpMethodSignature(serializedType, methodSignatureType);\n } else if (serializedType.kind === ReflectionKind.literal) {\n const literalType = result._initLiteral();\n convertToCapnpLiteral(serializedType, literalType);\n } else if (\n serializedType.kind === ReflectionKind.never ||\n serializedType.kind === ReflectionKind.any ||\n serializedType.kind === ReflectionKind.unknown ||\n serializedType.kind === ReflectionKind.void ||\n serializedType.kind === ReflectionKind.object ||\n serializedType.kind === ReflectionKind.string ||\n serializedType.kind === ReflectionKind.number ||\n serializedType.kind === ReflectionKind.boolean ||\n serializedType.kind === ReflectionKind.symbol ||\n serializedType.kind === ReflectionKind.bigint ||\n serializedType.kind === ReflectionKind.null ||\n serializedType.kind === ReflectionKind.undefined ||\n serializedType.kind === ReflectionKind.regexp\n ) {\n const simpleType = result._initSimple();\n convertToCapnpSimple(serializedType, simpleType);\n } else {\n const otherType = result._initOther();\n convertToCapnpOther(serializedType, otherType);\n }\n\n return result;\n}\n\nexport function convertFromCapnpBase(\n serializedType: SerializedType_Type\n): SerializedType {\n if (serializedType._isObjectLiteral) {\n return convertFromCapnpObjectLiteral(serializedType.objectLiteral);\n } else if (serializedType._isClassType) {\n return convertFromCapnpClassType(serializedType.classType);\n } else if (serializedType._isParameter) {\n return convertFromCapnpParameter(serializedType.parameter);\n } else if (serializedType._isFunction) {\n return convertFromCapnpFunction(serializedType.function);\n } else if (serializedType._isInfer) {\n return convertFromCapnpInfer(serializedType.infer);\n } else if (serializedType._isMethod) {\n return convertFromCapnpMethod(serializedType.method);\n } else if (serializedType._isUnion) {\n return convertFromCapnpUnion(serializedType.union);\n } else if (serializedType._isArray) {\n return convertFromCapnpArray(serializedType.array);\n } else if (serializedType._isIntersection) {\n return convertFromCapnpIntersection(serializedType.intersection);\n } else if (serializedType._isEnum) {\n return convertFromCapnpEnum(serializedType.enum);\n } else if (serializedType._isProperty) {\n return convertFromCapnpProperty(serializedType.property);\n } else if (serializedType._isTuple) {\n return convertFromCapnpTuple(serializedType.tuple);\n } else if (serializedType._isTupleMember) {\n return convertFromCapnpTupleMember(serializedType.tupleMember);\n } else if (serializedType._isPropertySignature) {\n return convertFromCapnpPropertySignature(serializedType.propertySignature);\n } else if (serializedType._isMethodSignature) {\n return convertFromCapnpMethodSignature(serializedType.methodSignature);\n } else if (serializedType._isLiteral) {\n return convertFromCapnpLiteral(serializedType.literal);\n } else if (serializedType._isSimple) {\n return convertFromCapnpSimple(serializedType.simple);\n } else if (serializedType._isOther) {\n return convertFromCapnpOther(serializedType.other);\n } else {\n throw new Error(\n `Unsupported serialized type kind: ${serializedType.toString()}`\n );\n }\n}\n\nexport function convertFromCapnpOther(\n serializedType: CapnpSerializedTypeOther\n): SerializedType {\n return {\n kind: serializedType.kind,\n typeName: serializedType.typeName || undefined\n } as SerializedType;\n}\n\nexport function convertFromCapnpSimple(\n serializedType: CapnpSimpleSerializedType\n): SimpleSerializedType {\n const result: SimpleSerializedType = {\n kind: serializedType.kind as\n | ReflectionKind.never\n | ReflectionKind.any\n | ReflectionKind.unknown\n | ReflectionKind.void\n | ReflectionKind.object\n | ReflectionKind.string\n | ReflectionKind.number\n | ReflectionKind.boolean\n | ReflectionKind.symbol\n | ReflectionKind.bigint\n | ReflectionKind.null\n | ReflectionKind.undefined\n | ReflectionKind.regexp,\n typeName: serializedType.typeName || undefined,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType)\n };\n\n if (serializedType._hasOrigin()) {\n result.origin = Number(serializedType.origin.id);\n }\n\n return result;\n}\n\nexport function convertToCapnpOther(\n serializedType: {\n kind: ReflectionKind;\n typeName?: string;\n },\n result: CapnpSerializedTypeOther\n): CapnpSerializedTypeOther {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n\n return result;\n}\n\nexport function convertToCapnpSimple(\n serializedType: SimpleSerializedType,\n result: CapnpSimpleSerializedType\n): CapnpSimpleSerializedType {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n\n if (serializedType.origin) {\n result._initOrigin();\n result.origin.id = serializedType.origin ?? 0;\n }\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(serializedType.decorators.length);\n serializedType.decorators.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments.length\n );\n serializedType.typeArguments.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n return result;\n}\n\nexport function convertFromCapnpLiteral(\n serializedType: CapnpSerializedTypeLiteral\n): SerializedTypeLiteral {\n const result: SerializedTypeLiteral = {\n kind: ReflectionKind.literal,\n literal: serializedType.literal._isString\n ? serializedType.literal.string\n : serializedType.literal._isNumber\n ? serializedType.literal.number\n : serializedType.literal._isBoolean\n ? serializedType.literal.boolean\n : serializedType.literal._isBigint\n ? {\n type: \"bigint\",\n value: serializedType.literal.bigint.value\n }\n : serializedType.literal._isSymbol\n ? {\n type: \"symbol\",\n name: serializedType.literal.symbol.name\n }\n : {\n type: \"regex\",\n regex: serializedType.literal.regex.regex\n },\n typeName: serializedType.typeName || undefined,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType)\n };\n\n return result;\n}\n\nexport function convertToCapnpLiteral(\n serializedType: SerializedTypeLiteral,\n result: CapnpSerializedTypeLiteral\n): CapnpSerializedTypeLiteral {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n\n const literalType = result._initLiteral();\n if (typeof serializedType.literal === \"boolean\") {\n literalType.boolean = serializedType.literal;\n } else if (typeof serializedType.literal === \"number\") {\n literalType.number = serializedType.literal;\n } else if (typeof serializedType.literal === \"string\") {\n literalType.string = serializedType.literal;\n } else if (serializedType.literal.type === \"bigint\") {\n const literalTypeBigint = literalType._initBigint();\n literalTypeBigint.type = \"bigint\";\n literalTypeBigint.value = serializedType.literal.value;\n } else if (serializedType.literal.type === \"symbol\") {\n const literalTypeSymbol = literalType._initSymbol();\n literalTypeSymbol.type = \"symbol\";\n literalTypeSymbol.name = serializedType.literal.name\n .toString()\n .slice(7, -1);\n } else if (serializedType.literal.type === \"regex\") {\n const literalTypeRegex = literalType._initRegex();\n literalTypeRegex.type = \"regex\";\n literalTypeRegex.regex = serializedType.literal.regex;\n }\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(serializedType.decorators.length);\n serializedType.decorators.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments.length\n );\n serializedType.typeArguments.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n return result;\n}\n\nexport function convertFromCapnpMethodSignature(\n serializedType: CapnpSerializedTypeMethodSignature\n): SerializedTypeMethodSignature {\n const result: SerializedTypeMethodSignature = {\n kind: ReflectionKind.methodSignature,\n name: serializedType.name,\n typeName: serializedType.typeName || undefined,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n parameters: serializedType._hasParameters()\n ? serializedType.parameters.map(p => convertFromCapnpParameter(p))\n : [],\n return: serializedType.return.id,\n tags: convertFromCapnpTagsReflection(serializedType)\n };\n\n return result;\n}\n\nexport function convertToCapnpMethodSignature(\n serializedType: SerializedTypeMethodSignature,\n result: CapnpSerializedTypeMethodSignature\n): CapnpSerializedTypeMethodSignature {\n result.kind = serializedType.kind;\n result.name = String(serializedType.name);\n result.typeName = serializedType.typeName || \"\";\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(serializedType.decorators.length);\n serializedType.decorators.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments.length\n );\n serializedType.typeArguments.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n if (serializedType.tags) {\n const tags = result._initTags();\n convertToCapnpTagsReflection(tags, serializedType.tags);\n }\n\n return result;\n}\n\nexport function convertFromCapnpPropertySignature(\n serializedType: CapnpSerializedTypePropertySignature\n): SerializedTypePropertySignature {\n const result: SerializedTypePropertySignature = {\n kind: ReflectionKind.propertySignature,\n name: serializedType.name,\n typeName: serializedType.typeName || undefined,\n description: serializedType.description,\n default: convertFromCapnpDefault(serializedType.default),\n optional: serializedType.optional ? true : undefined,\n readonly: serializedType.readonly ? true : undefined,\n type: serializedType.type.id,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType),\n tags: convertFromCapnpTagsReflection(serializedType)\n };\n\n return result;\n}\n\nexport function convertToCapnpDefault(\n defaultValue: any,\n result: CapnpDefaultValueReflection\n) {\n if (typeof defaultValue !== \"undefined\" && defaultValue !== \"\") {\n result._initValue();\n\n if (typeof defaultValue === \"string\") {\n result.value.string = defaultValue;\n } else if (typeof defaultValue === \"number\") {\n if (isInteger(defaultValue)) {\n result.value.integer = defaultValue;\n } else {\n result.value.float = defaultValue;\n }\n } else if (typeof defaultValue === \"boolean\") {\n result.value.boolean = defaultValue;\n }\n }\n}\n\nexport function convertFromCapnpDefault(\n serializedType: CapnpDefaultValueReflection\n): any {\n if (typeof serializedType.value === \"undefined\") {\n return undefined;\n } else if (serializedType.value._isBoolean) {\n return serializedType.value.boolean;\n } else if (serializedType.value._isInteger) {\n return serializedType.value.integer;\n } else if (serializedType.value._isFloat) {\n return serializedType.value.float;\n } else if (serializedType.value._isString) {\n return serializedType.value.string;\n }\n}\n\nexport function convertToCapnpPropertySignature(\n serializedType: SerializedTypePropertySignature,\n result: CapnpSerializedTypePropertySignature\n): CapnpSerializedTypePropertySignature {\n result.kind = serializedType.kind;\n result.name = String(serializedType.name) || \"\";\n result.typeName = serializedType.typeName || \"\";\n result.description = serializedType.description || \"\";\n result.optional = serializedType.optional ?? false;\n result.readonly = serializedType.readonly ?? false;\n\n if (typeof serializedType.default !== \"undefined\") {\n const defaultValue = result._initDefault();\n convertToCapnpDefault(serializedType.default, defaultValue);\n }\n\n const type = result._initType();\n type.id = serializedType.type;\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(serializedType.decorators.length);\n serializedType.decorators.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments.length\n );\n serializedType.typeArguments.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n if (serializedType.tags) {\n const tags = result._initTags();\n convertToCapnpTagsReflection(tags, serializedType.tags);\n }\n\n return result;\n}\n\nexport function convertToCapnpTupleMember(\n serializedType: SerializedTypeTupleMember,\n result: CapnpSerializedTypeTupleMember\n): CapnpSerializedTypeTupleMember {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n\n const type = result._initType();\n type.id = serializedType.type;\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(serializedType.decorators.length);\n serializedType.decorators.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments.length\n );\n serializedType.typeArguments.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n return result;\n}\n\nexport function convertFromCapnpTupleMember(\n serializedType: CapnpSerializedTypeTupleMember\n): SerializedTypeTupleMember {\n const result: SerializedTypeTupleMember = {\n kind: ReflectionKind.tupleMember,\n type: serializedType.type.id,\n typeName: serializedType.typeName || undefined,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType)\n };\n\n return result;\n}\n\nexport function convertToCapnpTuple(\n serializedType: SerializedTypeTuple,\n result: CapnpSerializedTypeTuple\n): CapnpSerializedTypeTuple {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n\n const types = result._initTypes(serializedType.types.length);\n serializedType.types.forEach((t, index) => {\n const serializedTypeType = types.get(index);\n convertToCapnpTupleMember(t, serializedTypeType);\n });\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(\n serializedType.decorators?.length ?? 0\n );\n serializedType.decorators?.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments?.length ?? 0\n );\n serializedType.typeArguments?.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n return result;\n}\n\nexport function convertFromCapnpTuple(\n serializedType: CapnpSerializedTypeTuple\n): SerializedTypeTuple {\n const result: SerializedTypeTuple = {\n kind: ReflectionKind.tuple,\n typeName: serializedType.typeName || undefined,\n types: serializedType._hasTypes()\n ? serializedType.types.map(t => convertFromCapnpTupleMember(t))\n : [],\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType)\n };\n\n return result;\n}\n\nexport function convertToCapnpProperty(\n serializedType: SerializedTypeProperty,\n result: CapnpSerializedTypeProperty\n): CapnpSerializedTypeProperty {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n result.description = serializedType.description || \"\";\n result.optional = serializedType.optional ?? false;\n result.readonly = serializedType.readonly ?? false;\n result.visibility =\n serializedType.visibility === ReflectionVisibility.public\n ? CapnpReflectionVisibility.PUBLIC\n : serializedType.visibility === ReflectionVisibility.protected\n ? CapnpReflectionVisibility.PROTECTED\n : CapnpReflectionVisibility.PRIVATE;\n result.abstract = serializedType.abstract ?? false;\n result.name = String(serializedType.name) || \"\";\n\n if (typeof serializedType.default !== \"undefined\") {\n const defaultValue = result._initDefault();\n convertToCapnpDefault(serializedType.default, defaultValue);\n }\n\n const type = result._initType();\n type.id = serializedType.type;\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(\n serializedType.decorators?.length ?? 0\n );\n serializedType.decorators?.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments?.length ?? 0\n );\n serializedType.typeArguments?.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n if (serializedType.tags) {\n const tags = result._initTags();\n convertToCapnpTagsReflection(tags, serializedType.tags);\n }\n\n return result;\n}\n\nexport function convertFromCapnpProperty(\n serializedType: CapnpSerializedTypeProperty\n): SerializedTypeProperty {\n const result: SerializedTypeProperty = {\n kind: ReflectionKind.property,\n typeName: serializedType.typeName || undefined,\n description: serializedType.description,\n default: convertFromCapnpDefault(serializedType.default),\n optional: serializedType.optional ? true : undefined,\n readonly: serializedType.readonly ? true : undefined,\n visibility:\n serializedType.visibility === CapnpReflectionVisibility.PUBLIC\n ? ReflectionVisibility.public\n : serializedType.visibility === CapnpReflectionVisibility.PROTECTED\n ? ReflectionVisibility.protected\n : ReflectionVisibility.private,\n abstract: serializedType.abstract ? true : undefined,\n name: serializedType.name,\n type: serializedType.type.id,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType),\n tags: convertFromCapnpTagsReflection(serializedType)\n };\n\n return result;\n}\n\nexport function convertToCapnpEnum(\n serializedType: SerializedTypeEnum,\n result: CapnpSerializedTypeEnum\n): CapnpSerializedTypeEnum {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n\n const indexType = result._initIndexType();\n indexType.id = serializedType.indexType;\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(\n serializedType.decorators?.length ?? 0\n );\n serializedType.decorators?.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments?.length ?? 0\n );\n serializedType.typeArguments?.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n if (serializedType.values?.length) {\n const values = result._initValues(serializedType.values?.length);\n serializedType.values.forEach((value, index) => {\n values.set(index, String(value));\n });\n }\n\n const enumEntries = result._initEnumEntries(\n Object.keys(serializedType.enum).length ?? 0\n );\n Object.entries(serializedType.enum).forEach(([key, value], index) => {\n const enumEntry = enumEntries.get(index);\n enumEntry.name = key;\n enumEntry.value = String(value);\n });\n\n if (serializedType.tags) {\n const tags = result._initTags();\n convertToCapnpTagsReflection(tags, serializedType.tags);\n }\n\n return result;\n}\n\nexport function convertFromCapnpEnum(\n serializedType: CapnpSerializedTypeEnum\n): SerializedTypeEnum {\n const result: SerializedTypeEnum = {\n kind: ReflectionKind.enum,\n typeName: serializedType.typeName || undefined,\n indexType: serializedType.indexType.id,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n values: serializedType._hasValues()\n ? serializedType.values.map(value => value)\n : [],\n enum: serializedType._hasEnumEntries()\n ? Object.entries(serializedType.enumEntries).reduce(\n (ret, [key, value]) => {\n ret[key] = value.value;\n return ret;\n },\n {} as Record<string, string>\n )\n : {},\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType),\n tags: convertFromCapnpTagsReflection(serializedType)\n };\n\n return result;\n}\n\nexport function convertToCapnpIntersection(\n serializedType: SerializedTypeIntersection,\n result: CapnpSerializedTypeIntersection\n): CapnpSerializedTypeIntersection {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n\n const types = result._initTypes(serializedType.types?.length ?? 0);\n serializedType.types?.forEach((t, index) => {\n const serializedTypeType = types.get(index);\n serializedTypeType.id = t;\n });\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(\n serializedType.decorators?.length ?? 0\n );\n serializedType.decorators?.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments?.length ?? 0\n );\n serializedType.typeArguments?.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n return result;\n}\n\nexport function convertFromCapnpIntersection(\n serializedType: CapnpSerializedTypeIntersection\n): SerializedTypeIntersection {\n const result: SerializedTypeIntersection = {\n kind: ReflectionKind.intersection,\n typeName: serializedType.typeName || undefined,\n types: serializedType._hasTypes()\n ? serializedType.types.map(t => t.id)\n : [],\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType)\n };\n\n return result;\n}\n\nexport function convertToCapnpArray(\n serializedType: SerializedTypeArray,\n result: CapnpSerializedTypeArray\n): CapnpSerializedTypeArray {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n\n const type = result._initType();\n type.id = serializedType.type;\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(\n serializedType.decorators?.length ?? 0\n );\n serializedType.decorators?.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments?.length ?? 0\n );\n serializedType.typeArguments?.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n if (serializedType.tags) {\n const tags = result._initTags();\n convertToCapnpTagsReflection(tags, serializedType.tags);\n }\n\n return result;\n}\n\nexport function convertFromCapnpArray(\n serializedType: CapnpSerializedTypeArray\n): SerializedTypeArray {\n const result: SerializedTypeArray = {\n kind: ReflectionKind.array,\n typeName: serializedType.typeName || undefined,\n type: serializedType.type.id,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType),\n tags: convertFromCapnpTagsReflection(serializedType)\n };\n\n return result;\n}\n\n/**\n * Converts a Deepkit serialized type to a Cap'n Proto serialized type.\n *\n * @param serializedType - The [Deepkit](https://deepkit.io/) {@link SerializedType | serialized type} to convert\n * @param result - The {@link capnp.List | list} object defined in a [Cap'n Proto](https://capnproto.org/) schema to write the converted type to\n */\nexport function convertToCapnpUnion(\n serializedType: SerializedTypeUnion,\n result: CapnpSerializedTypeUnion\n): CapnpSerializedTypeUnion {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n\n const types = result._initTypes(serializedType.types?.length ?? 0);\n serializedType.types?.forEach((t, index) => {\n const serializedTypeType = types.get(index);\n serializedTypeType.id = t;\n });\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(\n serializedType.decorators?.length ?? 0\n );\n serializedType.decorators?.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments?.length ?? 0\n );\n serializedType.typeArguments?.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n return result;\n}\n\nexport function convertFromCapnpUnion(\n serializedType: CapnpSerializedTypeUnion\n): SerializedTypeUnion {\n const result: SerializedTypeUnion = {\n kind: ReflectionKind.union,\n typeName: serializedType.typeName || undefined,\n types: serializedType._hasTypes()\n ? serializedType.types.map(t => t.id)\n : [],\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType)\n };\n\n return result;\n}\n\n/**\n * Converts a Deepkit serialized type to a Cap'n Proto serialized type.\n *\n * @param serializedType - The [Deepkit](https://deepkit.io/) {@link SerializedType | serialized type} to convert.\n * @param result - The {@link capnp.List | list} object defined in a [Cap'n Proto](https://capnproto.org/) schema to write the converted type to\n */\nexport function convertToCapnpInfer(\n serializedType: SerializedTypeInfer,\n result: CapnpSerializedTypeInfer\n): CapnpSerializedTypeInfer {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(\n serializedType.decorators?.length ?? 0\n );\n serializedType.decorators?.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments?.length ?? 0\n );\n serializedType.typeArguments?.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n return result;\n}\n\nexport function convertFromCapnpInfer(\n serializedType: CapnpSerializedTypeInfer\n): SerializedTypeInfer {\n const result: SerializedTypeInfer = {\n kind: ReflectionKind.infer,\n typeName: serializedType.typeName || undefined,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType)\n };\n\n return result;\n}\n\n/**\n * Converts a Deepkit serialized type to a Cap'n Proto serialized type.\n *\n * @param serializedType - The [Deepkit](https://deepkit.io/) {@link SerializedType | serialized type} to convert\n * @param result - The {@link capnp.List | list} object defined in a [Cap'n Proto](https://capnproto.org/) schema to write the converted type to\n */\nexport function convertToCapnpFunction(\n serializedType: SerializedTypeFunction,\n result: CapnpSerializedTypeFunction\n): CapnpSerializedTypeFunction {\n result.name = String(serializedType.name) || \"\";\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(serializedType.decorators.length);\n serializedType.decorators.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments.length\n );\n serializedType.typeArguments.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.parameters?.length) {\n const parameters = result._initParameters(serializedType.parameters.length);\n serializedType.parameters.forEach((p, index) => {\n const parameter = parameters.get(index);\n convertToCapnpParameter(p, parameter);\n });\n }\n\n const returnType = result._initReturn();\n returnType.id = serializedType.return;\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n if (serializedType.tags) {\n const tags = result._initTags();\n convertToCapnpTagsReflection(tags, serializedType.tags);\n }\n\n return result;\n}\n\n/**\n * Converts a Deepkit serialized type to a Cap'n Proto serialized type.\n *\n * @param serializedType - The [Deepkit](https://deepkit.io/) {@link SerializedType | serialized type} to convert\n * @param result - The {@link capnp.List | list} object defined in a [Cap'n Proto](https://capnproto.org/) schema to write the converted type to\n */\nexport function convertToCapnpMethod(\n serializedType: SerializedTypeMethod,\n result: CapnpSerializedTypeMethod\n): CapnpSerializedTypeMethod {\n result.name = String(serializedType.name) || \"\";\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n result.abstract = serializedType.abstract ?? false;\n result.visibility =\n serializedType.visibility === ReflectionVisibility.public\n ? CapnpReflectionVisibility.PUBLIC\n : serializedType.visibility === ReflectionVisibility.protected\n ? CapnpReflectionVisibility.PROTECTED\n : CapnpReflectionVisibility.PRIVATE;\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(serializedType.decorators.length);\n serializedType.decorators.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments.length\n );\n serializedType.typeArguments.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.parameters?.length) {\n const parameters = result._initParameters(serializedType.parameters.length);\n serializedType.parameters.forEach((p, index) => {\n const parameter = parameters.get(index);\n convertToCapnpParameter(p, parameter);\n });\n }\n\n const returnType = result._initReturn();\n returnType.id = serializedType.return;\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n if (serializedType.tags) {\n const tags = result._initTags();\n convertToCapnpTagsReflection(tags, serializedType.tags);\n }\n\n return result;\n}\n\nexport function convertFromCapnpFunction(\n serializedType: CapnpSerializedTypeFunction\n): SerializedTypeFunction {\n const result: SerializedTypeFunction = {\n kind: ReflectionKind.function,\n name: serializedType.name,\n typeName: serializedType.typeName || undefined,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n parameters: serializedType._hasParameters()\n ? serializedType.parameters.map(p => convertFromCapnpParameter(p))\n : [],\n return: serializedType.return.id,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType),\n tags: convertFromCapnpTagsReflection(serializedType)\n };\n\n return result;\n}\n\nfunction convertFromCapnpMethod(\n serializedType: CapnpSerializedTypeMethod\n): SerializedTypeMethod {\n const result: SerializedTypeMethod = {\n kind: ReflectionKind.method,\n name: serializedType.name,\n typeName: serializedType.typeName || undefined,\n abstract: serializedType.abstract ? true : undefined,\n return: serializedType.return.id,\n visibility:\n serializedType.visibility === CapnpReflectionVisibility.PUBLIC\n ? ReflectionVisibility.public\n : serializedType.visibility === CapnpReflectionVisibility.PROTECTED\n ? ReflectionVisibility.protected\n : ReflectionVisibility.private,\n parameters: serializedType._hasParameters()\n ? serializedType.parameters.map(parameter =>\n convertFromCapnpParameter(parameter)\n )\n : []\n };\n\n return result;\n}\n\n/**\n * Converts a Deepkit serialized type to a Cap'n Proto serialized type.\n *\n * @param serializedType - The [Deepkit](https://deepkit.io/) {@link SerializedType | serialized type} to convert\n * @param result - The {@link capnp.List | list} object defined in a [Cap'n Proto](https://capnproto.org/) schema to write the converted type to\n */\nexport function convertToCapnpClassType(\n serializedType: SerializedTypeClassType,\n result: CapnpSerializedTypeClassType\n): CapnpSerializedTypeClassType {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n result.classType = serializedType.classType || \"\";\n result.globalObject = serializedType.globalObject ?? false;\n\n if (serializedType.arguments?.length) {\n const _arguments = result._initArguments(serializedType.arguments.length);\n serializedType.arguments.forEach((t, index) => {\n const serializedTypeArguments = _arguments.get(index);\n serializedTypeArguments.id = t;\n });\n }\n\n if (serializedType.extendsArguments?.length) {\n const extendsArguments = result._initArguments(\n serializedType.extendsArguments.length\n );\n serializedType.extendsArguments.forEach((t, index) => {\n const serializedTypeExtendsArguments = extendsArguments.get(index);\n serializedTypeExtendsArguments.id = t;\n });\n }\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(serializedType.decorators.length);\n serializedType.decorators.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments.length\n );\n serializedType.typeArguments.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.superClass) {\n const superClass = result._initSuperClass();\n superClass.id = serializedType.superClass;\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n if (serializedType.tags) {\n const tags = result._initTags();\n convertToCapnpTagsReflection(tags, serializedType.tags);\n }\n\n return result;\n}\n\nexport function convertFromCapnpClassType(\n serializedType: CapnpSerializedTypeClassType\n): SerializedTypeClassType {\n const result: SerializedTypeClassType = {\n kind: ReflectionKind.class,\n typeName: serializedType.typeName || undefined,\n classType: serializedType.classType,\n globalObject: serializedType.globalObject ? true : undefined,\n arguments: serializedType._hasArguments()\n ? serializedType.arguments.map(t => t.id)\n : undefined,\n extendsArguments: serializedType._hasExtendsArguments()\n ? serializedType.extendsArguments.map(t => t.id)\n : undefined,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n types: serializedType._hasTypes()\n ? serializedType.types.map(t => t.id)\n : [],\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n superClass: serializedType._hasSuperClass()\n ? serializedType.superClass.id\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType),\n tags: convertFromCapnpTagsReflection(serializedType)\n };\n\n return result;\n}\n\n/**\n * Converts a Deepkit serialized type to a Cap'n Proto serialized type.\n *\n * @param serializedType - The [Deepkit](https://deepkit.io/) {@link SerializedType | serialized type} to convert\n * @param result - The {@link capnp.List | list} object defined in a [Cap'n Proto](https://capnproto.org/) schema to write the converted type to\n */\nexport function convertToCapnpObjectLiteral(\n serializedType: SerializedTypeObjectLiteral,\n result: CapnpSerializedTypeObjectLiteral\n): CapnpSerializedTypeObjectLiteral {\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(\n serializedType.decorators?.length ?? 0\n );\n serializedType.decorators.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.types?.length) {\n const types = result._initTypes(serializedType.types.length);\n serializedType.types.forEach((t, index) => {\n const serializedTypeType = types.get(index);\n serializedTypeType.id = t;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments.length\n );\n serializedType.typeArguments.forEach((t, index) => {\n const serializedTypeTypeArguments = typeArguments.get(index);\n serializedTypeTypeArguments.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n if (serializedType.tags) {\n const tags = result._initTags();\n convertToCapnpTagsReflection(tags, serializedType.tags);\n }\n\n return result;\n}\n\nexport function convertFromCapnpObjectLiteral(\n serializedType: CapnpSerializedTypeObjectLiteral\n): SerializedTypeObjectLiteral {\n const result: SerializedTypeObjectLiteral = {\n kind: ReflectionKind.objectLiteral,\n typeName: serializedType.typeName || undefined,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n types: serializedType._hasTypes()\n ? serializedType.types.map(t => t.id)\n : [],\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType),\n tags: convertFromCapnpTagsReflection(serializedType)\n };\n\n return result;\n}\n\n/**\n * Converts a Deepkit serialized type to a Cap'n Proto serialized type.\n *\n * @param serializedType - The [Deepkit](https://deepkit.io/) {@link SerializedType | serialized type} to convert\n * @param result - The {@link capnp.List | list} object defined in a [Cap'n Proto](https://capnproto.org/) schema to write the converted type to\n */\nexport function convertToCapnpParameter(\n serializedType: SerializedTypeParameter,\n result: CapnpSerializedTypeParameter\n): CapnpSerializedTypeParameter {\n result.kind = serializedType.kind;\n result.typeName = serializedType.typeName || \"\";\n result.name = serializedType.name || \"\";\n result.optional = serializedType.optional ?? false;\n result.readonly = serializedType.readonly ?? false;\n result.visibility =\n serializedType.visibility === ReflectionVisibility.public\n ? CapnpReflectionVisibility.PUBLIC\n : serializedType.visibility === ReflectionVisibility.protected\n ? CapnpReflectionVisibility.PROTECTED\n : CapnpReflectionVisibility.PRIVATE;\n\n if (typeof serializedType.default !== \"undefined\") {\n const defaultValue = result._initDefault();\n convertToCapnpDefault(serializedType.default, defaultValue);\n }\n\n const parameterType = result._initType();\n parameterType.id = serializedType.type;\n\n if (serializedType.decorators?.length) {\n const decorators = result._initDecorators(serializedType.decorators.length);\n serializedType.decorators.forEach((d, index) => {\n const decorator = decorators.get(index);\n decorator.id = d;\n });\n }\n\n if (serializedType.typeArguments?.length) {\n const typeArguments = result._initTypeArguments(\n serializedType.typeArguments.length\n );\n serializedType.typeArguments.forEach((t, index) => {\n const typeArgument = typeArguments.get(index);\n typeArgument.id = t;\n });\n }\n\n if (serializedType.indexAccessOrigin) {\n const indexAccessOrigin = result._initIndexAccessOrigin();\n convertToCapnpIndexAccessOrigin(\n indexAccessOrigin,\n serializedType.indexAccessOrigin\n );\n }\n\n if (serializedType.tags) {\n const tags = result._initTags();\n convertToCapnpTagsReflection(tags, serializedType.tags);\n }\n\n return result;\n}\n\nexport function convertFromCapnpParameter(\n serializedType: CapnpSerializedTypeParameter\n): SerializedTypeParameter {\n const result: SerializedTypeParameter = {\n kind: ReflectionKind.parameter,\n typeName: serializedType.typeName || undefined,\n name: serializedType.name,\n default: convertFromCapnpDefault(serializedType.default),\n optional: serializedType.optional ? true : undefined,\n readonly: serializedType.readonly ? true : undefined,\n visibility:\n serializedType.visibility === CapnpReflectionVisibility.PUBLIC\n ? ReflectionVisibility.public\n : serializedType.visibility === CapnpReflectionVisibility.PROTECTED\n ? ReflectionVisibility.protected\n : ReflectionVisibility.private,\n type: serializedType.type.id,\n decorators: serializedType._hasDecorators()\n ? serializedType.decorators.map(d => d.id)\n : undefined,\n typeArguments: serializedType._hasTypeArguments()\n ? serializedType.typeArguments.map(t => t.id)\n : undefined,\n indexAccessOrigin: convertFromCapnpIndexAccessOrigin(serializedType),\n tags: convertFromCapnpTagsReflection(serializedType)\n };\n\n return result;\n}\n","import * as $ from '@stryke/capnp';\n\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar _capnpFileId = BigInt(\"0xae3c363dcecf2729\");\nvar ReflectionKind = {\n NEVER: 0,\n ANY: 1,\n UNKNOWN: 2,\n VOID: 3,\n OBJECT: 4,\n STRING: 5,\n NUMBER: 6,\n BOOLEAN: 7,\n SYMBOL: 8,\n BIGINT: 9,\n NULL: 10,\n UNDEFINED: 11,\n REGEXP: 12,\n LITERAL: 13,\n TEMPLATE_LITERAL: 14,\n PROPERTY: 15,\n METHOD: 16,\n FUNCTION: 17,\n PARAMETER: 18,\n PROMISE: 19,\n CLASS: 20,\n TYPE_PARAMETER: 21,\n ENUM: 22,\n UNION: 23,\n INTERSECTION: 24,\n ARRAY: 25,\n TUPLE: 26,\n TUPLE_MEMBER: 27,\n ENUM_MEMBER: 28,\n REST: 29,\n OBJECT_LITERAL: 30,\n INDEX_SIGNATURE: 31,\n PROPERTY_SIGNATURE: 32,\n METHOD_SIGNATURE: 33,\n INFER: 34,\n CALL_SIGNATURE: 35\n};\nvar ReflectionVisibility = {\n PUBLIC: 0,\n PROTECTED: 1,\n PRIVATE: 2\n};\nvar TagsReflection = class extends $.Struct {\n static {\n __name(this, \"TagsReflection\");\n }\n static _capnp = {\n displayName: \"TagsReflection\",\n id: \"ab7e31d6b834bbf8\",\n size: new $.ObjectSize(8, 4)\n };\n _adoptAlias(value) {\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownAlias() {\n return $.utils.disown(this.alias);\n }\n get alias() {\n return $.utils.getList(0, $.TextList, this);\n }\n _hasAlias() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initAlias(length) {\n return $.utils.initList(0, $.TextList, length, this);\n }\n set alias(value) {\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n get title() {\n return $.utils.getText(1, this);\n }\n set title(value) {\n $.utils.setText(1, value, this);\n }\n get hidden() {\n return $.utils.getBit(0, this);\n }\n set hidden(value) {\n $.utils.setBit(0, value, this);\n }\n get readonly() {\n return $.utils.getBit(1, this);\n }\n set readonly(value) {\n $.utils.setBit(1, value, this);\n }\n get ignore() {\n return $.utils.getBit(2, this);\n }\n set ignore(value) {\n $.utils.setBit(2, value, this);\n }\n get internal() {\n return $.utils.getBit(3, this);\n }\n set internal(value) {\n $.utils.setBit(3, value, this);\n }\n _adoptPermission(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownPermission() {\n return $.utils.disown(this.permission);\n }\n get permission() {\n return $.utils.getList(2, $.TextList, this);\n }\n _hasPermission() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initPermission(length) {\n return $.utils.initList(2, $.TextList, length, this);\n }\n set permission(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n get domain() {\n return $.utils.getText(3, this);\n }\n set domain(value) {\n $.utils.setText(3, value, this);\n }\n toString() {\n return \"TagsReflection_\" + super.toString();\n }\n};\nvar DefaultValueReflection_Value_Which = {\n UNDEFINED: 0,\n BOOLEAN: 1,\n INTEGER: 2,\n FLOAT: 3,\n STRING: 4\n};\nvar DefaultValueReflection_Value = class extends $.Struct {\n static {\n __name(this, \"DefaultValueReflection_Value\");\n }\n static UNDEFINED = DefaultValueReflection_Value_Which.UNDEFINED;\n static BOOLEAN = DefaultValueReflection_Value_Which.BOOLEAN;\n static INTEGER = DefaultValueReflection_Value_Which.INTEGER;\n static FLOAT = DefaultValueReflection_Value_Which.FLOAT;\n static STRING = DefaultValueReflection_Value_Which.STRING;\n static _capnp = {\n displayName: \"value\",\n id: \"8748135e0497fe81\",\n size: new $.ObjectSize(16, 1)\n };\n get _isUndefined() {\n return $.utils.getUint16(0, this) === 0;\n }\n set undefined(_) {\n $.utils.setUint16(0, 0, this);\n }\n get boolean() {\n $.utils.testWhich(\"boolean\", $.utils.getUint16(0, this), 1, this);\n return $.utils.getBit(16, this);\n }\n get _isBoolean() {\n return $.utils.getUint16(0, this) === 1;\n }\n set boolean(value) {\n $.utils.setUint16(0, 1, this);\n $.utils.setBit(16, value, this);\n }\n get integer() {\n $.utils.testWhich(\"integer\", $.utils.getUint16(0, this), 2, this);\n return $.utils.getInt32(4, this);\n }\n get _isInteger() {\n return $.utils.getUint16(0, this) === 2;\n }\n set integer(value) {\n $.utils.setUint16(0, 2, this);\n $.utils.setInt32(4, value, this);\n }\n get float() {\n $.utils.testWhich(\"float\", $.utils.getUint16(0, this), 3, this);\n return $.utils.getFloat64(8, this);\n }\n get _isFloat() {\n return $.utils.getUint16(0, this) === 3;\n }\n set float(value) {\n $.utils.setUint16(0, 3, this);\n $.utils.setFloat64(8, value, this);\n }\n get string() {\n $.utils.testWhich(\"string\", $.utils.getUint16(0, this), 4, this);\n return $.utils.getText(0, this);\n }\n get _isString() {\n return $.utils.getUint16(0, this) === 4;\n }\n set string(value) {\n $.utils.setUint16(0, 4, this);\n $.utils.setText(0, value, this);\n }\n toString() {\n return \"DefaultValueReflection_Value_\" + super.toString();\n }\n which() {\n return $.utils.getUint16(0, this);\n }\n};\nvar DefaultValueReflection = class extends $.Struct {\n static {\n __name(this, \"DefaultValueReflection\");\n }\n static _capnp = {\n displayName: \"DefaultValueReflection\",\n id: \"96fe6f07954197c9\",\n size: new $.ObjectSize(16, 1)\n };\n get value() {\n return $.utils.getAs(DefaultValueReflection_Value, this);\n }\n _initValue() {\n return $.utils.getAs(DefaultValueReflection_Value, this);\n }\n toString() {\n return \"DefaultValueReflection_\" + super.toString();\n }\n};\nvar SerializedTypeReference = class extends $.Struct {\n static {\n __name(this, \"SerializedTypeReference\");\n }\n static _capnp = {\n displayName: \"SerializedTypeReference\",\n id: \"a83d8a28b5e80f3a\",\n size: new $.ObjectSize(8, 0)\n };\n get id() {\n return $.utils.getUint32(0, this);\n }\n set id(value) {\n $.utils.setUint32(0, value, this);\n }\n toString() {\n return \"SerializedTypeReference_\" + super.toString();\n }\n};\nvar IndexAccessOrigin = class extends $.Struct {\n static {\n __name(this, \"IndexAccessOrigin\");\n }\n static _capnp = {\n displayName: \"IndexAccessOrigin\",\n id: \"ca50b18186c87afe\",\n size: new $.ObjectSize(0, 2)\n };\n _adoptContainer(value) {\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownContainer() {\n return $.utils.disown(this.container);\n }\n get container() {\n return $.utils.getStruct(0, SerializedTypeReference, this);\n }\n _hasContainer() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initContainer() {\n return $.utils.initStructAt(0, SerializedTypeReference, this);\n }\n set container(value) {\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptIndex(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownIndex() {\n return $.utils.disown(this.index);\n }\n get index() {\n return $.utils.getStruct(1, SerializedTypeReference, this);\n }\n _hasIndex() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initIndex() {\n return $.utils.initStructAt(1, SerializedTypeReference, this);\n }\n set index(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n toString() {\n return \"IndexAccessOrigin_\" + super.toString();\n }\n};\nvar EntityOptions_EntityIndexOptions = class extends $.Struct {\n static {\n __name(this, \"EntityOptions_EntityIndexOptions\");\n }\n static _capnp = {\n displayName: \"EntityIndexOptions\",\n id: \"de584ad10b7c5004\",\n size: new $.ObjectSize(0, 2)\n };\n _adoptNames(value) {\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownNames() {\n return $.utils.disown(this.names);\n }\n get names() {\n return $.utils.getList(0, $.TextList, this);\n }\n _hasNames() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initNames(length) {\n return $.utils.initList(0, $.TextList, length, this);\n }\n set names(value) {\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n /**\n * JSON stringified options\n *\n */\n get options() {\n return $.utils.getText(1, this);\n }\n set options(value) {\n $.utils.setText(1, value, this);\n }\n toString() {\n return \"EntityOptions_EntityIndexOptions_\" + super.toString();\n }\n};\nvar EntityOptions = class _EntityOptions extends $.Struct {\n static {\n __name(this, \"EntityOptions\");\n }\n static EntityIndexOptions = EntityOptions_EntityIndexOptions;\n static _capnp = {\n displayName: \"EntityOptions\",\n id: \"948d2d02cf676d60\",\n size: new $.ObjectSize(8, 5)\n };\n static _Indexes;\n get name() {\n return $.utils.getText(0, this);\n }\n set name(value) {\n $.utils.setText(0, value, this);\n }\n get description() {\n return $.utils.getText(1, this);\n }\n set description(value) {\n $.utils.setText(1, value, this);\n }\n get collection() {\n return $.utils.getText(2, this);\n }\n set collection(value) {\n $.utils.setText(2, value, this);\n }\n get database() {\n return $.utils.getText(3, this);\n }\n set database(value) {\n $.utils.setText(3, value, this);\n }\n get singleTableInheritance() {\n return $.utils.getBit(0, this);\n }\n set singleTableInheritance(value) {\n $.utils.setBit(0, value, this);\n }\n _adoptIndexes(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownIndexes() {\n return $.utils.disown(this.indexes);\n }\n get indexes() {\n return $.utils.getList(4, _EntityOptions._Indexes, this);\n }\n _hasIndexes() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initIndexes(length) {\n return $.utils.initList(4, _EntityOptions._Indexes, length, this);\n }\n set indexes(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n toString() {\n return \"EntityOptions_\" + super.toString();\n }\n};\nvar SerializedTypeObjectLiteral = class _SerializedTypeObjectLiteral extends $.Struct {\n static {\n __name(this, \"SerializedTypeObjectLiteral\");\n }\n static _capnp = {\n displayName: \"SerializedTypeObjectLiteral\",\n id: \"8b56235ad9bcb2b1\",\n size: new $.ObjectSize(8, 6)\n };\n static _TypeArguments;\n static _Decorators;\n static _Types;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeObjectLiteral._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeObjectLiteral._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeObjectLiteral._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeObjectLiteral._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n _adoptTypes(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTypes() {\n return $.utils.disown(this.types);\n }\n get types() {\n return $.utils.getList(4, _SerializedTypeObjectLiteral._Types, this);\n }\n _hasTypes() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTypes(length) {\n return $.utils.initList(4, _SerializedTypeObjectLiteral._Types, length, this);\n }\n set types(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n _adoptTags(value) {\n $.utils.adopt(value, $.utils.getPointer(5, this));\n }\n _disownTags() {\n return $.utils.disown(this.tags);\n }\n get tags() {\n return $.utils.getStruct(5, TagsReflection, this);\n }\n _hasTags() {\n return !$.utils.isNull($.utils.getPointer(5, this));\n }\n _initTags() {\n return $.utils.initStructAt(5, TagsReflection, this);\n }\n set tags(value) {\n $.utils.copyFrom(value, $.utils.getPointer(5, this));\n }\n toString() {\n return \"SerializedTypeObjectLiteral_\" + super.toString();\n }\n};\nvar SerializedTypeClassType = class _SerializedTypeClassType extends $.Struct {\n static {\n __name(this, \"SerializedTypeClassType\");\n }\n static _capnp = {\n displayName: \"SerializedTypeClassType\",\n id: \"9855392bf9c48b25\",\n size: new $.ObjectSize(8, 11)\n };\n static _TypeArguments;\n static _Decorators;\n static _ExtendsArguments;\n static _Arguments;\n static _Types;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeClassType._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeClassType._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeClassType._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeClassType._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n get name() {\n return $.utils.getText(4, this);\n }\n set name(value) {\n $.utils.setText(4, value, this);\n }\n get globalObject() {\n return $.utils.getBit(16, this);\n }\n set globalObject(value) {\n $.utils.setBit(16, value, this);\n }\n get classType() {\n return $.utils.getText(5, this);\n }\n set classType(value) {\n $.utils.setText(5, value, this);\n }\n _adoptExtendsArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownExtendsArguments() {\n return $.utils.disown(this.extendsArguments);\n }\n get extendsArguments() {\n return $.utils.getList(6, _SerializedTypeClassType._ExtendsArguments, this);\n }\n _hasExtendsArguments() {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initExtendsArguments(length) {\n return $.utils.initList(6, _SerializedTypeClassType._ExtendsArguments, length, this);\n }\n set extendsArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownArguments() {\n return $.utils.disown(this.arguments);\n }\n get arguments() {\n return $.utils.getList(7, _SerializedTypeClassType._Arguments, this);\n }\n _hasArguments() {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initArguments(length) {\n return $.utils.initList(7, _SerializedTypeClassType._Arguments, length, this);\n }\n set arguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n _adoptSuperClass(value) {\n $.utils.adopt(value, $.utils.getPointer(8, this));\n }\n _disownSuperClass() {\n return $.utils.disown(this.superClass);\n }\n get superClass() {\n return $.utils.getStruct(8, SerializedTypeReference, this);\n }\n _hasSuperClass() {\n return !$.utils.isNull($.utils.getPointer(8, this));\n }\n _initSuperClass() {\n return $.utils.initStructAt(8, SerializedTypeReference, this);\n }\n set superClass(value) {\n $.utils.copyFrom(value, $.utils.getPointer(8, this));\n }\n _adoptTypes(value) {\n $.utils.adopt(value, $.utils.getPointer(9, this));\n }\n _disownTypes() {\n return $.utils.disown(this.types);\n }\n get types() {\n return $.utils.getList(9, _SerializedTypeClassType._Types, this);\n }\n _hasTypes() {\n return !$.utils.isNull($.utils.getPointer(9, this));\n }\n _initTypes(length) {\n return $.utils.initList(9, _SerializedTypeClassType._Types, length, this);\n }\n set types(value) {\n $.utils.copyFrom(value, $.utils.getPointer(9, this));\n }\n _adoptTags(value) {\n $.utils.adopt(value, $.utils.getPointer(10, this));\n }\n _disownTags() {\n return $.utils.disown(this.tags);\n }\n get tags() {\n return $.utils.getStruct(10, TagsReflection, this);\n }\n _hasTags() {\n return !$.utils.isNull($.utils.getPointer(10, this));\n }\n _initTags() {\n return $.utils.initStructAt(10, TagsReflection, this);\n }\n set tags(value) {\n $.utils.copyFrom(value, $.utils.getPointer(10, this));\n }\n toString() {\n return \"SerializedTypeClassType_\" + super.toString();\n }\n};\nvar SerializedTypeParameter = class _SerializedTypeParameter extends $.Struct {\n static {\n __name(this, \"SerializedTypeParameter\");\n }\n static _capnp = {\n displayName: \"SerializedTypeParameter\",\n id: \"fcbaa08bb97b8b1a\",\n size: new $.ObjectSize(8, 8)\n };\n static _TypeArguments;\n static _Decorators;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeParameter._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeParameter._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeParameter._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeParameter._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n get name() {\n return $.utils.getText(4, this);\n }\n set name(value) {\n $.utils.setText(4, value, this);\n }\n _adoptType(value) {\n $.utils.adopt(value, $.utils.getPointer(5, this));\n }\n _disownType() {\n return $.utils.disown(this.type);\n }\n get type() {\n return $.utils.getStruct(5, SerializedTypeReference, this);\n }\n _hasType() {\n return !$.utils.isNull($.utils.getPointer(5, this));\n }\n _initType() {\n return $.utils.initStructAt(5, SerializedTypeReference, this);\n }\n set type(value) {\n $.utils.copyFrom(value, $.utils.getPointer(5, this));\n }\n get visibility() {\n return $.utils.getUint16(2, this);\n }\n set visibility(value) {\n $.utils.setUint16(2, value, this);\n }\n get readonly() {\n return $.utils.getBit(32, this);\n }\n set readonly(value) {\n $.utils.setBit(32, value, this);\n }\n get optional() {\n return $.utils.getBit(33, this);\n }\n set optional(value) {\n $.utils.setBit(33, value, this);\n }\n _adoptDefault(value) {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownDefault() {\n return $.utils.disown(this.default);\n }\n get default() {\n return $.utils.getStruct(6, DefaultValueReflection, this);\n }\n _hasDefault() {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initDefault() {\n return $.utils.initStructAt(6, DefaultValueReflection, this);\n }\n set default(value) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptTags(value) {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownTags() {\n return $.utils.disown(this.tags);\n }\n get tags() {\n return $.utils.getStruct(7, TagsReflection, this);\n }\n _hasTags() {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initTags() {\n return $.utils.initStructAt(7, TagsReflection, this);\n }\n set tags(value) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n toString() {\n return \"SerializedTypeParameter_\" + super.toString();\n }\n};\nvar SerializedTypeMethod = class _SerializedTypeMethod extends $.Struct {\n static {\n __name(this, \"SerializedTypeMethod\");\n }\n static _capnp = {\n displayName: \"SerializedTypeMethod\",\n id: \"8b5eff6d9ec2fb06\",\n size: new $.ObjectSize(8, 8)\n };\n static _TypeArguments;\n static _Decorators;\n static _Parameters;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeMethod._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeMethod._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeMethod._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeMethod._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get visibility() {\n return $.utils.getUint16(0, this);\n }\n set visibility(value) {\n $.utils.setUint16(0, value, this);\n }\n get abstract() {\n return $.utils.getBit(16, this);\n }\n set abstract(value) {\n $.utils.setBit(16, value, this);\n }\n get optional() {\n return $.utils.getBit(17, this);\n }\n set optional(value) {\n $.utils.setBit(17, value, this);\n }\n get readonly() {\n return $.utils.getBit(18, this);\n }\n set readonly(value) {\n $.utils.setBit(18, value, this);\n }\n _adoptTags(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTags() {\n return $.utils.disown(this.tags);\n }\n get tags() {\n return $.utils.getStruct(4, TagsReflection, this);\n }\n _hasTags() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTags() {\n return $.utils.initStructAt(4, TagsReflection, this);\n }\n set tags(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n get kind() {\n return $.utils.getUint16(4, this);\n }\n set kind(value) {\n $.utils.setUint16(4, value, this);\n }\n get name() {\n return $.utils.getText(5, this);\n }\n set name(value) {\n $.utils.setText(5, value, this);\n }\n _adoptParameters(value) {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownParameters() {\n return $.utils.disown(this.parameters);\n }\n get parameters() {\n return $.utils.getList(6, _SerializedTypeMethod._Parameters, this);\n }\n _hasParameters() {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initParameters(length) {\n return $.utils.initList(6, _SerializedTypeMethod._Parameters, length, this);\n }\n set parameters(value) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptReturn(value) {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownReturn() {\n return $.utils.disown(this.return);\n }\n get return() {\n return $.utils.getStruct(7, SerializedTypeReference, this);\n }\n _hasReturn() {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initReturn() {\n return $.utils.initStructAt(7, SerializedTypeReference, this);\n }\n set return(value) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n toString() {\n return \"SerializedTypeMethod_\" + super.toString();\n }\n};\nvar SerializedTypeProperty = class _SerializedTypeProperty extends $.Struct {\n static {\n __name(this, \"SerializedTypeProperty\");\n }\n static _capnp = {\n displayName: \"SerializedTypeProperty\",\n id: \"91d9dbea2037f78b\",\n size: new $.ObjectSize(8, 9)\n };\n static _TypeArguments;\n static _Decorators;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeProperty._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeProperty._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeProperty._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeProperty._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get visibility() {\n return $.utils.getUint16(0, this);\n }\n set visibility(value) {\n $.utils.setUint16(0, value, this);\n }\n get abstract() {\n return $.utils.getBit(16, this);\n }\n set abstract(value) {\n $.utils.setBit(16, value, this);\n }\n get optional() {\n return $.utils.getBit(17, this);\n }\n set optional(value) {\n $.utils.setBit(17, value, this);\n }\n get readonly() {\n return $.utils.getBit(18, this);\n }\n set readonly(value) {\n $.utils.setBit(18, value, this);\n }\n _adoptTags(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTags() {\n return $.utils.disown(this.tags);\n }\n get tags() {\n return $.utils.getStruct(4, TagsReflection, this);\n }\n _hasTags() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTags() {\n return $.utils.initStructAt(4, TagsReflection, this);\n }\n set tags(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n get kind() {\n return $.utils.getUint16(4, this);\n }\n set kind(value) {\n $.utils.setUint16(4, value, this);\n }\n get name() {\n return $.utils.getText(5, this);\n }\n set name(value) {\n $.utils.setText(5, value, this);\n }\n get description() {\n return $.utils.getText(6, this);\n }\n set description(value) {\n $.utils.setText(6, value, this);\n }\n _adoptType(value) {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownType() {\n return $.utils.disown(this.type);\n }\n get type() {\n return $.utils.getStruct(7, SerializedTypeReference, this);\n }\n _hasType() {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initType() {\n return $.utils.initStructAt(7, SerializedTypeReference, this);\n }\n set type(value) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n _adoptDefault(value) {\n $.utils.adopt(value, $.utils.getPointer(8, this));\n }\n _disownDefault() {\n return $.utils.disown(this.default);\n }\n get default() {\n return $.utils.getStruct(8, DefaultValueReflection, this);\n }\n _hasDefault() {\n return !$.utils.isNull($.utils.getPointer(8, this));\n }\n _initDefault() {\n return $.utils.initStructAt(8, DefaultValueReflection, this);\n }\n set default(value) {\n $.utils.copyFrom(value, $.utils.getPointer(8, this));\n }\n toString() {\n return \"SerializedTypeProperty_\" + super.toString();\n }\n};\nvar SerializedTypeFunction = class _SerializedTypeFunction extends $.Struct {\n static {\n __name(this, \"SerializedTypeFunction\");\n }\n static _capnp = {\n displayName: \"SerializedTypeFunction\",\n id: \"9130bccd82dfcfd4\",\n size: new $.ObjectSize(8, 8)\n };\n static _TypeArguments;\n static _Decorators;\n static _Parameters;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeFunction._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeFunction._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeFunction._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeFunction._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get visibility() {\n return $.utils.getUint16(0, this);\n }\n set visibility(value) {\n $.utils.setUint16(0, value, this);\n }\n get abstract() {\n return $.utils.getBit(16, this);\n }\n set abstract(value) {\n $.utils.setBit(16, value, this);\n }\n get optional() {\n return $.utils.getBit(17, this);\n }\n set optional(value) {\n $.utils.setBit(17, value, this);\n }\n get readonly() {\n return $.utils.getBit(18, this);\n }\n set readonly(value) {\n $.utils.setBit(18, value, this);\n }\n _adoptTags(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTags() {\n return $.utils.disown(this.tags);\n }\n get tags() {\n return $.utils.getStruct(4, TagsReflection, this);\n }\n _hasTags() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTags() {\n return $.utils.initStructAt(4, TagsReflection, this);\n }\n set tags(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n get kind() {\n return $.utils.getUint16(4, this);\n }\n set kind(value) {\n $.utils.setUint16(4, value, this);\n }\n get name() {\n return $.utils.getText(5, this);\n }\n set name(value) {\n $.utils.setText(5, value, this);\n }\n _adoptParameters(value) {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownParameters() {\n return $.utils.disown(this.parameters);\n }\n get parameters() {\n return $.utils.getList(6, _SerializedTypeFunction._Parameters, this);\n }\n _hasParameters() {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initParameters(length) {\n return $.utils.initList(6, _SerializedTypeFunction._Parameters, length, this);\n }\n set parameters(value) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptReturn(value) {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownReturn() {\n return $.utils.disown(this.return);\n }\n get return() {\n return $.utils.getStruct(7, SerializedTypeReference, this);\n }\n _hasReturn() {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initReturn() {\n return $.utils.initStructAt(7, SerializedTypeReference, this);\n }\n set return(value) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n toString() {\n return \"SerializedTypeFunction_\" + super.toString();\n }\n};\nvar SerializedTypePromise = class _SerializedTypePromise extends $.Struct {\n static {\n __name(this, \"SerializedTypePromise\");\n }\n static _capnp = {\n displayName: \"SerializedTypePromise\",\n id: \"e9b0cbe936a42398\",\n size: new $.ObjectSize(8, 4)\n };\n static _TypeArguments;\n static _Decorators;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypePromise._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypePromise._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypePromise._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypePromise._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get visibility() {\n return $.utils.getUint16(0, this);\n }\n set visibility(value) {\n $.utils.setUint16(0, value, this);\n }\n get abstract() {\n return $.utils.getBit(16, this);\n }\n set abstract(value) {\n $.utils.setBit(16, value, this);\n }\n toString() {\n return \"SerializedTypePromise_\" + super.toString();\n }\n};\nvar SerializedTypeEnumEntry = class extends $.Struct {\n static {\n __name(this, \"SerializedTypeEnumEntry\");\n }\n static _capnp = {\n displayName: \"SerializedTypeEnumEntry\",\n id: \"d5bcb8b7c49ba556\",\n size: new $.ObjectSize(0, 2)\n };\n get name() {\n return $.utils.getText(0, this);\n }\n set name(value) {\n $.utils.setText(0, value, this);\n }\n get value() {\n return $.utils.getText(1, this);\n }\n set value(value) {\n $.utils.setText(1, value, this);\n }\n toString() {\n return \"SerializedTypeEnumEntry_\" + super.toString();\n }\n};\nvar SerializedTypeEnum = class _SerializedTypeEnum extends $.Struct {\n static {\n __name(this, \"SerializedTypeEnum\");\n }\n static _capnp = {\n displayName: \"SerializedTypeEnum\",\n id: \"d7d36f0ae79e3841\",\n size: new $.ObjectSize(8, 8)\n };\n static _TypeArguments;\n static _Decorators;\n static _EnumEntries;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeEnum._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeEnum._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeEnum._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeEnum._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n _adoptEnumEntries(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownEnumEntries() {\n return $.utils.disown(this.enumEntries);\n }\n get enumEntries() {\n return $.utils.getList(4, _SerializedTypeEnum._EnumEntries, this);\n }\n _hasEnumEntries() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initEnumEntries(length) {\n return $.utils.initList(4, _SerializedTypeEnum._EnumEntries, length, this);\n }\n set enumEntries(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n _adoptValues(value) {\n $.utils.adopt(value, $.utils.getPointer(5, this));\n }\n _disownValues() {\n return $.utils.disown(this.values);\n }\n get values() {\n return $.utils.getList(5, $.TextList, this);\n }\n _hasValues() {\n return !$.utils.isNull($.utils.getPointer(5, this));\n }\n _initValues(length) {\n return $.utils.initList(5, $.TextList, length, this);\n }\n set values(value) {\n $.utils.copyFrom(value, $.utils.getPointer(5, this));\n }\n _adoptIndexType(value) {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownIndexType() {\n return $.utils.disown(this.indexType);\n }\n get indexType() {\n return $.utils.getStruct(6, SerializedTypeReference, this);\n }\n _hasIndexType() {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initIndexType() {\n return $.utils.initStructAt(6, SerializedTypeReference, this);\n }\n set indexType(value) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptTags(value) {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownTags() {\n return $.utils.disown(this.tags);\n }\n get tags() {\n return $.utils.getStruct(7, TagsReflection, this);\n }\n _hasTags() {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initTags() {\n return $.utils.initStructAt(7, TagsReflection, this);\n }\n set tags(value) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n toString() {\n return \"SerializedTypeEnum_\" + super.toString();\n }\n};\nvar SerializedTypeUnion = class _SerializedTypeUnion extends $.Struct {\n static {\n __name(this, \"SerializedTypeUnion\");\n }\n static _capnp = {\n displayName: \"SerializedTypeUnion\",\n id: \"a9ae4c95e41ff4ab\",\n size: new $.ObjectSize(8, 5)\n };\n static _TypeArguments;\n static _Decorators;\n static _Types;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeUnion._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeUnion._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeUnion._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeUnion._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n _adoptTypes(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTypes() {\n return $.utils.disown(this.types);\n }\n get types() {\n return $.utils.getList(4, _SerializedTypeUnion._Types, this);\n }\n _hasTypes() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTypes(length) {\n return $.utils.initList(4, _SerializedTypeUnion._Types, length, this);\n }\n set types(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n toString() {\n return \"SerializedTypeUnion_\" + super.toString();\n }\n};\nvar SerializedTypeIntersection = class _SerializedTypeIntersection extends $.Struct {\n static {\n __name(this, \"SerializedTypeIntersection\");\n }\n static _capnp = {\n displayName: \"SerializedTypeIntersection\",\n id: \"9ae42bd17511c09b\",\n size: new $.ObjectSize(8, 5)\n };\n static _TypeArguments;\n static _Decorators;\n static _Types;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeIntersection._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeIntersection._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeIntersection._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeIntersection._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n _adoptTypes(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTypes() {\n return $.utils.disown(this.types);\n }\n get types() {\n return $.utils.getList(4, _SerializedTypeIntersection._Types, this);\n }\n _hasTypes() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTypes(length) {\n return $.utils.initList(4, _SerializedTypeIntersection._Types, length, this);\n }\n set types(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n toString() {\n return \"SerializedTypeIntersection_\" + super.toString();\n }\n};\nvar SerializedTypeArray = class _SerializedTypeArray extends $.Struct {\n static {\n __name(this, \"SerializedTypeArray\");\n }\n static _capnp = {\n displayName: \"SerializedTypeArray\",\n id: \"97d1d75240151501\",\n size: new $.ObjectSize(8, 6)\n };\n static _TypeArguments;\n static _Decorators;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeArray._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeArray._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeArray._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeArray._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n _adoptType(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownType() {\n return $.utils.disown(this.type);\n }\n get type() {\n return $.utils.getStruct(4, SerializedTypeReference, this);\n }\n _hasType() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initType() {\n return $.utils.initStructAt(4, SerializedTypeReference, this);\n }\n set type(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n _adoptTags(value) {\n $.utils.adopt(value, $.utils.getPointer(5, this));\n }\n _disownTags() {\n return $.utils.disown(this.tags);\n }\n get tags() {\n return $.utils.getStruct(5, TagsReflection, this);\n }\n _hasTags() {\n return !$.utils.isNull($.utils.getPointer(5, this));\n }\n _initTags() {\n return $.utils.initStructAt(5, TagsReflection, this);\n }\n set tags(value) {\n $.utils.copyFrom(value, $.utils.getPointer(5, this));\n }\n toString() {\n return \"SerializedTypeArray_\" + super.toString();\n }\n};\nvar SerializedTypeIndexSignature = class _SerializedTypeIndexSignature extends $.Struct {\n static {\n __name(this, \"SerializedTypeIndexSignature\");\n }\n static _capnp = {\n displayName: \"SerializedTypeIndexSignature\",\n id: \"93e335e2756821d8\",\n size: new $.ObjectSize(8, 6)\n };\n static _TypeArguments;\n static _Decorators;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeIndexSignature._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeIndexSignature._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeIndexSignature._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeIndexSignature._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n _adoptIndex(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownIndex() {\n return $.utils.disown(this.index);\n }\n get index() {\n return $.utils.getStruct(4, SerializedTypeReference, this);\n }\n _hasIndex() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initIndex() {\n return $.utils.initStructAt(4, SerializedTypeReference, this);\n }\n set index(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n _adoptType(value) {\n $.utils.adopt(value, $.utils.getPointer(5, this));\n }\n _disownType() {\n return $.utils.disown(this.type);\n }\n get type() {\n return $.utils.getStruct(5, SerializedTypeReference, this);\n }\n _hasType() {\n return !$.utils.isNull($.utils.getPointer(5, this));\n }\n _initType() {\n return $.utils.initStructAt(5, SerializedTypeReference, this);\n }\n set type(value) {\n $.utils.copyFrom(value, $.utils.getPointer(5, this));\n }\n toString() {\n return \"SerializedTypeIndexSignature_\" + super.toString();\n }\n};\nvar SerializedTypePropertySignature = class _SerializedTypePropertySignature extends $.Struct {\n static {\n __name(this, \"SerializedTypePropertySignature\");\n }\n static _capnp = {\n displayName: \"SerializedTypePropertySignature\",\n id: \"9bc1cebd2ca1569a\",\n size: new $.ObjectSize(8, 9)\n };\n static _TypeArguments;\n static _Decorators;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypePropertySignature._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypePropertySignature._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypePropertySignature._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypePropertySignature._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n get name() {\n return $.utils.getText(4, this);\n }\n set name(value) {\n $.utils.setText(4, value, this);\n }\n get optional() {\n return $.utils.getBit(16, this);\n }\n set optional(value) {\n $.utils.setBit(16, value, this);\n }\n get readonly() {\n return $.utils.getBit(17, this);\n }\n set readonly(value) {\n $.utils.setBit(17, value, this);\n }\n get description() {\n return $.utils.getText(5, this);\n }\n set description(value) {\n $.utils.setText(5, value, this);\n }\n _adoptDefault(value) {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownDefault() {\n return $.utils.disown(this.default);\n }\n get default() {\n return $.utils.getStruct(6, DefaultValueReflection, this);\n }\n _hasDefault() {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initDefault() {\n return $.utils.initStructAt(6, DefaultValueReflection, this);\n }\n set default(value) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptType(value) {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownType() {\n return $.utils.disown(this.type);\n }\n get type() {\n return $.utils.getStruct(7, SerializedTypeReference, this);\n }\n _hasType() {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initType() {\n return $.utils.initStructAt(7, SerializedTypeReference, this);\n }\n set type(value) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n _adoptTags(value) {\n $.utils.adopt(value, $.utils.getPointer(8, this));\n }\n _disownTags() {\n return $.utils.disown(this.tags);\n }\n get tags() {\n return $.utils.getStruct(8, TagsReflection, this);\n }\n _hasTags() {\n return !$.utils.isNull($.utils.getPointer(8, this));\n }\n _initTags() {\n return $.utils.initStructAt(8, TagsReflection, this);\n }\n set tags(value) {\n $.utils.copyFrom(value, $.utils.getPointer(8, this));\n }\n toString() {\n return \"SerializedTypePropertySignature_\" + super.toString();\n }\n};\nvar SerializedTypeMethodSignature = class _SerializedTypeMethodSignature extends $.Struct {\n static {\n __name(this, \"SerializedTypeMethodSignature\");\n }\n static _capnp = {\n displayName: \"SerializedTypeMethodSignature\",\n id: \"e25a2cc39d5930c8\",\n size: new $.ObjectSize(8, 8)\n };\n static _TypeArguments;\n static _Decorators;\n static _Parameters;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeMethodSignature._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeMethodSignature._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeMethodSignature._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeMethodSignature._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n get name() {\n return $.utils.getText(4, this);\n }\n set name(value) {\n $.utils.setText(4, value, this);\n }\n get optional() {\n return $.utils.getBit(16, this);\n }\n set optional(value) {\n $.utils.setBit(16, value, this);\n }\n _adoptParameters(value) {\n $.utils.adopt(value, $.utils.getPointer(5, this));\n }\n _disownParameters() {\n return $.utils.disown(this.parameters);\n }\n get parameters() {\n return $.utils.getList(5, _SerializedTypeMethodSignature._Parameters, this);\n }\n _hasParameters() {\n return !$.utils.isNull($.utils.getPointer(5, this));\n }\n _initParameters(length) {\n return $.utils.initList(5, _SerializedTypeMethodSignature._Parameters, length, this);\n }\n set parameters(value) {\n $.utils.copyFrom(value, $.utils.getPointer(5, this));\n }\n _adoptReturn(value) {\n $.utils.adopt(value, $.utils.getPointer(6, this));\n }\n _disownReturn() {\n return $.utils.disown(this.return);\n }\n get return() {\n return $.utils.getStruct(6, SerializedTypeReference, this);\n }\n _hasReturn() {\n return !$.utils.isNull($.utils.getPointer(6, this));\n }\n _initReturn() {\n return $.utils.initStructAt(6, SerializedTypeReference, this);\n }\n set return(value) {\n $.utils.copyFrom(value, $.utils.getPointer(6, this));\n }\n _adoptTags(value) {\n $.utils.adopt(value, $.utils.getPointer(7, this));\n }\n _disownTags() {\n return $.utils.disown(this.tags);\n }\n get tags() {\n return $.utils.getStruct(7, TagsReflection, this);\n }\n _hasTags() {\n return !$.utils.isNull($.utils.getPointer(7, this));\n }\n _initTags() {\n return $.utils.initStructAt(7, TagsReflection, this);\n }\n set tags(value) {\n $.utils.copyFrom(value, $.utils.getPointer(7, this));\n }\n toString() {\n return \"SerializedTypeMethodSignature_\" + super.toString();\n }\n};\nvar SerializedTypeTypeParameter = class _SerializedTypeTypeParameter extends $.Struct {\n static {\n __name(this, \"SerializedTypeTypeParameter\");\n }\n static _capnp = {\n displayName: \"SerializedTypeTypeParameter\",\n id: \"81210361a54d5d71\",\n size: new $.ObjectSize(8, 5)\n };\n static _TypeArguments;\n static _Decorators;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeTypeParameter._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeTypeParameter._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeTypeParameter._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeTypeParameter._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n get name() {\n return $.utils.getText(4, this);\n }\n set name(value) {\n $.utils.setText(4, value, this);\n }\n toString() {\n return \"SerializedTypeTypeParameter_\" + super.toString();\n }\n};\nvar SerializedTypeInfer = class _SerializedTypeInfer extends $.Struct {\n static {\n __name(this, \"SerializedTypeInfer\");\n }\n static _capnp = {\n displayName: \"SerializedTypeInfer\",\n id: \"91c6dd1e13f2b14d\",\n size: new $.ObjectSize(8, 4)\n };\n static _TypeArguments;\n static _Decorators;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeInfer._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeInfer._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeInfer._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeInfer._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n toString() {\n return \"SerializedTypeInfer_\" + super.toString();\n }\n};\nvar SerializedTypeTupleMember = class _SerializedTypeTupleMember extends $.Struct {\n static {\n __name(this, \"SerializedTypeTupleMember\");\n }\n static _capnp = {\n displayName: \"SerializedTypeTupleMember\",\n id: \"e21c2a18d0d56fdf\",\n size: new $.ObjectSize(8, 6)\n };\n static _TypeArguments;\n static _Decorators;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeTupleMember._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeTupleMember._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeTupleMember._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeTupleMember._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n _adoptType(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownType() {\n return $.utils.disown(this.type);\n }\n get type() {\n return $.utils.getStruct(4, SerializedTypeReference, this);\n }\n _hasType() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initType() {\n return $.utils.initStructAt(4, SerializedTypeReference, this);\n }\n set type(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n get optional() {\n return $.utils.getBit(16, this);\n }\n set optional(value) {\n $.utils.setBit(16, value, this);\n }\n get name() {\n return $.utils.getText(5, this);\n }\n set name(value) {\n $.utils.setText(5, value, this);\n }\n toString() {\n return \"SerializedTypeTupleMember_\" + super.toString();\n }\n};\nvar SerializedTypeTuple = class _SerializedTypeTuple extends $.Struct {\n static {\n __name(this, \"SerializedTypeTuple\");\n }\n static _capnp = {\n displayName: \"SerializedTypeTuple\",\n id: \"eb7501eb1ee4fb6d\",\n size: new $.ObjectSize(8, 5)\n };\n static _TypeArguments;\n static _Decorators;\n static _Types;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeTuple._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeTuple._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeTuple._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeTuple._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n _adoptTypes(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTypes() {\n return $.utils.disown(this.types);\n }\n get types() {\n return $.utils.getList(4, _SerializedTypeTuple._Types, this);\n }\n _hasTypes() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTypes(length) {\n return $.utils.initList(4, _SerializedTypeTuple._Types, length, this);\n }\n set types(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n toString() {\n return \"SerializedTypeTuple_\" + super.toString();\n }\n};\nvar SerializedTypeRest = class _SerializedTypeRest extends $.Struct {\n static {\n __name(this, \"SerializedTypeRest\");\n }\n static _capnp = {\n displayName: \"SerializedTypeRest\",\n id: \"f9e684a435cce5d1\",\n size: new $.ObjectSize(8, 5)\n };\n static _TypeArguments;\n static _Decorators;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeRest._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeRest._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeRest._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeRest._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n _adoptType(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownType() {\n return $.utils.disown(this.type);\n }\n get type() {\n return $.utils.getStruct(4, SerializedTypeReference, this);\n }\n _hasType() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initType() {\n return $.utils.initStructAt(4, SerializedTypeReference, this);\n }\n set type(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n toString() {\n return \"SerializedTypeRest_\" + super.toString();\n }\n};\nvar SimpleSerializedType = class _SimpleSerializedType extends $.Struct {\n static {\n __name(this, \"SimpleSerializedType\");\n }\n static _capnp = {\n displayName: \"SimpleSerializedType\",\n id: \"80f983e4b811c3ca\",\n size: new $.ObjectSize(8, 5)\n };\n static _TypeArguments;\n static _Decorators;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SimpleSerializedType._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SimpleSerializedType._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SimpleSerializedType._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SimpleSerializedType._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n _adoptOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownOrigin() {\n return $.utils.disown(this.origin);\n }\n get origin() {\n return $.utils.getStruct(4, SerializedTypeReference, this);\n }\n _hasOrigin() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initOrigin() {\n return $.utils.initStructAt(4, SerializedTypeReference, this);\n }\n set origin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n toString() {\n return \"SimpleSerializedType_\" + super.toString();\n }\n};\nvar SerializedTypeLiteralSymbol = class extends $.Struct {\n static {\n __name(this, \"SerializedTypeLiteralSymbol\");\n }\n static _capnp = {\n displayName: \"SerializedTypeLiteralSymbol\",\n id: \"f3dd6a3c6054bd55\",\n size: new $.ObjectSize(0, 2)\n };\n /**\n * \"symbol\"\n *\n */\n get type() {\n return $.utils.getText(0, this);\n }\n set type(value) {\n $.utils.setText(0, value, this);\n }\n get name() {\n return $.utils.getText(1, this);\n }\n set name(value) {\n $.utils.setText(1, value, this);\n }\n toString() {\n return \"SerializedTypeLiteralSymbol_\" + super.toString();\n }\n};\nvar SerializedTypeLiteralBigInt = class extends $.Struct {\n static {\n __name(this, \"SerializedTypeLiteralBigInt\");\n }\n static _capnp = {\n displayName: \"SerializedTypeLiteralBigInt\",\n id: \"821a872d8be30bb2\",\n size: new $.ObjectSize(0, 2)\n };\n /**\n * \"bigint\"\n *\n */\n get type() {\n return $.utils.getText(0, this);\n }\n set type(value) {\n $.utils.setText(0, value, this);\n }\n get value() {\n return $.utils.getText(1, this);\n }\n set value(value) {\n $.utils.setText(1, value, this);\n }\n toString() {\n return \"SerializedTypeLiteralBigInt_\" + super.toString();\n }\n};\nvar SerializedTypeLiteralRegex = class extends $.Struct {\n static {\n __name(this, \"SerializedTypeLiteralRegex\");\n }\n static _capnp = {\n displayName: \"SerializedTypeLiteralRegex\",\n id: \"cc89f97b47927d99\",\n size: new $.ObjectSize(0, 2)\n };\n /**\n * \"regex\"\n *\n */\n get type() {\n return $.utils.getText(0, this);\n }\n set type(value) {\n $.utils.setText(0, value, this);\n }\n get regex() {\n return $.utils.getText(1, this);\n }\n set regex(value) {\n $.utils.setText(1, value, this);\n }\n toString() {\n return \"SerializedTypeLiteralRegex_\" + super.toString();\n }\n};\nvar SerializedTypeLiteral_Literal_Which = {\n SYMBOL: 0,\n STRING: 1,\n NUMBER: 2,\n BOOLEAN: 3,\n BIGINT: 4,\n REGEX: 5\n};\nvar SerializedTypeLiteral_Literal = class extends $.Struct {\n static {\n __name(this, \"SerializedTypeLiteral_Literal\");\n }\n static SYMBOL = SerializedTypeLiteral_Literal_Which.SYMBOL;\n static STRING = SerializedTypeLiteral_Literal_Which.STRING;\n static NUMBER = SerializedTypeLiteral_Literal_Which.NUMBER;\n static BOOLEAN = SerializedTypeLiteral_Literal_Which.BOOLEAN;\n static BIGINT = SerializedTypeLiteral_Literal_Which.BIGINT;\n static REGEX = SerializedTypeLiteral_Literal_Which.REGEX;\n static _capnp = {\n displayName: \"literal\",\n id: \"e4f0538973f3909f\",\n size: new $.ObjectSize(16, 5)\n };\n _adoptSymbol(value) {\n $.utils.setUint16(2, 0, this);\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownSymbol() {\n return $.utils.disown(this.symbol);\n }\n get symbol() {\n $.utils.testWhich(\"symbol\", $.utils.getUint16(2, this), 0, this);\n return $.utils.getStruct(4, SerializedTypeLiteralSymbol, this);\n }\n _hasSymbol() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initSymbol() {\n $.utils.setUint16(2, 0, this);\n return $.utils.initStructAt(4, SerializedTypeLiteralSymbol, this);\n }\n get _isSymbol() {\n return $.utils.getUint16(2, this) === 0;\n }\n set symbol(value) {\n $.utils.setUint16(2, 0, this);\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n get string() {\n $.utils.testWhich(\"string\", $.utils.getUint16(2, this), 1, this);\n return $.utils.getText(4, this);\n }\n get _isString() {\n return $.utils.getUint16(2, this) === 1;\n }\n set string(value) {\n $.utils.setUint16(2, 1, this);\n $.utils.setText(4, value, this);\n }\n get number() {\n $.utils.testWhich(\"number\", $.utils.getUint16(2, this), 2, this);\n return $.utils.getFloat64(8, this);\n }\n get _isNumber() {\n return $.utils.getUint16(2, this) === 2;\n }\n set number(value) {\n $.utils.setUint16(2, 2, this);\n $.utils.setFloat64(8, value, this);\n }\n get boolean() {\n $.utils.testWhich(\"boolean\", $.utils.getUint16(2, this), 3, this);\n return $.utils.getBit(64, this);\n }\n get _isBoolean() {\n return $.utils.getUint16(2, this) === 3;\n }\n set boolean(value) {\n $.utils.setUint16(2, 3, this);\n $.utils.setBit(64, value, this);\n }\n _adoptBigint(value) {\n $.utils.setUint16(2, 4, this);\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownBigint() {\n return $.utils.disown(this.bigint);\n }\n get bigint() {\n $.utils.testWhich(\"bigint\", $.utils.getUint16(2, this), 4, this);\n return $.utils.getStruct(4, SerializedTypeLiteralBigInt, this);\n }\n _hasBigint() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initBigint() {\n $.utils.setUint16(2, 4, this);\n return $.utils.initStructAt(4, SerializedTypeLiteralBigInt, this);\n }\n get _isBigint() {\n return $.utils.getUint16(2, this) === 4;\n }\n set bigint(value) {\n $.utils.setUint16(2, 4, this);\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n _adoptRegex(value) {\n $.utils.setUint16(2, 5, this);\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownRegex() {\n return $.utils.disown(this.regex);\n }\n get regex() {\n $.utils.testWhich(\"regex\", $.utils.getUint16(2, this), 5, this);\n return $.utils.getStruct(4, SerializedTypeLiteralRegex, this);\n }\n _hasRegex() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initRegex() {\n $.utils.setUint16(2, 5, this);\n return $.utils.initStructAt(4, SerializedTypeLiteralRegex, this);\n }\n get _isRegex() {\n return $.utils.getUint16(2, this) === 5;\n }\n set regex(value) {\n $.utils.setUint16(2, 5, this);\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n toString() {\n return \"SerializedTypeLiteral_Literal_\" + super.toString();\n }\n which() {\n return $.utils.getUint16(2, this);\n }\n};\nvar SerializedTypeLiteral = class _SerializedTypeLiteral extends $.Struct {\n static {\n __name(this, \"SerializedTypeLiteral\");\n }\n static _capnp = {\n displayName: \"SerializedTypeLiteral\",\n id: \"b876ba24d27d88c8\",\n size: new $.ObjectSize(16, 5)\n };\n static _TypeArguments;\n static _Decorators;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeLiteral._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeLiteral._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeLiteral._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeLiteral._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n get literal() {\n return $.utils.getAs(SerializedTypeLiteral_Literal, this);\n }\n _initLiteral() {\n return $.utils.getAs(SerializedTypeLiteral_Literal, this);\n }\n toString() {\n return \"SerializedTypeLiteral_\" + super.toString();\n }\n};\nvar SerializedTypeTemplateLiteral = class _SerializedTypeTemplateLiteral extends $.Struct {\n static {\n __name(this, \"SerializedTypeTemplateLiteral\");\n }\n static _capnp = {\n displayName: \"SerializedTypeTemplateLiteral\",\n id: \"8dd6c284d46cc265\",\n size: new $.ObjectSize(8, 5)\n };\n static _TypeArguments;\n static _Decorators;\n static _Types;\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n _adoptTypeArguments(value) {\n $.utils.adopt(value, $.utils.getPointer(1, this));\n }\n _disownTypeArguments() {\n return $.utils.disown(this.typeArguments);\n }\n get typeArguments() {\n return $.utils.getList(1, _SerializedTypeTemplateLiteral._TypeArguments, this);\n }\n _hasTypeArguments() {\n return !$.utils.isNull($.utils.getPointer(1, this));\n }\n _initTypeArguments(length) {\n return $.utils.initList(1, _SerializedTypeTemplateLiteral._TypeArguments, length, this);\n }\n set typeArguments(value) {\n $.utils.copyFrom(value, $.utils.getPointer(1, this));\n }\n _adoptIndexAccessOrigin(value) {\n $.utils.adopt(value, $.utils.getPointer(2, this));\n }\n _disownIndexAccessOrigin() {\n return $.utils.disown(this.indexAccessOrigin);\n }\n get indexAccessOrigin() {\n return $.utils.getStruct(2, IndexAccessOrigin, this);\n }\n _hasIndexAccessOrigin() {\n return !$.utils.isNull($.utils.getPointer(2, this));\n }\n _initIndexAccessOrigin() {\n return $.utils.initStructAt(2, IndexAccessOrigin, this);\n }\n set indexAccessOrigin(value) {\n $.utils.copyFrom(value, $.utils.getPointer(2, this));\n }\n _adoptDecorators(value) {\n $.utils.adopt(value, $.utils.getPointer(3, this));\n }\n _disownDecorators() {\n return $.utils.disown(this.decorators);\n }\n get decorators() {\n return $.utils.getList(3, _SerializedTypeTemplateLiteral._Decorators, this);\n }\n _hasDecorators() {\n return !$.utils.isNull($.utils.getPointer(3, this));\n }\n _initDecorators(length) {\n return $.utils.initList(3, _SerializedTypeTemplateLiteral._Decorators, length, this);\n }\n set decorators(value) {\n $.utils.copyFrom(value, $.utils.getPointer(3, this));\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n _adoptTypes(value) {\n $.utils.adopt(value, $.utils.getPointer(4, this));\n }\n _disownTypes() {\n return $.utils.disown(this.types);\n }\n get types() {\n return $.utils.getList(4, _SerializedTypeTemplateLiteral._Types, this);\n }\n _hasTypes() {\n return !$.utils.isNull($.utils.getPointer(4, this));\n }\n _initTypes(length) {\n return $.utils.initList(4, _SerializedTypeTemplateLiteral._Types, length, this);\n }\n set types(value) {\n $.utils.copyFrom(value, $.utils.getPointer(4, this));\n }\n toString() {\n return \"SerializedTypeTemplateLiteral_\" + super.toString();\n }\n};\nvar SerializedTypeOther = class extends $.Struct {\n static {\n __name(this, \"SerializedTypeOther\");\n }\n static _capnp = {\n displayName: \"SerializedTypeOther\",\n id: \"9e1048a692ff49ce\",\n size: new $.ObjectSize(8, 1)\n };\n get typeName() {\n return $.utils.getText(0, this);\n }\n set typeName(value) {\n $.utils.setText(0, value, this);\n }\n get kind() {\n return $.utils.getUint16(0, this);\n }\n set kind(value) {\n $.utils.setUint16(0, value, this);\n }\n toString() {\n return \"SerializedTypeOther_\" + super.toString();\n }\n};\nvar SerializedType_Type_Which = {\n SIMPLE: 0,\n LITERAL: 1,\n TEMPLATE_LITERAL: 2,\n PARAMETER: 3,\n FUNCTION: 4,\n METHOD: 5,\n PROPERTY: 6,\n PROMISE: 7,\n CLASS_TYPE: 8,\n ENUM: 9,\n UNION: 10,\n INTERSECTION: 11,\n ARRAY: 12,\n OBJECT_LITERAL: 13,\n INDEX_SIGNATURE: 14,\n PROPERTY_SIGNATURE: 15,\n METHOD_SIGNATURE: 16,\n TYPE_PARAMETER: 17,\n INFER: 18,\n TUPLE: 19,\n TUPLE_MEMBER: 20,\n REST: 21,\n /**\n * For any other type that is not explicitly defined\n *\n */\n OTHER: 22\n};\nvar SerializedType_Type = class extends $.Struct {\n static {\n __name(this, \"SerializedType_Type\");\n }\n static SIMPLE = SerializedType_Type_Which.SIMPLE;\n static LITERAL = SerializedType_Type_Which.LITERAL;\n static TEMPLATE_LITERAL = SerializedType_Type_Which.TEMPLATE_LITERAL;\n static PARAMETER = SerializedType_Type_Which.PARAMETER;\n static FUNCTION = SerializedType_Type_Which.FUNCTION;\n static METHOD = SerializedType_Type_Which.METHOD;\n static PROPERTY = SerializedType_Type_Which.PROPERTY;\n static PROMISE = SerializedType_Type_Which.PROMISE;\n static CLASS_TYPE = SerializedType_Type_Which.CLASS_TYPE;\n static ENUM = SerializedType_Type_Which.ENUM;\n static UNION = SerializedType_Type_Which.UNION;\n static INTERSECTION = SerializedType_Type_Which.INTERSECTION;\n static ARRAY = SerializedType_Type_Which.ARRAY;\n static OBJECT_LITERAL = SerializedType_Type_Which.OBJECT_LITERAL;\n static INDEX_SIGNATURE = SerializedType_Type_Which.INDEX_SIGNATURE;\n static PROPERTY_SIGNATURE = SerializedType_Type_Which.PROPERTY_SIGNATURE;\n static METHOD_SIGNATURE = SerializedType_Type_Which.METHOD_SIGNATURE;\n static TYPE_PARAMETER = SerializedType_Type_Which.TYPE_PARAMETER;\n static INFER = SerializedType_Type_Which.INFER;\n static TUPLE = SerializedType_Type_Which.TUPLE;\n static TUPLE_MEMBER = SerializedType_Type_Which.TUPLE_MEMBER;\n static REST = SerializedType_Type_Which.REST;\n static OTHER = SerializedType_Type_Which.OTHER;\n static _capnp = {\n displayName: \"type\",\n id: \"c677d7ed4a496eab\",\n size: new $.ObjectSize(8, 1)\n };\n _adoptSimple(value) {\n $.utils.setUint16(0, 0, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownSimple() {\n return $.utils.disown(this.simple);\n }\n get simple() {\n $.utils.testWhich(\"simple\", $.utils.getUint16(0, this), 0, this);\n return $.utils.getStruct(0, SimpleSerializedType, this);\n }\n _hasSimple() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initSimple() {\n $.utils.setUint16(0, 0, this);\n return $.utils.initStructAt(0, SimpleSerializedType, this);\n }\n get _isSimple() {\n return $.utils.getUint16(0, this) === 0;\n }\n set simple(value) {\n $.utils.setUint16(0, 0, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptLiteral(value) {\n $.utils.setUint16(0, 1, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownLiteral() {\n return $.utils.disown(this.literal);\n }\n get literal() {\n $.utils.testWhich(\"literal\", $.utils.getUint16(0, this), 1, this);\n return $.utils.getStruct(0, SerializedTypeLiteral, this);\n }\n _hasLiteral() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initLiteral() {\n $.utils.setUint16(0, 1, this);\n return $.utils.initStructAt(0, SerializedTypeLiteral, this);\n }\n get _isLiteral() {\n return $.utils.getUint16(0, this) === 1;\n }\n set literal(value) {\n $.utils.setUint16(0, 1, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptTemplateLiteral(value) {\n $.utils.setUint16(0, 2, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownTemplateLiteral() {\n return $.utils.disown(this.templateLiteral);\n }\n get templateLiteral() {\n $.utils.testWhich(\"templateLiteral\", $.utils.getUint16(0, this), 2, this);\n return $.utils.getStruct(0, SerializedTypeTemplateLiteral, this);\n }\n _hasTemplateLiteral() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initTemplateLiteral() {\n $.utils.setUint16(0, 2, this);\n return $.utils.initStructAt(0, SerializedTypeTemplateLiteral, this);\n }\n get _isTemplateLiteral() {\n return $.utils.getUint16(0, this) === 2;\n }\n set templateLiteral(value) {\n $.utils.setUint16(0, 2, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptParameter(value) {\n $.utils.setUint16(0, 3, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownParameter() {\n return $.utils.disown(this.parameter);\n }\n get parameter() {\n $.utils.testWhich(\"parameter\", $.utils.getUint16(0, this), 3, this);\n return $.utils.getStruct(0, SerializedTypeParameter, this);\n }\n _hasParameter() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initParameter() {\n $.utils.setUint16(0, 3, this);\n return $.utils.initStructAt(0, SerializedTypeParameter, this);\n }\n get _isParameter() {\n return $.utils.getUint16(0, this) === 3;\n }\n set parameter(value) {\n $.utils.setUint16(0, 3, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptFunction(value) {\n $.utils.setUint16(0, 4, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownFunction() {\n return $.utils.disown(this.function);\n }\n get function() {\n $.utils.testWhich(\"function\", $.utils.getUint16(0, this), 4, this);\n return $.utils.getStruct(0, SerializedTypeFunction, this);\n }\n _hasFunction() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initFunction() {\n $.utils.setUint16(0, 4, this);\n return $.utils.initStructAt(0, SerializedTypeFunction, this);\n }\n get _isFunction() {\n return $.utils.getUint16(0, this) === 4;\n }\n set function(value) {\n $.utils.setUint16(0, 4, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptMethod(value) {\n $.utils.setUint16(0, 5, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownMethod() {\n return $.utils.disown(this.method);\n }\n get method() {\n $.utils.testWhich(\"method\", $.utils.getUint16(0, this), 5, this);\n return $.utils.getStruct(0, SerializedTypeMethod, this);\n }\n _hasMethod() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initMethod() {\n $.utils.setUint16(0, 5, this);\n return $.utils.initStructAt(0, SerializedTypeMethod, this);\n }\n get _isMethod() {\n return $.utils.getUint16(0, this) === 5;\n }\n set method(value) {\n $.utils.setUint16(0, 5, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptProperty(value) {\n $.utils.setUint16(0, 6, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownProperty() {\n return $.utils.disown(this.property);\n }\n get property() {\n $.utils.testWhich(\"property\", $.utils.getUint16(0, this), 6, this);\n return $.utils.getStruct(0, SerializedTypeProperty, this);\n }\n _hasProperty() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initProperty() {\n $.utils.setUint16(0, 6, this);\n return $.utils.initStructAt(0, SerializedTypeProperty, this);\n }\n get _isProperty() {\n return $.utils.getUint16(0, this) === 6;\n }\n set property(value) {\n $.utils.setUint16(0, 6, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptPromise(value) {\n $.utils.setUint16(0, 7, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownPromise() {\n return $.utils.disown(this.promise);\n }\n get promise() {\n $.utils.testWhich(\"promise\", $.utils.getUint16(0, this), 7, this);\n return $.utils.getStruct(0, SerializedTypePromise, this);\n }\n _hasPromise() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initPromise() {\n $.utils.setUint16(0, 7, this);\n return $.utils.initStructAt(0, SerializedTypePromise, this);\n }\n get _isPromise() {\n return $.utils.getUint16(0, this) === 7;\n }\n set promise(value) {\n $.utils.setUint16(0, 7, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptClassType(value) {\n $.utils.setUint16(0, 8, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownClassType() {\n return $.utils.disown(this.classType);\n }\n get classType() {\n $.utils.testWhich(\"classType\", $.utils.getUint16(0, this), 8, this);\n return $.utils.getStruct(0, SerializedTypeClassType, this);\n }\n _hasClassType() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initClassType() {\n $.utils.setUint16(0, 8, this);\n return $.utils.initStructAt(0, SerializedTypeClassType, this);\n }\n get _isClassType() {\n return $.utils.getUint16(0, this) === 8;\n }\n set classType(value) {\n $.utils.setUint16(0, 8, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptEnum(value) {\n $.utils.setUint16(0, 9, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownEnum() {\n return $.utils.disown(this.enum);\n }\n get enum() {\n $.utils.testWhich(\"enum\", $.utils.getUint16(0, this), 9, this);\n return $.utils.getStruct(0, SerializedTypeEnum, this);\n }\n _hasEnum() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initEnum() {\n $.utils.setUint16(0, 9, this);\n return $.utils.initStructAt(0, SerializedTypeEnum, this);\n }\n get _isEnum() {\n return $.utils.getUint16(0, this) === 9;\n }\n set enum(value) {\n $.utils.setUint16(0, 9, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptUnion(value) {\n $.utils.setUint16(0, 10, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownUnion() {\n return $.utils.disown(this.union);\n }\n get union() {\n $.utils.testWhich(\"union\", $.utils.getUint16(0, this), 10, this);\n return $.utils.getStruct(0, SerializedTypeUnion, this);\n }\n _hasUnion() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initUnion() {\n $.utils.setUint16(0, 10, this);\n return $.utils.initStructAt(0, SerializedTypeUnion, this);\n }\n get _isUnion() {\n return $.utils.getUint16(0, this) === 10;\n }\n set union(value) {\n $.utils.setUint16(0, 10, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptIntersection(value) {\n $.utils.setUint16(0, 11, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownIntersection() {\n return $.utils.disown(this.intersection);\n }\n get intersection() {\n $.utils.testWhich(\"intersection\", $.utils.getUint16(0, this), 11, this);\n return $.utils.getStruct(0, SerializedTypeIntersection, this);\n }\n _hasIntersection() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initIntersection() {\n $.utils.setUint16(0, 11, this);\n return $.utils.initStructAt(0, SerializedTypeIntersection, this);\n }\n get _isIntersection() {\n return $.utils.getUint16(0, this) === 11;\n }\n set intersection(value) {\n $.utils.setUint16(0, 11, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptArray(value) {\n $.utils.setUint16(0, 12, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownArray() {\n return $.utils.disown(this.array);\n }\n get array() {\n $.utils.testWhich(\"array\", $.utils.getUint16(0, this), 12, this);\n return $.utils.getStruct(0, SerializedTypeArray, this);\n }\n _hasArray() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initArray() {\n $.utils.setUint16(0, 12, this);\n return $.utils.initStructAt(0, SerializedTypeArray, this);\n }\n get _isArray() {\n return $.utils.getUint16(0, this) === 12;\n }\n set array(value) {\n $.utils.setUint16(0, 12, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptObjectLiteral(value) {\n $.utils.setUint16(0, 13, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownObjectLiteral() {\n return $.utils.disown(this.objectLiteral);\n }\n get objectLiteral() {\n $.utils.testWhich(\"objectLiteral\", $.utils.getUint16(0, this), 13, this);\n return $.utils.getStruct(0, SerializedTypeObjectLiteral, this);\n }\n _hasObjectLiteral() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initObjectLiteral() {\n $.utils.setUint16(0, 13, this);\n return $.utils.initStructAt(0, SerializedTypeObjectLiteral, this);\n }\n get _isObjectLiteral() {\n return $.utils.getUint16(0, this) === 13;\n }\n set objectLiteral(value) {\n $.utils.setUint16(0, 13, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptIndexSignature(value) {\n $.utils.setUint16(0, 14, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownIndexSignature() {\n return $.utils.disown(this.indexSignature);\n }\n get indexSignature() {\n $.utils.testWhich(\"indexSignature\", $.utils.getUint16(0, this), 14, this);\n return $.utils.getStruct(0, SerializedTypeIndexSignature, this);\n }\n _hasIndexSignature() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initIndexSignature() {\n $.utils.setUint16(0, 14, this);\n return $.utils.initStructAt(0, SerializedTypeIndexSignature, this);\n }\n get _isIndexSignature() {\n return $.utils.getUint16(0, this) === 14;\n }\n set indexSignature(value) {\n $.utils.setUint16(0, 14, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptPropertySignature(value) {\n $.utils.setUint16(0, 15, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownPropertySignature() {\n return $.utils.disown(this.propertySignature);\n }\n get propertySignature() {\n $.utils.testWhich(\"propertySignature\", $.utils.getUint16(0, this), 15, this);\n return $.utils.getStruct(0, SerializedTypePropertySignature, this);\n }\n _hasPropertySignature() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initPropertySignature() {\n $.utils.setUint16(0, 15, this);\n return $.utils.initStructAt(0, SerializedTypePropertySignature, this);\n }\n get _isPropertySignature() {\n return $.utils.getUint16(0, this) === 15;\n }\n set propertySignature(value) {\n $.utils.setUint16(0, 15, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptMethodSignature(value) {\n $.utils.setUint16(0, 16, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownMethodSignature() {\n return $.utils.disown(this.methodSignature);\n }\n get methodSignature() {\n $.utils.testWhich(\"methodSignature\", $.utils.getUint16(0, this), 16, this);\n return $.utils.getStruct(0, SerializedTypeMethodSignature, this);\n }\n _hasMethodSignature() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initMethodSignature() {\n $.utils.setUint16(0, 16, this);\n return $.utils.initStructAt(0, SerializedTypeMethodSignature, this);\n }\n get _isMethodSignature() {\n return $.utils.getUint16(0, this) === 16;\n }\n set methodSignature(value) {\n $.utils.setUint16(0, 16, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptTypeParameter(value) {\n $.utils.setUint16(0, 17, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownTypeParameter() {\n return $.utils.disown(this.typeParameter);\n }\n get typeParameter() {\n $.utils.testWhich(\"typeParameter\", $.utils.getUint16(0, this), 17, this);\n return $.utils.getStruct(0, SerializedTypeTypeParameter, this);\n }\n _hasTypeParameter() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initTypeParameter() {\n $.utils.setUint16(0, 17, this);\n return $.utils.initStructAt(0, SerializedTypeTypeParameter, this);\n }\n get _isTypeParameter() {\n return $.utils.getUint16(0, this) === 17;\n }\n set typeParameter(value) {\n $.utils.setUint16(0, 17, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptInfer(value) {\n $.utils.setUint16(0, 18, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownInfer() {\n return $.utils.disown(this.infer);\n }\n get infer() {\n $.utils.testWhich(\"infer\", $.utils.getUint16(0, this), 18, this);\n return $.utils.getStruct(0, SerializedTypeInfer, this);\n }\n _hasInfer() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initInfer() {\n $.utils.setUint16(0, 18, this);\n return $.utils.initStructAt(0, SerializedTypeInfer, this);\n }\n get _isInfer() {\n return $.utils.getUint16(0, this) === 18;\n }\n set infer(value) {\n $.utils.setUint16(0, 18, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptTuple(value) {\n $.utils.setUint16(0, 19, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownTuple() {\n return $.utils.disown(this.tuple);\n }\n get tuple() {\n $.utils.testWhich(\"tuple\", $.utils.getUint16(0, this), 19, this);\n return $.utils.getStruct(0, SerializedTypeTuple, this);\n }\n _hasTuple() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initTuple() {\n $.utils.setUint16(0, 19, this);\n return $.utils.initStructAt(0, SerializedTypeTuple, this);\n }\n get _isTuple() {\n return $.utils.getUint16(0, this) === 19;\n }\n set tuple(value) {\n $.utils.setUint16(0, 19, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptTupleMember(value) {\n $.utils.setUint16(0, 20, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownTupleMember() {\n return $.utils.disown(this.tupleMember);\n }\n get tupleMember() {\n $.utils.testWhich(\"tupleMember\", $.utils.getUint16(0, this), 20, this);\n return $.utils.getStruct(0, SerializedTypeTupleMember, this);\n }\n _hasTupleMember() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initTupleMember() {\n $.utils.setUint16(0, 20, this);\n return $.utils.initStructAt(0, SerializedTypeTupleMember, this);\n }\n get _isTupleMember() {\n return $.utils.getUint16(0, this) === 20;\n }\n set tupleMember(value) {\n $.utils.setUint16(0, 20, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptRest(value) {\n $.utils.setUint16(0, 21, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownRest() {\n return $.utils.disown(this.rest);\n }\n get rest() {\n $.utils.testWhich(\"rest\", $.utils.getUint16(0, this), 21, this);\n return $.utils.getStruct(0, SerializedTypeRest, this);\n }\n _hasRest() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initRest() {\n $.utils.setUint16(0, 21, this);\n return $.utils.initStructAt(0, SerializedTypeRest, this);\n }\n get _isRest() {\n return $.utils.getUint16(0, this) === 21;\n }\n set rest(value) {\n $.utils.setUint16(0, 21, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n _adoptOther(value) {\n $.utils.setUint16(0, 22, this);\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownOther() {\n return $.utils.disown(this.other);\n }\n /**\n * For any other type that is not explicitly defined\n *\n */\n get other() {\n $.utils.testWhich(\"other\", $.utils.getUint16(0, this), 22, this);\n return $.utils.getStruct(0, SerializedTypeOther, this);\n }\n _hasOther() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initOther() {\n $.utils.setUint16(0, 22, this);\n return $.utils.initStructAt(0, SerializedTypeOther, this);\n }\n get _isOther() {\n return $.utils.getUint16(0, this) === 22;\n }\n set other(value) {\n $.utils.setUint16(0, 22, this);\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n toString() {\n return \"SerializedType_Type_\" + super.toString();\n }\n which() {\n return $.utils.getUint16(0, this);\n }\n};\nvar SerializedType = class extends $.Struct {\n static {\n __name(this, \"SerializedType\");\n }\n static _capnp = {\n displayName: \"SerializedType\",\n id: \"96856dcc2dd3d58f\",\n size: new $.ObjectSize(8, 1)\n };\n get type() {\n return $.utils.getAs(SerializedType_Type, this);\n }\n _initType() {\n return $.utils.getAs(SerializedType_Type, this);\n }\n toString() {\n return \"SerializedType_\" + super.toString();\n }\n};\nvar SerializedTypes = class _SerializedTypes extends $.Struct {\n static {\n __name(this, \"SerializedTypes\");\n }\n static _capnp = {\n displayName: \"SerializedTypes\",\n id: \"ac55398ab0ef4958\",\n size: new $.ObjectSize(0, 1)\n };\n static _Types;\n _adoptTypes(value) {\n $.utils.adopt(value, $.utils.getPointer(0, this));\n }\n _disownTypes() {\n return $.utils.disown(this.types);\n }\n get types() {\n return $.utils.getList(0, _SerializedTypes._Types, this);\n }\n _hasTypes() {\n return !$.utils.isNull($.utils.getPointer(0, this));\n }\n _initTypes(length) {\n return $.utils.initList(0, _SerializedTypes._Types, length, this);\n }\n set types(value) {\n $.utils.copyFrom(value, $.utils.getPointer(0, this));\n }\n toString() {\n return \"SerializedTypes_\" + super.toString();\n }\n};\nEntityOptions._Indexes = $.CompositeList(EntityOptions_EntityIndexOptions);\nSerializedTypeObjectLiteral._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeObjectLiteral._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeObjectLiteral._Types = $.CompositeList(SerializedTypeReference);\nSerializedTypeClassType._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeClassType._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeClassType._ExtendsArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeClassType._Arguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeClassType._Types = $.CompositeList(SerializedTypeReference);\nSerializedTypeParameter._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeParameter._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeMethod._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeMethod._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeMethod._Parameters = $.CompositeList(SerializedTypeParameter);\nSerializedTypeProperty._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeProperty._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeFunction._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeFunction._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeFunction._Parameters = $.CompositeList(SerializedTypeParameter);\nSerializedTypePromise._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypePromise._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeEnum._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeEnum._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeEnum._EnumEntries = $.CompositeList(SerializedTypeEnumEntry);\nSerializedTypeUnion._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeUnion._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeUnion._Types = $.CompositeList(SerializedTypeReference);\nSerializedTypeIntersection._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeIntersection._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeIntersection._Types = $.CompositeList(SerializedTypeReference);\nSerializedTypeArray._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeArray._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeIndexSignature._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeIndexSignature._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypePropertySignature._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypePropertySignature._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeMethodSignature._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeMethodSignature._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeMethodSignature._Parameters = $.CompositeList(SerializedTypeParameter);\nSerializedTypeTypeParameter._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeTypeParameter._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeInfer._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeInfer._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeTupleMember._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeTupleMember._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeTuple._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeTuple._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeTuple._Types = $.CompositeList(SerializedTypeTupleMember);\nSerializedTypeRest._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeRest._Decorators = $.CompositeList(SerializedTypeReference);\nSimpleSerializedType._TypeArguments = $.CompositeList(SerializedTypeReference);\nSimpleSerializedType._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeLiteral._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeLiteral._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeTemplateLiteral._TypeArguments = $.CompositeList(SerializedTypeReference);\nSerializedTypeTemplateLiteral._Decorators = $.CompositeList(SerializedTypeReference);\nSerializedTypeTemplateLiteral._Types = $.CompositeList(SerializedTypeReference);\nSerializedTypes._Types = $.CompositeList(SerializedType);\n\nexport { DefaultValueReflection, DefaultValueReflection_Value, DefaultValueReflection_Value_Which, EntityOptions, EntityOptions_EntityIndexOptions, IndexAccessOrigin, ReflectionKind, ReflectionVisibility, SerializedType, SerializedTypeArray, SerializedTypeClassType, SerializedTypeEnum, SerializedTypeEnumEntry, SerializedTypeFunction, SerializedTypeIndexSignature, SerializedTypeInfer, SerializedTypeIntersection, SerializedTypeLiteral, SerializedTypeLiteralBigInt, SerializedTypeLiteralRegex, SerializedTypeLiteralSymbol, SerializedTypeLiteral_Literal, SerializedTypeLiteral_Literal_Which, SerializedTypeMethod, SerializedTypeMethodSignature, SerializedTypeObjectLiteral, SerializedTypeOther, SerializedTypeParameter, SerializedTypePromise, SerializedTypeProperty, SerializedTypePropertySignature, SerializedTypeReference, SerializedTypeRest, SerializedTypeTemplateLiteral, SerializedTypeTuple, SerializedTypeTupleMember, SerializedTypeTypeParameter, SerializedTypeUnion, SerializedType_Type, SerializedType_Type_Which, SerializedTypes, SimpleSerializedType, TagsReflection, _capnpFileId };\n","/* -------------------------------------------------------------------\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 ReflectionKind,\n ReflectionParameter,\n ReflectionProperty,\n Type,\n TypeNumber,\n TypeString\n} from \"@powerlines/deepkit/vendor/type\";\nimport { getUniqueBy } from \"@stryke/helpers/get-unique\";\nimport { StormJSON } from \"@stryke/json/storm-json\";\nimport { isNull } from \"@stryke/type-checks/is-null\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\n\n/**\n * Converts any {@link ReflectionProperty} or {@link ReflectionParameter}'s value to string representation.\n *\n * @param property - The {@link ReflectionProperty} or {@link ReflectionParameter} containing the value to stringify.\n * @param value - The value to stringify.\n * @returns A string representation of the value.\n */\nexport function stringifyDefaultValue(\n property: ReflectionProperty | ReflectionParameter,\n value?: any\n): string {\n return stringifyValue(property.type, value ?? property.getDefaultValue());\n}\n\n/**\n * Stringifies a value as a string.\n *\n * @param value - The value to stringify.\n * @returns A string representation of the value.\n */\nexport function stringifyStringValue(value?: any): string {\n return `\"${String(value).replaceAll('\"', '\\\\\"')}\"`;\n}\n\n/**\n * Converts any {@link Type}'s actual value to string representation.\n *\n * @param type - The {@link Type} of the value to stringify.\n * @param value - The value to stringify.\n * @returns A string representation of the value.\n */\nexport function stringifyValue(type: Type, value: any): string {\n return isUndefined(value)\n ? \"undefined\"\n : isNull(value)\n ? \"null\"\n : type.kind === ReflectionKind.boolean\n ? String(value).trim().toLowerCase() === \"true\"\n ? \"true\"\n : \"false\"\n : type.kind === ReflectionKind.string ||\n (type.kind === ReflectionKind.literal && isString(type.literal))\n ? stringifyStringValue(value)\n : type.kind === ReflectionKind.enum\n ? getEnumReflectionType(type).kind === ReflectionKind.string\n ? stringifyStringValue(value)\n : `${String(value)}`\n : type.kind === ReflectionKind.union\n ? isStringUnion(type)\n ? stringifyStringValue(value)\n : `${String(value)}`\n : type.kind === ReflectionKind.array\n ? stringifyStringValue(StormJSON.stringify(value))\n : type.kind === ReflectionKind.object ||\n type.kind === ReflectionKind.objectLiteral\n ? StormJSON.stringify(value)\n : type.kind === ReflectionKind.property ||\n type.kind === ReflectionKind.parameter\n ? stringifyValue(type.type, value)\n : String(value);\n}\n\n/**\n * Converts a {@link TypeEnum} to its underlying primitive type representation.\n *\n * @param type - The {@link TypeEnum} to evaluate.\n * @returns A string representation of the primitive type.\n */\nexport function getEnumReflectionType(type: Type): TypeString | TypeNumber {\n if (type.kind !== ReflectionKind.enum) {\n throw new Error(`Expected a TypeEnum, but received ${type.kind}.`);\n }\n\n const unique = getUniqueBy(\n type.values.filter(value => value !== undefined && value !== null),\n enumMember =>\n isString(enumMember)\n ? {\n kind: ReflectionKind.string\n }\n : {\n kind: ReflectionKind.number\n }\n );\n if (unique.length === 0) {\n throw new Error(`No valid enum members could be found.`);\n }\n\n return unique[0] && isString(unique[0])\n ? {\n kind: ReflectionKind.string\n }\n : {\n kind: ReflectionKind.number\n };\n}\n\n/**\n * Converts a {@link TypeUnion} to its underlying primitive type representation.\n *\n * @param type - The {@link TypeUnion} to evaluate.\n * @returns A string representation of the primitive type.\n */\nexport function getUnionTypes(type: Type): Type[] {\n if (type.kind === ReflectionKind.union && type.types.length > 0) {\n return getUniqueBy(type.types, member => member.kind);\n }\n\n throw new Error(`Expected a TypeUnion, but received ${type.kind}.`);\n}\n\nexport function isStringUnion(type: Type): boolean {\n return getUnionTypes(type).some(\n member =>\n member.kind === ReflectionKind.string ||\n (member.kind === ReflectionKind.literal && isString(member.literal))\n );\n}\n\n/**\n * Converts a ReflectionKind to its string representation.\n *\n * @param kind - The {@link ReflectionKind} to convert.\n * @returns A string representation of the kind.\n */\nexport function kindToName(kind: ReflectionKind): string {\n if (kind === ReflectionKind.void) {\n return \"void\";\n } else if (kind === ReflectionKind.never) {\n return \"never\";\n } else if (kind === ReflectionKind.null) {\n return \"null\";\n } else if (kind === ReflectionKind.undefined) {\n return \"undefined\";\n } else if (kind === ReflectionKind.symbol) {\n return \"symbol\";\n } else if (kind === ReflectionKind.bigint) {\n return \"bigint\";\n } else if (kind === ReflectionKind.number) {\n return \"number\";\n } else if (kind === ReflectionKind.string) {\n return \"string\";\n } else if (kind === ReflectionKind.boolean) {\n return \"boolean\";\n } else if (kind === ReflectionKind.literal) {\n return \"literal\";\n } else if (kind === ReflectionKind.class) {\n return \"class\";\n } else if (kind === ReflectionKind.array) {\n return \"array\";\n } else if (kind === ReflectionKind.object) {\n return \"object\";\n } else if (kind === ReflectionKind.objectLiteral) {\n return \"objectLiteral\";\n } else if (kind === ReflectionKind.union) {\n return \"union\";\n } else if (kind === ReflectionKind.enum) {\n return \"enum\";\n } else if (kind === ReflectionKind.regexp) {\n return \"regexp\";\n } else if (kind === ReflectionKind.templateLiteral) {\n return \"templateLiteral\";\n } else if (kind === ReflectionKind.property) {\n return \"property\";\n } else if (kind === ReflectionKind.method) {\n return \"method\";\n } else if (kind === ReflectionKind.function) {\n return \"function\";\n } else if (kind === ReflectionKind.parameter) {\n return \"parameter\";\n } else if (kind === ReflectionKind.promise) {\n return \"promise\";\n } else if (kind === ReflectionKind.typeParameter) {\n return \"typeParameter\";\n } else if (kind === ReflectionKind.tuple) {\n return \"tuple\";\n } else if (kind === ReflectionKind.tupleMember) {\n return \"tupleMember\";\n } else if (kind === ReflectionKind.enumMember) {\n return \"enumMember\";\n } else if (kind === ReflectionKind.rest) {\n return \"rest\";\n } else if (kind === ReflectionKind.indexSignature) {\n return \"indexSignature\";\n } else if (kind === ReflectionKind.propertySignature) {\n return \"propertySignature\";\n } else if (kind === ReflectionKind.methodSignature) {\n return \"methodSignature\";\n } else if (kind === ReflectionKind.infer) {\n return \"infer\";\n } else if (kind === ReflectionKind.callSignature) {\n return \"callSignature\";\n } else if (kind === ReflectionKind.any) {\n return \"any\";\n } else if (kind === ReflectionKind.intersection) {\n return \"intersection\";\n }\n\n return \"unknown\";\n}\n","/* -------------------------------------------------------------------\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 { joinPaths } from \"@stryke/path/join-paths\";\nimport type { Context } from \"powerlines/types/context\";\n\n/**\n * Returns the path to the reflections artifact directory.\n *\n * @param context - The context object containing the environment paths.\n * @returns The path to the reflections artifact directory.\n */\nexport function getReflectionsPath(context: Context): string {\n return joinPaths(context.dataPath, \"reflections\");\n}\n","/* -------------------------------------------------------------------\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 { omit } from \"@stryke/helpers/omit\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { replaceExtension, replacePath } from \"@stryke/path/replace\";\nimport { camelCase } from \"@stryke/string-format/camel-case\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport defu from \"defu\";\nimport { BuildOptions, Format, LogLevel, Platform } from \"esbuild\";\nimport {\n ESBuildBuildConfig,\n ESBuildResolvedBuildConfig,\n TsupBuildConfig\n} from \"../../types/build\";\nimport { Context } from \"../../types/context\";\nimport type { ResolvedEntryTypeDefinition } from \"../../types/resolved\";\nimport { resolveEntryInputFile, resolveEntryOutput } from \"../entry\";\n\n// const resolverPlugin = (\n// context: Context,\n// options: Pick<\n// BuildResolvedConfig,\n// \"external\" | \"noExternal\" | \"skipNodeModulesBundle\"\n// > = {}\n// ): Plugin => {\n// return {\n// name: \"powerlines:resolver\",\n// setup(build) {\n// const skipNodeModulesBundle =\n// options.skipNodeModulesBundle ??\n// context.config.build.skipNodeModulesBundle;\n// const external = options.external ?? context.config.build.external ?? [];\n// const noExternal =\n// options.noExternal ?? context.config.build.noExternal ?? [];\n// const resolvePatterns = skipNodeModulesBundle\n// ? tsconfigPathsToRegExp(context.tsconfig.options.paths ?? [])\n// : [];\n\n// const handle = async (args: OnResolveArgs) => {\n// const result = await handleResolveId(\n// context,\n// {\n// id: args.path,\n// importer: args.importer,\n// options: {\n// isEntry: false\n// }\n// },\n// {\n// skipNodeModulesBundle,\n// external,\n// noExternal,\n// resolvePatterns\n// }\n// );\n// if (!result) {\n// return;\n// }\n\n// return {\n// path: result?.id,\n// external: result?.external\n// };\n// };\n\n// build.onResolve({ filter: /.*/ }, handle);\n// build.onResolve({ filter: /^storm:/ }, handle);\n// }\n// };\n// };\n\nexport const DEFAULT_ESBUILD_CONFIG: Partial<ESBuildResolvedBuildConfig> = {\n target: \"esnext\",\n platform: \"neutral\" as Platform,\n format: \"esm\" as Format,\n write: true,\n minify: true,\n sourcemap: false,\n bundle: true,\n treeShaking: true,\n keepNames: true,\n splitting: true,\n logLevel: \"silent\" as LogLevel\n};\n\n/**\n * Resolves the entry options for esbuild.\n *\n * @param context - The build context.\n * @param entryPoints - The entry points to resolve.\n * @returns The resolved entry options.\n */\nexport function resolveESBuildEntry(\n context: Context,\n entryPoints: ResolvedEntryTypeDefinition[] | string[] = []\n): ESBuildResolvedBuildConfig[\"entryPoints\"] {\n return entryPoints.reduce(\n (ret, entry) => {\n if (isString(entry)) {\n ret[\n replaceExtension(\n replacePath(\n entry,\n context.config.sourceRoot || context.config.projectRoot\n )\n )\n ] = replacePath(\n entry,\n context.config.sourceRoot || context.config.projectRoot\n );\n } else {\n ret[entry.output || resolveEntryOutput(context, entry.input || entry)] =\n resolveEntryInputFile(context, entry.input || entry);\n }\n\n return ret;\n },\n {} as Record<string, string>\n );\n}\n\n/**\n * Resolves the esbuild options.\n *\n * @param context - The build context.\n * @returns The resolved esbuild options.\n */\nexport function extractESBuildConfig(context: Context): BuildOptions {\n const inject =\n context.config.build.override.inject ?? context.config.build.inject;\n if (inject && Object.keys(inject).length > 0) {\n context.fs.writeSync(\n joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.projectRoot,\n context.artifactsPath,\n \"inject-shim.js\"\n ),\n Object.entries(inject)\n .map(([key, value]) => {\n if (value) {\n if (Array.isArray(value)) {\n if (camelCase(key) !== key) {\n if (value.length === 1) {\n return `\nimport ${camelCase(key)} from \"${value[0]}\";\nexport { ${camelCase(key)} as \"${key}\" }`;\n } else if (value.length > 1) {\n return `\nimport ${value[1] === \"*\" ? `* as ${camelCase(key)}` : `{ ${value[1]} as ${camelCase(key)} }`} from \"${value[0]}\";\nexport { ${camelCase(key)} as \"${key}\" }`;\n }\n } else if (value.length === 1) {\n return `\nimport ${key} from \"${value[0]}\";\nexport { ${key} };`;\n } else if (value.length > 1) {\n return `\nimport ${value[1] === \"*\" ? `* as ${key}` : `{ ${value[1]} as ${key} }`} from \"${value[0]}\";\nexport { ${key} };`;\n }\n } else if (camelCase(key) !== key) {\n return `\nimport ${camelCase(key)} from \"${value[0]}\";\nexport { ${camelCase(key)} as \"${key}\" }`;\n } else {\n return `\nimport ${key} from \"${value}\";\nexport { ${key} };`;\n }\n }\n\n return \"\";\n })\n .join(\"\\n\")\n );\n }\n\n return defu(\n {\n alias: context.builtins.reduce(\n (ret, id) => {\n if (!ret[id]) {\n const path = context.fs.ids[id];\n if (path) {\n ret[id] = path;\n }\n }\n\n return ret;\n },\n context.config.build.alias\n ? Array.isArray(context.config.build.alias)\n ? context.config.build.alias.reduce(\n (ret, alias) => {\n if (!ret[alias.find.toString()]) {\n ret[alias.find.toString()] = alias.replacement;\n }\n\n return ret;\n },\n {} as Record<string, string>\n )\n : context.config.build.alias\n : {}\n ),\n inject:\n inject && Object.keys(inject).length > 0\n ? [\n joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.projectRoot,\n context.artifactsPath,\n \"inject-shim.js\"\n )\n ]\n : undefined\n },\n context.config.build.variant === \"esbuild\"\n ? (omit(context.config.build.override, [\n \"alias\",\n \"inject\",\n \"external\",\n \"noExternal\",\n \"skipNodeModulesBundle\",\n \"extensions\"\n ]) as BuildOptions)\n : {},\n context.config.build.variant === \"esbuild\"\n ? (omit(context.config.build, [\n \"alias\",\n \"inject\",\n \"external\",\n \"noExternal\",\n \"skipNodeModulesBundle\",\n \"extensions\",\n \"variant\",\n \"override\"\n ]) as BuildOptions)\n : {},\n {\n mainFields: context.config.build.mainFields,\n conditions: context.config.build.conditions,\n define: context.config.build.define,\n resolveExtensions: context.config.build.extensions,\n packages: context.config.build.skipNodeModulesBundle\n ? \"external\"\n : context.config.build.variant === \"esbuild\"\n ? (context.config.build as ESBuildBuildConfig).packages\n : undefined,\n format: (Array.isArray(context.config.output.format)\n ? context.config.output.format[0]\n : context.config.output.format) as Format,\n platform: context.config.build.platform,\n treeShaking:\n Boolean((context.config.build as TsupBuildConfig)?.treeshake) ||\n (context.config.build as ESBuildBuildConfig)?.treeShaking,\n outdir: context.config.output.buildPath,\n tsconfig: context.tsconfig.tsconfigFilePath,\n tsconfigRaw: context.tsconfig.tsconfigJson,\n minify: context.config.mode !== \"development\",\n metafile: context.config.mode === \"development\",\n sourcemap: context.config.mode === \"development\"\n },\n DEFAULT_ESBUILD_CONFIG\n ) as BuildOptions;\n}\n","/* -------------------------------------------------------------------\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 { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { build, BuildOptions, OutputFile } from \"esbuild\";\nimport { ESBuildResolvedBuildConfig } from \"../../types/build\";\nimport { Context } from \"../../types/context\";\nimport { extractESBuildConfig } from \"../build/esbuild\";\n\n/**\n * Bundle a type definition to a module.\n *\n * @param context - The context object containing the environment paths.\n * @param file - The file path to bundle.\n * @param overrides - Optional overrides for the ESBuild configuration.\n * @returns A promise that resolves to the bundled module.\n */\nexport async function bundle(\n context: Context,\n file: string,\n overrides: Partial<ESBuildResolvedBuildConfig> = {}\n): Promise<OutputFile> {\n const path = await context.fs.resolve(file);\n if (!path || !context.fs.existsSync(path)) {\n throw new Error(\n `Module not found: \"${file}\". Please check the path and try again.`\n );\n }\n\n const result = await build({\n ...extractESBuildConfig(context),\n entry: [path],\n write: false,\n sourcemap: false,\n splitting: false,\n treeShaking: false,\n bundle: true,\n ...overrides\n } as BuildOptions);\n if (result.errors.length > 0) {\n throw new Error(\n `Failed to transpile ${file}: ${result.errors\n .map(error => error.text)\n .join(\", \")}`\n );\n }\n if (result.warnings.length > 0) {\n context.log(\n LogLevelLabel.WARN,\n `Warnings while transpiling ${file}: ${result.warnings\n .map(warning => warning.text)\n .join(\", \")}`\n );\n }\n if (!result.outputFiles || result.outputFiles.filter(Boolean).length === 0) {\n throw new Error(\n `No output files generated for ${\n file\n }. Please check the configuration and try again.`\n );\n }\n\n return result.outputFiles.filter(Boolean)[0]!;\n}\n","/* -------------------------------------------------------------------\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 { parseTypeDefinition } from \"@stryke/convert/parse-type-definition\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport {\n TypeDefinition,\n TypeDefinitionParameter\n} from \"@stryke/types/configuration\";\nimport { ESBuildResolvedBuildConfig } from \"../../types/build\";\nimport { Context } from \"../../types/context\";\nimport { bundle } from \"./bundle\";\n\n/**\n * Compiles a type definition to a module.\n *\n * @param context - The context object containing the environment paths.\n * @param type - The type definition to compile. This can be either a string or a {@link TypeDefinition} object.\n * @param overrides - Optional overrides for the ESBuild configuration.\n * @returns A promise that resolves to the compiled module.\n */\nexport async function resolve<TResult = any>(\n context: Context,\n type: TypeDefinitionParameter,\n overrides: Partial<ESBuildResolvedBuildConfig> = {}\n): Promise<TResult> {\n let typeDefinition!: TypeDefinition;\n if (isSetString(type)) {\n typeDefinition = parseTypeDefinition(type) as TypeDefinition;\n } else {\n typeDefinition = type;\n }\n\n const result = await bundle(context, typeDefinition.file, overrides);\n\n const resolved = (await context.resolver.evalModule(result.text, {\n filename: result.path,\n forceTranspile: true\n })) as Record<string, any>;\n\n let exportName = typeDefinition.name;\n if (!exportName) {\n exportName = \"default\";\n }\n\n return resolved[exportName] ?? resolved[`__Ω${exportName}`];\n}\n","/* -------------------------------------------------------------------\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 type { Type } from \"@powerlines/deepkit/vendor/type\";\nimport { reflect } from \"@powerlines/deepkit/vendor/type\";\nimport type { TypeDefinition } from \"@stryke/types/configuration\";\nimport { resolve } from \"powerlines/lib/utilities/resolve\";\nimport { ESBuildResolvedBuildConfig } from \"powerlines/types/build\";\nimport type { Context } from \"powerlines/types/context\";\n\n/**\n * Compiles a type definition to a module.\n *\n * @param context - The context object containing the environment paths.\n * @param type - The type definition to compile.\n * @param overrides - Optional overrides for the ESBuild configuration.\n * @returns A promise that resolves to the compiled module.\n */\nexport async function reflectType(\n context: Context,\n type: TypeDefinition,\n overrides?: Partial<ESBuildResolvedBuildConfig>\n): Promise<Type> {\n return reflect(await resolve(context, type, overrides));\n}\n","/* -------------------------------------------------------------------\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 { reflectType } from \"@powerlines/deepkit/reflect-type\";\nimport {\n merge,\n ReflectionClass,\n ReflectionKind,\n resolveClassType,\n TypeClass,\n TypeObjectLiteral\n} from \"@powerlines/deepkit/vendor/type\";\nimport { isParentPath } from \"@stryke/path/is-parent-path\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { EnvPluginContext } from \"../types/plugin\";\nimport { EnvInterface, SecretsInterface } from \"../types/runtime\";\nimport {\n getEnvDefaultTypeDefinition,\n getSecretsDefaultTypeDefinition,\n readEnvTypeReflection,\n readSecretsReflection\n} from \"./persistence\";\n\nexport function mergeEnvReflections(\n context: EnvPluginContext,\n reflections: ReflectionClass<any>[]\n): ReflectionClass<any> {\n const reflection = createEnvReflection(context, {\n type: merge(reflections.map(reflection => reflection.type))\n });\n\n return reflection;\n}\n\nexport function mergeSecretsReflections(\n context: EnvPluginContext,\n reflections: ReflectionClass<any>[]\n): ReflectionClass<any> {\n const reflection = createSecretsReflection(context, {\n type: merge(reflections.map(reflection => reflection.type))\n });\n\n return reflection;\n}\n\nexport interface CreateEnvReflectionOptions {\n type?: TypeObjectLiteral | TypeClass;\n superReflection?: ReflectionClass<any>;\n}\n\nexport class BaseEnv implements EnvInterface {\n APP_NAME!: string;\n\n APP_VERSION!: string;\n\n BUILD_ID!: string;\n\n BUILD_TIMESTAMP!: string;\n\n BUILD_CHECKSUM!: string;\n\n RELEASE_ID!: string;\n\n RELEASE_TAG!: string;\n\n ORGANIZATION!: string;\n\n PLATFORM: \"node\" | \"browser\" | \"neutral\" = \"neutral\";\n\n MODE: \"development\" | \"test\" | \"production\" = \"production\";\n\n ENVIRONMENT!: string;\n\n DEBUG: boolean = false;\n\n TEST: boolean = false;\n\n MINIMAL: boolean = false;\n\n NO_COLOR: boolean = false;\n\n FORCE_COLOR: number | boolean = false;\n\n FORCE_HYPERLINK: number | boolean = false;\n\n STACKTRACE: boolean = false;\n\n INCLUDE_ERROR_DATA: boolean = false;\n\n ERROR_URL!: string;\n\n DEFAULT_TIMEZONE!: string;\n\n DEFAULT_LOCALE!: string;\n\n CI: boolean = false;\n}\n\nexport class BaseSecrets implements SecretsInterface {\n ENCRYPTION_KEY!: string;\n}\n\nexport function createEnvReflection(\n context: EnvPluginContext,\n options: CreateEnvReflectionOptions = {}\n): ReflectionClass<any> {\n const parent =\n options.superReflection ??\n new ReflectionClass({\n kind: ReflectionKind.class,\n description: `The base environment configuration definition for the ${titleCase(\n context.config.name\n )} project.`,\n classType: BaseEnv,\n types: [],\n implements: [\n {\n kind: ReflectionKind.objectLiteral,\n typeName: \"EnvInterface\",\n description: `The environment configuration interface definition for the ${titleCase(\n context.config.name\n )} project.`,\n types: []\n }\n ]\n });\n parent.name = \"Env\";\n\n const result = new ReflectionClass(\n options.type ?? {\n kind: ReflectionKind.objectLiteral,\n typeName: \"Env\",\n description: `A schema describing the list of available environment variables that can be used by the ${\n context.config.name\n ? `${titleCase(context.config.name)} application`\n : \"application\"\n }.`,\n types: []\n },\n parent\n );\n result.name = \"Env\";\n\n return result;\n}\n\nexport function createSecretsReflection(\n context: EnvPluginContext,\n options: CreateEnvReflectionOptions = {}\n): ReflectionClass<any> {\n const parent =\n options.superReflection ??\n new ReflectionClass({\n kind: ReflectionKind.class,\n description: `The base secrets configuration definition for the ${titleCase(\n context.config.name\n )} project.`,\n classType: BaseSecrets,\n types: [],\n implements: [\n {\n kind: ReflectionKind.objectLiteral,\n typeName: \"SecretsInterface\",\n description: `The secrets configuration interface definition for the ${titleCase(\n context.config.name\n )} project.`,\n types: []\n }\n ]\n });\n parent.name = \"Secrets\";\n\n const result = new ReflectionClass(\n options.type ?? {\n kind: ReflectionKind.objectLiteral,\n typeName: \"Secrets\",\n description: `A schema describing the list of available environment secrets that can be used by the ${\n context.config.name\n ? `${titleCase(context.config.name)} application`\n : \"application\"\n }.`,\n types: []\n },\n parent\n );\n result.name = \"Secrets\";\n\n return result;\n}\n\nexport async function reflectEnv(\n context: EnvPluginContext,\n file?: string,\n name?: string\n) {\n let config: ReflectionClass<any> | undefined;\n if (file) {\n const configType = await reflectType(\n context,\n {\n file: !isParentPath(file, context.workspaceConfig.workspaceRoot)\n ? joinPaths(context.workspaceConfig.workspaceRoot, file)\n : file,\n name\n },\n {\n skipNodeModulesBundle: true\n }\n );\n\n config = resolveClassType(configType);\n }\n\n const defaultConfigType = await reflectType(\n context,\n await getEnvDefaultTypeDefinition(context)\n );\n\n const reflection = await readEnvTypeReflection(context, \"env\");\n\n // const defaultConfig = resolveClassType(defaultConfigType);\n // if (config) {\n // defaultConfig.getProperties().forEach(prop => {\n // if (!config!.hasProperty(prop.getName())) {\n // config!.addProperty(prop.property);\n // }\n // });\n // } else {\n // config = defaultConfig;\n // }\n\n return mergeEnvReflections(\n context,\n [reflection, config, resolveClassType(defaultConfigType)].filter(\n Boolean\n ) as ReflectionClass<any>[]\n );\n}\n\nexport async function reflectSecrets(\n context: EnvPluginContext,\n file?: string,\n name?: string\n) {\n let config: ReflectionClass<any> | undefined;\n if (file) {\n const configType = await reflectType(\n context,\n {\n file: !isParentPath(file, context.workspaceConfig.workspaceRoot)\n ? joinPaths(context.workspaceConfig.workspaceRoot, file)\n : file,\n name\n },\n {\n skipNodeModulesBundle: true\n }\n );\n\n config = resolveClassType(configType);\n }\n\n const defaultSecretsType = await reflectType(\n context,\n await getSecretsDefaultTypeDefinition(context)\n );\n\n const reflection = await readSecretsReflection(context);\n\n // const defaultConfig = resolveClassType(defaultConfigType);\n // if (config) {\n // defaultConfig.getProperties().forEach(prop => {\n // if (!config!.hasProperty(prop.getName())) {\n // config!.addProperty(prop.property);\n // }\n // });\n // } else {\n // config = defaultConfig;\n // }\n\n return mergeSecretsReflections(\n context,\n [reflection, config, resolveClassType(defaultSecretsType)].filter(\n Boolean\n ) as ReflectionClass<any>[]\n );\n}\n","/* -------------------------------------------------------------------\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 { convertFromCapnp, convertToCapnp } from \"@powerlines/deepkit/capnp\";\nimport { getReflectionsPath } from \"@powerlines/deepkit/resolve-reflections\";\nimport { SerializedTypes } from \"@powerlines/deepkit/schemas/reflection\";\nimport { Reflection } from \"@powerlines/deepkit/types\";\nimport {\n deserializeType,\n ReflectionClass,\n ReflectionKind,\n resolveClassType\n} from \"@powerlines/deepkit/vendor/type\";\nimport * as capnp from \"@stryke/capnp\";\nimport {\n readFileBuffer,\n writeFileBuffer,\n writeFileBufferSync\n} from \"@stryke/fs/buffer\";\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { isEmptyObject } from \"@stryke/type-checks/is-empty-object\";\nimport type { TypeDefinition } from \"@stryke/types/configuration\";\nimport { existsSync } from \"node:fs\";\nimport { Context, UnresolvedContext } from \"powerlines/types/context\";\nimport {\n EnvPluginContext,\n EnvPluginResolvedConfig,\n EnvType\n} from \"../types/plugin\";\nimport { createEnvReflection } from \"./reflect\";\n\n/**\n * Resolves the runtime type definition file for the environment variables.\n *\n * @param context - The plugin context.\n * @returns The runtime type definition file for the environment variables.\n */\nexport async function resolveRuntimeTypeFile(\n context: UnresolvedContext<EnvPluginResolvedConfig>\n): Promise<string> {\n return resolvePackage(\"@powerlines/plugin-env/types/runtime\", {\n paths: [\n context.workspaceConfig.workspaceRoot,\n joinPaths(\n context.workspaceConfig.workspaceRoot,\n context.config.projectRoot\n )\n ]\n });\n}\n\n/**\n * Gets the default type definition for the environment variables.\n *\n * @param context - The plugin context.\n * @returns The default type definition for the environment variables.\n */\nexport async function getEnvDefaultTypeDefinition(\n context: UnresolvedContext<EnvPluginResolvedConfig>\n): Promise<TypeDefinition> {\n return {\n file: await resolveRuntimeTypeFile(context),\n name: \"EnvInterface\"\n };\n}\n\n/** Gets the default type definition for the environment secrets.\n *\n * @param context - The plugin context.\n * @returns The default type definition for the environment secrets.\n */\nexport async function getSecretsDefaultTypeDefinition(\n context: UnresolvedContext<EnvPluginResolvedConfig>\n): Promise<TypeDefinition> {\n return {\n file: await resolveRuntimeTypeFile(context),\n name: \"SecretsInterface\"\n };\n}\n\n/**\n * Gets the path to the environment type reflections.\n *\n * @param context - The plugin context.\n * @param name - The name of the type reflections.\n * @returns The path to the environment type reflections.\n */\nexport function getEnvTypeReflectionsPath(\n context: Context<EnvPluginResolvedConfig>,\n name: EnvType = \"env\"\n): string {\n return joinPaths(getReflectionsPath(context), \"env\", `${name}-types.bin`);\n}\n\n/**\n * Reads the environment type reflection from the file system.\n *\n * @param context - The plugin context.\n * @param name - The name of the type reflections.\n * @returns The environment type reflection.\n */\nexport async function readEnvTypeReflection(\n context: EnvPluginContext,\n name: EnvType = \"env\"\n): Promise<ReflectionClass<any>> {\n const filePath = getEnvTypeReflectionsPath(context, name);\n if (!existsSync(filePath)) {\n if (!context.env.types.env || isEmptyObject(context.env.types.env)) {\n const reflection = createEnvReflection(context) as Reflection;\n\n const message = new capnp.Message();\n reflection.messageRoot = message.initRoot(SerializedTypes);\n reflection.dataBuffer = message.toArrayBuffer();\n\n context.env.types.env = reflection;\n await writeEnvTypeReflection(context, context.env.types.env, name);\n }\n\n return context.env.types.env;\n }\n\n const buffer = await readFileBuffer(filePath);\n const message = new capnp.Message(buffer, false);\n const messageRoot = message.getRoot(SerializedTypes);\n\n const reflection = resolveClassType(\n deserializeType(convertFromCapnp(messageRoot.types))\n );\n\n context.env.types[name] = reflection;\n context.env.types[name].messageRoot = messageRoot;\n context.env.types[name].dataBuffer = buffer;\n\n return reflection;\n}\n\n/**\n * Writes the environment type reflection to the file system.\n *\n * @param context - The plugin context.\n * @param reflection - The environment type reflection to write.\n * @param name - The name of the type reflections.\n */\nexport async function writeEnvTypeReflection(\n context: EnvPluginContext,\n reflection: ReflectionClass<any>,\n name: EnvType = \"env\"\n) {\n const serialized = reflection.serializeType();\n\n const message = new capnp.Message();\n const root = message.initRoot(SerializedTypes);\n\n convertToCapnp(serialized, root._initTypes(serialized.length));\n\n await writeFileBuffer(\n getEnvTypeReflectionsPath(context, name),\n message.toArrayBuffer()\n );\n}\n\nexport function getEnvReflectionsPath(\n context: EnvPluginContext,\n name: EnvType\n): string {\n return joinPaths(getReflectionsPath(context), \"env\", `${name}.bin`);\n}\n\n/**\n * Reads the environment reflection data from the file system.\n *\n * @param context - The plugin context.\n * @returns The environment reflection data.\n */\nexport async function readEnvReflection(\n context: EnvPluginContext\n): Promise<ReflectionClass<any>> {\n const filePath = getEnvReflectionsPath(context, \"env\");\n if (!existsSync(filePath)) {\n if (!context.env.types.env) {\n context.env.types.env = await readEnvTypeReflection(context, \"env\");\n }\n\n if (!context.env.used.env || isEmptyObject(context.env.used.env)) {\n const reflection = createEnvReflection(context, {\n type: {\n kind: ReflectionKind.objectLiteral,\n typeName: \"Env\",\n description: `An object containing the environment configuration parameters that are used (at least once) by the ${\n context.config.name\n ? `${context.config.name} application`\n : \"application\"\n }.`,\n types: []\n },\n superReflection: context.env.types.env\n }) as Reflection;\n reflection.name = \"Env\";\n\n const message = new capnp.Message();\n reflection.messageRoot = message.initRoot(SerializedTypes);\n reflection.dataBuffer = message.toArrayBuffer();\n\n context.env.used.env = reflection;\n await writeEnvReflection(context, context.env.used.env, \"env\");\n }\n\n return context.env.used.env;\n }\n\n const buffer = await readFileBuffer(filePath);\n const message = new capnp.Message(buffer, false);\n const messageRoot = message.getRoot(SerializedTypes);\n\n const reflection = resolveClassType(\n deserializeType(convertFromCapnp(messageRoot.types))\n );\n\n context.env.used.env = reflection;\n context.env.used.env.messageRoot = messageRoot;\n context.env.used.env.dataBuffer = buffer;\n\n return reflection;\n}\n\n/**\n * Reads the secret environment reflection data from the file system.\n *\n * @param context - The plugin context.\n * @returns The environment reflection data.\n */\nexport async function readSecretsReflection(\n context: EnvPluginContext\n): Promise<ReflectionClass<any>> {\n const filePath = getEnvReflectionsPath(context, \"secrets\");\n if (!existsSync(filePath)) {\n if (!context.env.types.secrets) {\n context.env.types.secrets = await readEnvTypeReflection(\n context,\n \"secrets\"\n );\n }\n\n if (!context.env.used.secrets || isEmptyObject(context.env.used.secrets)) {\n const reflection = createEnvReflection(context, {\n type: {\n kind: ReflectionKind.objectLiteral,\n typeName: \"Secrets\",\n description: `An object containing the secret configuration parameters that are used (at least once) by the ${\n context.config.name\n ? `${context.config.name} application`\n : \"application\"\n }.`,\n types: []\n },\n superReflection: context.env.types.secrets\n }) as Reflection;\n reflection.name = \"Secrets\";\n\n const message = new capnp.Message();\n reflection.messageRoot = message.initRoot(SerializedTypes);\n reflection.dataBuffer = message.toArrayBuffer();\n\n context.env.used.secrets = reflection;\n await writeEnvReflection(context, context.env.used.secrets, \"secrets\");\n }\n\n return context.env.used.secrets;\n }\n\n const buffer = await readFileBuffer(filePath);\n const message = new capnp.Message(buffer, false);\n const messageRoot = message.getRoot(SerializedTypes);\n\n const reflection = resolveClassType(\n deserializeType(convertFromCapnp(messageRoot.types))\n );\n\n context.env.used.secrets = reflection;\n context.env.used.secrets.messageRoot = messageRoot;\n context.env.used.secrets.dataBuffer = buffer;\n\n return reflection;\n}\n\n/**\n * Writes the environment reflection data to the file system.\n *\n * @param context - The plugin context.\n * @param reflection - The reflection data to write.\n * @param name - The name of the reflection (either \"env\" or \"secrets\").\n */\nexport async function writeEnvReflection(\n context: EnvPluginContext,\n reflection: ReflectionClass<any>,\n name: EnvType = \"env\"\n) {\n const serialized = reflection.serializeType();\n\n const message = new capnp.Message();\n const root = message.initRoot(SerializedTypes);\n\n convertToCapnp(serialized, root._initTypes(serialized.length));\n\n await writeFileBuffer(\n getEnvReflectionsPath(context, name),\n message.toArrayBuffer()\n );\n}\n\n/**\n * Writes the environment reflection data to the file system.\n *\n * @param context - The plugin context.\n * @param reflection - The reflection data to write.\n * @param name - The name of the reflection (either \"env\" or \"secrets\").\n */\nexport function writeEnvReflectionSync(\n context: EnvPluginContext,\n reflection: ReflectionClass<any>,\n name: EnvType = \"env\"\n) {\n const serialized = reflection.serializeType();\n\n const message = new capnp.Message();\n const root = message.initRoot(SerializedTypes);\n\n convertToCapnp(serialized, root._initTypes(serialized.length));\n\n writeFileBufferSync(\n getEnvReflectionsPath(context, name),\n message.toArrayBuffer()\n );\n}\n","/* -------------------------------------------------------------------\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 { NodePath } from \"@babel/core\";\nimport * as t from \"@babel/types\";\nimport { convertFromCapnp } from \"@powerlines/deepkit/capnp\";\nimport { SerializedTypes as CapnpSerializedTypes } from \"@powerlines/deepkit/schemas/reflection\";\nimport { stringifyDefaultValue } from \"@powerlines/deepkit/utilities\";\nimport {\n deserializeType,\n ReflectionClass,\n ReflectionKind,\n resolveClassType\n} from \"@powerlines/deepkit/vendor/type\";\nimport { createBabelPlugin } from \"@powerlines/plugin-babel/helpers/create-plugin\";\nimport { addImport } from \"@powerlines/plugin-babel/helpers/module-helpers\";\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport * as capnp from \"@stryke/capnp\";\nimport { readFileBufferSync } from \"@stryke/fs/buffer\";\nimport { existsSync } from \"node:fs\";\nimport { BabelPluginPass } from \"powerlines/types/babel\";\nimport { getEnvReflectionsPath } from \"../helpers/persistence\";\nimport { EnvPluginContext } from \"../types/plugin\";\n\n/*\n * The Powerlines - Environment Configuration Babel Plugin\n *\n * @param babel - The Babel core module\n * @returns The Babel plugin object\n */\nexport const envBabelPlugin = createBabelPlugin<EnvPluginContext>(\n \"env\",\n ({ log, context }) => {\n function extractEnv(\n node: t.Identifier,\n pass: BabelPluginPass,\n isInjectable = false\n ) {\n const envTypesAliasProperties = context.env.types.env\n ?.getProperties()\n .filter(prop => prop.getAlias().length > 0);\n\n if (node.name) {\n const prefix = context.config.env.prefix.find(\n pre =>\n node.name &&\n node.name.startsWith(pre) &&\n (context.env.types.env?.hasProperty(\n node.name.replace(`${pre}_`, \"\")\n ) ||\n envTypesAliasProperties.some(prop =>\n prop.getAlias().includes(node.name.replace(`${pre}_`, \"\"))\n ))\n );\n\n let name = node.name;\n if (prefix) {\n name = node.name.replace(`${prefix}_`, \"\");\n }\n\n log(\n LogLevelLabel.TRACE,\n `Environment variable ${name} found in ${\n pass.filename || \"unknown file\"\n }.`\n );\n\n if (\n context.env.types.env?.hasProperty(name) ||\n envTypesAliasProperties.some(prop => prop.getAlias().includes(name))\n ) {\n const envProperty = context.env.types.env.hasProperty(name)\n ? context.env.types.env.getProperty(name)\n : envTypesAliasProperties.find(prop =>\n prop.getAlias().includes(name)\n );\n if (!envProperty || envProperty.isIgnored()) {\n return;\n }\n\n if (!context.env.used.env.hasProperty(name)) {\n context.env.used.env.addProperty(envProperty.property);\n }\n\n if (context.config.env.inject && isInjectable) {\n let value = context.env.parsed?.[name];\n if (value === undefined) {\n const prefix = context.config.env.prefix.find(pre => {\n return context.env.parsed[`${pre.replace(/_$/g, \"\")}_${name}`];\n });\n if (prefix) {\n value =\n context.env.parsed[`${prefix.replace(/_$/g, \"\")}_${name}`];\n }\n }\n\n value ??= envProperty.getDefaultValue();\n\n if (envProperty.isValueRequired() && value === undefined) {\n throw new Error(\n `Environment variable \\`${name}\\` is not defined in the .env configuration files`\n );\n }\n\n return stringifyDefaultValue(envProperty, value);\n }\n } else {\n throw new Error(\n `The \"${name}\" environment variable is not defined in the \\`env\\` type definition, but is used in the source code file ${\n pass.filename ? pass.filename : \"unknown\"\n }.\n\n The following environment configuration names are defined in the \\`env\\` type definition: \\n${context.env.types.env\n ?.getPropertyNames()\n .sort((a, b) => String(a).localeCompare(String(b)))\n .map(\n typeDef =>\n ` - ${String(typeDef)} ${\n envTypesAliasProperties.some(\n prop =>\n prop.getNameAsString() === String(typeDef) &&\n prop.getAlias().length > 0\n )\n ? `(Alias: ${envTypesAliasProperties\n ?.find(\n prop => prop.getNameAsString() === String(typeDef)\n )\n ?.getAlias()\n .join(\", \")})`\n : \"\"\n }`\n )\n .join(\n \"\\n\"\n )} \\n\\nUsing the following env prefix: \\n${context.config.env.prefix\n .map(prefix => ` - ${prefix}`)\n .join(\n \"\\n\"\n )} \\n\\nPlease check your \\`env\\` configuration option. If you are using a custom dotenv type definition, please make sure that the configuration names match the ones in the code. \\n\\n`\n );\n }\n }\n\n return undefined;\n }\n\n return {\n visitor: {\n MemberExpression(\n path: NodePath<t.MemberExpression>,\n pass: BabelPluginPass\n ) {\n if (\n path\n .get(\"object\")\n ?.get(\"property\")\n ?.isIdentifier({ name: \"env\" }) &&\n path\n .get(\"object\")\n ?.get(\"object\")\n ?.isIdentifier({ name: \"$storm\" }) &&\n path.get(\"property\")?.isIdentifier()\n ) {\n // $storm.env.CONFIG_NAME\n\n const identifier = path.get(\"property\")?.node as t.Identifier;\n extractEnv(identifier, pass, false);\n\n path.replaceWithSourceString(`env.${identifier.name}`);\n addImport(path, {\n module: \"storm:env\",\n name: \"env\",\n imported: \"env\"\n });\n } else if (\n path\n .get(\"object\")\n ?.get(\"property\")\n ?.isIdentifier({ name: \"env\" }) &&\n path\n .get(\"object\")\n ?.get(\"object\")\n ?.isCallExpression({\n callee: { name: \"useStorm\", type: \"Identifier\" }\n }) &&\n path.get(\"property\")?.isIdentifier()\n ) {\n // useStorm().env.CONFIG_NAME\n\n const identifier = path.get(\"property\")?.node as t.Identifier;\n extractEnv(identifier, pass, false);\n\n path.replaceWithSourceString(`env.${identifier.name}`);\n addImport(path, {\n module: \"storm:env\",\n name: \"env\",\n imported: \"env\"\n });\n } else if (\n path\n .get(\"object\")\n ?.get(\"property\")\n ?.isIdentifier({ name: \"env\" }) &&\n path\n .get(\"object\")\n ?.get(\"object\")\n ?.isIdentifier({ name: \"process\" }) &&\n path.get(\"property\")?.isIdentifier()\n ) {\n // process.env.CONFIG_NAME\n\n const identifier = path.get(\"property\")?.node as t.Identifier;\n if (!identifier.name) {\n return;\n }\n\n extractEnv(identifier, pass, false);\n\n path.replaceWithSourceString(`env.${identifier.name}`);\n addImport(path, {\n module: \"storm:env\",\n name: \"env\",\n imported: \"env\"\n });\n } else if (\n path\n .get(\"object\")\n ?.get(\"property\")\n ?.isIdentifier({ name: \"env\" }) &&\n path.get(\"object\")?.get(\"object\")?.isMetaProperty() &&\n path.get(\"property\")?.isIdentifier()\n ) {\n // import.meta.env.CONFIG_NAME\n\n const identifier = path.get(\"property\")?.node as t.Identifier;\n if (!identifier.name) {\n return;\n }\n\n extractEnv(identifier, pass, false);\n\n path.replaceWithSourceString(`env.${identifier.name}`);\n addImport(path, {\n module: \"storm:env\",\n name: \"env\",\n imported: \"env\"\n });\n }\n }\n },\n post(this: BabelPluginPass) {\n log(\n LogLevelLabel.TRACE,\n `Adding environment variables from ${\n this.filename || \"unknown file\"\n } to env.json.`\n );\n\n let persistedEnv = ReflectionClass.from({\n kind: ReflectionKind.objectLiteral,\n description: `An object containing the environment variables used by the application.`,\n types: []\n });\n\n const reflectionPath = getEnvReflectionsPath(context, \"env\");\n if (reflectionPath && existsSync(reflectionPath)) {\n log(\n LogLevelLabel.TRACE,\n `Environment reflection file found at ${\n reflectionPath\n }, reading existing reflection.`\n );\n\n persistedEnv = resolveClassType(\n deserializeType(\n convertFromCapnp(\n new capnp.Message(\n readFileBufferSync(reflectionPath),\n false\n ).getRoot(CapnpSerializedTypes).types\n )\n )\n );\n }\n\n log(\n LogLevelLabel.TRACE,\n `Adding new variables to env reflection at ${reflectionPath}.`\n );\n\n persistedEnv\n .getProperties()\n .filter(\n property =>\n property.getNameAsString() &&\n !context.env.used.env.hasProperty(property.getNameAsString())\n )\n .forEach(property => {\n context.env.used.env.addProperty({\n ...property,\n name: property.getNameAsString(),\n description:\n property.getDescription() ??\n `The ${property.getNameAsString()} variable.`,\n default: property.getDefaultValue(),\n optional: property.isOptional() ? true : undefined,\n readonly: property.isReadonly() ? true : undefined,\n visibility: property.getVisibility(),\n type: property.getType(),\n tags: property.getTags()\n } as Parameters<typeof persistedEnv.addProperty>[0]);\n });\n }\n };\n }\n);\n","/* -------------------------------------------------------------------\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 { Refkey, refkey as refkeyExternal } from \"@alloy-js/core\";\n\n/**\n * Create a refkey for the provided arguments. Passing no arguments returns a fresh refkey that is guaranteed to be unique. Otherwise, the arguments passed will be used to create a refkey for those values. Providing the same arguments will always return the same refkey.\n *\n * @remarks\n * Values are compared using the SameValueZero algorithm, which considers objects the same if they are reference identical, and primitives the same if they are the same value, with the exception of `NaN`, which is always considered equal to other `NaN` values, and `-0`, which is considered identical to `+0`\n */\nexport function refkey(...args: unknown[]): Refkey {\n return refkeyExternal(\"powerlines\", ...args);\n}\n","/* -------------------------------------------------------------------\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 For,\n List,\n Prose,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport { JSDocExampleProps, ParameterDescriptor } from \"@alloy-js/typescript\";\nimport { stringifyDefaultValue } from \"@powerlines/deepkit/utilities\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport { usePowerlines } 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)}>\n {heading}\n <hbr />\n <Show\n when={\n !isUndefined(children) && childrenArray(() => children).length > 0\n }>\n <hbr />\n </Show>\n </Show>\n <Show\n when={\n !isUndefined(children) && childrenArray(() => children).length > 0\n }>\n <List>{childrenArray(() => children)}</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 <hbr />\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\nexport interface TSDocDefaultValueProps extends ComponentProps {\n value: any;\n}\n\n/**\n * Create a TSDoc `@defaultValue` tag.\n */\nexport function TSDocDefaultValue(props: TSDocDefaultValueProps) {\n return (\n <>\n {\"@defaultValue \"}\n <Show when={!isUndefined(props.value)}>\n <align width={2}>\n <Prose>{stringifyDefaultValue(props.value)}</Prose>\n </align>\n </Show>\n <hbr />\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={true}>{childrenArray(() => props.children)}</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\nexport interface TSDocAttributesTagsProps {\n title?: string;\n alias?: string[];\n permission?: string[];\n domain?: string;\n readonly?: boolean;\n internal?: boolean;\n ignore?: boolean;\n hidden?: boolean;\n defaultValue?: any;\n}\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function TSDocAttributesTags(props: TSDocAttributesTagsProps) {\n const [\n {\n title,\n alias,\n permission,\n domain,\n readonly,\n internal,\n ignore,\n hidden,\n defaultValue\n }\n ] = splitProps(props, [\n \"title\",\n \"alias\",\n \"permission\",\n \"domain\",\n \"readonly\",\n \"internal\",\n \"ignore\",\n \"hidden\",\n \"defaultValue\"\n ]);\n\n return (\n <>\n <Show when={isSetString(title)}>\n <TSDocTitle>{title}</TSDocTitle>\n </Show>\n <Show when={!isUndefined(alias) && alias.length > 0}>\n <For each={alias ?? []}>\n {alias => <TSDocAlias>{alias}</TSDocAlias>}\n </For>\n </Show>\n <Show when={isSetString(domain)}>\n <TSDocDomain>{domain}</TSDocDomain>\n </Show>\n <Show when={!isUndefined(permission) && permission.length > 0}>\n <For each={permission ?? []}>\n {permission => <TSDocPermission>{permission}</TSDocPermission>}\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={!isUndefined(defaultValue)}>\n <TSDocDefaultValue value={defaultValue} />\n </Show>\n </>\n );\n}\n\nexport interface TSDocParamProps {\n name: Children;\n children?: Children;\n optional?: boolean;\n defaultValue?: 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 defaultValue={props.defaultValue}\n />\n <TSDocParamDescription children={props.children} />\n </>\n );\n}\n\ninterface TSDocParamNameProps {\n name: Children;\n optional?: boolean;\n defaultValue?: Children;\n}\n\nfunction TSDocParamName(props: TSDocParamNameProps) {\n return (\n <>\n <Show when={props.optional}>{\"[\"}</Show>\n {props.name}\n <Show when={Boolean(props.defaultValue)}>={props.defaultValue}</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 * @defaultValue \"storm\"\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 \"storm: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 = usePowerlines();\n\n return (\n <>\n /**\n <align string=\" * \">\n <hbr />\n <Show when={Boolean(children)}>\n <List hardline={true}>{childrenArray(() => children)}</List>\n <hbr />\n <hbr />\n </Show>\n {\"@module \"}\n {prefix || context?.config.output.builtinPrefix}:{name}\n </align>\n <hbr />\n {` */`}\n </>\n );\n}\n","/* -------------------------------------------------------------------\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 { Prose } from \"@alloy-js/core\";\nimport { ComponentProps } from \"../../types/components\";\n\nexport type SingleLineCommentVariant =\n | \"double-slash\"\n | \"triple-slash\"\n | \"slash-star\"\n | \"slash-star-star\"\n | \"markdown\";\n\nexport interface SingleLineCommentProps extends ComponentProps {\n /**\n * The variant of the single line comment.\n *\n * @defaultValue \"double-slash\"\n */\n variant?: SingleLineCommentVariant;\n}\n\n/**\n * A single line comment block. The children are rendered as a prose element, which means that they\n * are broken into multiple lines\n */\nexport function SingleLineComment(props: SingleLineCommentProps) {\n const { variant = \"double-slash\", children } = props;\n\n const commentStart =\n variant === \"slash-star\"\n ? \"/* \"\n : variant === \"slash-star-star\"\n ? \"/** \"\n : variant === \"triple-slash\"\n ? \"/// \"\n : variant === \"markdown\"\n ? \"<!-- \"\n : \"// \";\n\n return (\n <>\n {commentStart}\n <align string={commentStart}>\n <Prose>{children}</Prose>\n\n {variant === \"slash-star\" || variant === \"slash-star-star\"\n ? \" */ \"\n : variant === \"markdown\"\n ? \" -->\"\n : \"\"}\n </align>\n </>\n );\n}\n","/* -------------------------------------------------------------------\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 getContext,\n Show,\n SourceDirectoryContext,\n SourceFileContext,\n SourceFileProps as SourceFilePropsExternal,\n splitProps,\n useContext,\n useFormatOptions\n} from \"@alloy-js/core\";\nimport { appendPath } from \"@stryke/path/append\";\nimport defu from \"defu\";\nimport type { StoragePreset } from \"powerlines/types/fs\";\nimport { ComponentProps } from \"../../types/components\";\n\nexport type SourceFileProps = SourceFilePropsExternal &\n ComponentProps & {\n /**\n * If true, indicates that the file is virtual and should not be written to disk.\n *\n * @defaultValue false\n */\n preset?: StoragePreset;\n\n /**\n * The metadata associated with the source file.\n *\n * @remarks\n * The values stored in the metadata will be available in the rendering context.\n */\n meta?: Record<string, any>;\n };\n\n/**\n * A base component representing a Powerlines generated source file.\n *\n * @param props - The properties for the source file.\n * @returns The rendered source file component.\n */\nexport function SourceFile(props: SourceFileProps) {\n const [{ children, meta, path, header, preset, filetype, reference }] =\n splitProps(props, [\n \"children\",\n \"meta\",\n \"path\",\n \"header\",\n \"preset\",\n \"filetype\",\n \"reference\"\n ]);\n\n const parentDirectory = useContext(SourceDirectoryContext)!;\n\n const context: SourceFileContext = {\n path: appendPath(path, parentDirectory.path),\n filetype,\n reference\n };\n parentDirectory?.addContent(context);\n\n const printOptions = useFormatOptions({\n printWidth: props.printWidth,\n tabWidth: props.tabWidth,\n useTabs: props.useTabs,\n insertFinalNewLine: props.insertFinalNewLine\n });\n\n const nodeContext = getContext()!;\n nodeContext.meta = defu(\n {\n sourceFile: context,\n printOptions,\n output: {\n preset\n }\n },\n meta ?? {}\n );\n\n return (\n <SourceFileContext.Provider value={context}>\n <Show when={header !== undefined}>\n {header}\n <hbr />\n </Show>\n {children}\n </SourceFileContext.Provider>\n );\n}\n","/* -------------------------------------------------------------------\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 type { Children } from \"@alloy-js/core\";\nimport {\n code,\n Scope,\n Show,\n SourceDirectoryContext,\n splitProps,\n useContext,\n useScope\n} from \"@alloy-js/core\";\nimport {\n getSourceDirectoryData,\n ImportStatements,\n PackageContext,\n SourceFileContext,\n TSModuleScope,\n useSourceFile\n} from \"@alloy-js/typescript\";\nimport { appendPath } from \"@stryke/path/append\";\nimport { isBoolean } from \"@stryke/type-checks/is-boolean\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { SingleLineComment } from \"../../core/components/single-line-comment\";\nimport { SourceFile, SourceFileProps } from \"../../core/components/source-file\";\nimport {\n ComponentProps,\n SourceFileHeaderProps,\n TypescriptFileImportItem,\n TypescriptFileImports\n} from \"../../types/components\";\n\nexport type TypescriptFileProps = Omit<SourceFileProps, \"filetype\"> &\n ComponentProps & {\n header?: Children;\n imports?: TypescriptFileImports;\n export?: boolean | string;\n tsx?: boolean;\n };\n\n/**\n * A base component representing a Powerlines generated Typescript source file.\n *\n * @param props - The properties for the source file.\n * @returns The rendered source file component.\n */\nexport function TypescriptFile(props: TypescriptFileProps) {\n const [{ children, path, imports, tsx, header }, rest] = splitProps(props, [\n \"children\",\n \"path\",\n \"imports\",\n \"tsx\",\n \"header\"\n ]);\n\n const directoryContext = useContext(SourceDirectoryContext)!;\n const sdData = getSourceDirectoryData(directoryContext);\n\n const modulePath = appendPath(path, directoryContext.path);\n const scope = new TSModuleScope(modulePath, useScope());\n sdData.modules.add(scope);\n\n const pkg = useContext(PackageContext);\n if (pkg) {\n pkg.scope.addModule(scope);\n }\n\n if (props.export) {\n if (pkg) {\n if (isBoolean(props.export)) {\n pkg.scope.addExport(modulePath, scope);\n } else {\n pkg.scope.addExport(props.export, scope);\n }\n }\n }\n\n return (\n <SourceFileContext.Provider\n value={{\n scope\n }}>\n <Scope value={scope}>\n <SourceFile\n {...rest}\n path={modulePath}\n header={\n header ?? (\n <TypescriptFileHeader>\n <TypescriptFileHeaderImports imports={imports} scope={scope} />\n </TypescriptFileHeader>\n )\n }\n filetype={tsx ? \"tsx\" : \"typescript\"}>\n {children}\n </SourceFile>\n </Scope>\n </SourceFileContext.Provider>\n );\n}\n\nexport interface TypescriptFileHeaderProps extends SourceFileHeaderProps {\n header?: Children;\n}\n\n/**\n * Renders the header for a Powerlines Typescript source file.\n *\n * @param props - The properties for the source file header.\n * @returns The rendered source file header.\n */\nexport function TypescriptFileHeader(props: TypescriptFileHeaderProps) {\n const {\n header,\n disableEslint = true,\n disableBiome = true,\n disablePrettier = false,\n children\n } = props;\n\n return (\n <>\n <Show when={Boolean(header)}>\n {header}\n <hbr />\n </Show>\n <hbr />\n <Show when={Boolean(disableEslint)}>\n <SingleLineComment variant=\"slash-star\">\n {\"eslint-disable\"}\n </SingleLineComment>\n <hbr />\n </Show>\n <Show when={Boolean(disablePrettier)}>\n <SingleLineComment variant=\"slash-star\">\n {\"prettier-ignore\"}\n </SingleLineComment>\n <hbr />\n </Show>\n <Show when={Boolean(disableBiome)}>\n <SingleLineComment>{\"biome-ignore lint: disable\"}</SingleLineComment>\n <hbr />\n </Show>\n <Show\n when={\n Boolean(disableEslint) ||\n Boolean(disablePrettier) ||\n Boolean(disableBiome)\n }>\n <hbr />\n </Show>\n <Show when={Boolean(children)}>\n <>\n {children}\n <hbr />\n </>\n </Show>\n <SingleLineComment>{code`Generated by Powerlines`}</SingleLineComment>\n <hbr />\n <SingleLineComment>\n {code`NOTE: Do not edit this file manually - it will be overwritten automatically by the \"storm prepare\" command`}\n </SingleLineComment>\n <hbr />\n </>\n );\n}\n\nexport interface TypescriptFileHeaderImportsProps\n extends SourceFileHeaderProps {\n imports?: TypescriptFileImports;\n scope?: TSModuleScope;\n}\n\n/**\n * Renders the header for a Powerlines Typescript source file.\n *\n * @param props - The properties for the source file header.\n * @returns The rendered source file header.\n */\nexport function TypescriptFileHeaderImports(\n props: TypescriptFileHeaderImportsProps\n) {\n const { imports } = props;\n\n const sourceFile = useSourceFile();\n const scope = props.scope ?? sourceFile.scope;\n\n return (\n <Show\n when={\n scope.importedModules.size > 0 ||\n (!!imports && Object.keys(imports).length > 0)\n }>\n <Show when={!!imports && Object.keys(imports).length > 0}>\n {Object.entries(imports ?? {}).map(([module, imported]) => {\n return code`import ${\n imported === null\n ? \"\"\n : (\n imported.filter(\n i => !isString(i) && i.default\n ) as TypescriptFileImportItem[]\n )\n .map(i => (i.alias ? i.alias : i.name))\n .join(\", \") +\n (imported.filter(i => !isString(i) && i.default).length > 0 &&\n imported.filter(i => isString(i) || !i.default).length > 0\n ? \", \"\n : \"\") +\n (imported.filter(i => isString(i) || !i.default).length > 0\n ? `{ ${imported\n .map(i =>\n isString(i)\n ? i\n : i.alias\n ? `${i.name} as ${i.alias}`\n : i.name\n )\n .join(\", \")} }`\n : \"\")\n } from \"${module}\";`;\n })}\n </Show>\n <Show when={scope.importedModules.size > 0}>\n <ImportStatements records={scope.importedModules} />\n </Show>\n <hbr />\n </Show>\n );\n}\n","/* -------------------------------------------------------------------\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 { splitProps } from \"@alloy-js/core\";\nimport type { TSDocModuleProps } from \"./tsdoc\";\nimport { TSDocModule } from \"./tsdoc\";\nimport {\n TypescriptFile,\n TypescriptFileHeader,\n TypescriptFileHeaderImports,\n TypescriptFileProps\n} from \"./typescript-file\";\n\nexport type BuiltinFileProps = Omit<TypescriptFileProps, \"path\"> &\n Omit<TSDocModuleProps, \"name\"> & {\n /**\n * The runtime module identifier.\n *\n * @remarks\n * This value will be included after the \\`storm:\\` prefix in the import statement.\n */\n id: string;\n\n /**\n * The description for the builtin module.\n */\n description?: string;\n\n /**\n * Whether the file is a TSX file.\n *\n * @defaultValue false\n */\n tsx?: boolean;\n };\n\n/**\n * A base component representing a Powerlines generated Typescript source file.\n *\n * @param props - The properties for the source file.\n * @returns The rendered source file component.\n */\nexport function BuiltinFile(props: BuiltinFileProps) {\n const [{ children, imports, id, description, tsx }, rest] = splitProps(\n props,\n [\"children\", \"imports\", \"id\", \"description\", \"tsx\"]\n );\n\n return (\n <TypescriptFile\n header={\n <TypescriptFileHeader\n header={<TSDocModule name={id}>{description}</TSDocModule>}>\n <TypescriptFileHeaderImports imports={imports} />\n </TypescriptFileHeader>\n }\n meta={{\n builtin: {\n id\n }\n }}\n {...rest}\n path={`${id}${tsx ? \".tsx\" : \".ts\"}`}>\n {children}\n </TypescriptFile>\n );\n}\n","/* -------------------------------------------------------------------\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 type { ComponentContext } from \"@alloy-js/core\";\nimport { createContext, createNamedContext, useContext } from \"@alloy-js/core\";\nimport {\n ReflectionClass,\n ReflectionMethod,\n ReflectionParameter,\n ReflectionProperty\n} from \"@powerlines/deepkit/vendor/type\";\nimport { ReflectionOverrideInterface } from \"../../types/components\";\n\nexport interface ReflectionClassContextInterface<\n T extends Record<string, any> = Record<string, any>\n> {\n reflection: ReflectionClass<T>;\n override?: ReflectionOverrideInterface<T>;\n}\n\n/**\n * The reflection class context used in template rendering.\n */\nexport const ReflectionClassContext: ComponentContext<\n ReflectionClassContextInterface<any>\n> = createContext<ReflectionClassContextInterface<any>>();\n\n/**\n * Hook to access the Reflection context.\n *\n * @returns A reactive version of the current reflection.\n */\nexport function useReflectionClass<\n T extends Record<string, any> = Record<string, any>\n>() {\n const context = useContext<ReflectionClassContextInterface<T>>(\n ReflectionClassContext\n )!;\n\n if (!context) {\n throw new Error(\n \"Powerlines - ReflectionClass Context is not set. Make sure this component is wrapped in a `Output` component or being rendered by the `RenderPlugin` from `@powerlines/devkit`.\"\n );\n }\n\n return context;\n}\n\n/**\n * The reflection property context used in template rendering.\n */\nexport const ReflectionPropertyContext: ComponentContext<ReflectionProperty> =\n createNamedContext<ReflectionProperty>(\"reflection-property\");\n\n/**\n * Hook to access the Reflection Property context.\n *\n * @returns A reactive version of the current reflection.\n */\nexport function useReflectionProperty() {\n const context = useContext<ReflectionProperty>(ReflectionPropertyContext)!;\n\n if (!context) {\n throw new Error(\n \"Powerlines - Reflection Property Context is not set. Make sure this component is wrapped in a `Output` component or being rendered by the `RenderPlugin` from `@powerlines/devkit`.\"\n );\n }\n\n return context;\n}\n\n/**\n * The reflection method context used in template rendering.\n */\nexport const ReflectionMethodContext: ComponentContext<ReflectionMethod> =\n createNamedContext<ReflectionMethod>(\"reflection-method\");\n\n/**\n * Hook to access the Reflection Method context.\n *\n * @returns A reactive version of the current reflection.\n */\nexport function useReflectionMethod() {\n const context = useContext<ReflectionMethod>(ReflectionMethodContext)!;\n\n if (!context) {\n throw new Error(\n \"Powerlines - Reflection Method Context is not set. Make sure this component is wrapped in a `Output` component or being rendered by the `RenderPlugin` from `@powerlines/devkit`.\"\n );\n }\n\n return context;\n}\n\n/**\n * The reflection parameter context used in template rendering.\n */\nexport const ReflectionParameterContext: ComponentContext<ReflectionParameter> =\n createNamedContext<ReflectionParameter>(\"reflection-parameter\");\n\n/**\n * Hook to access the Reflection Parameter context.\n *\n * @returns A reactive version of the current reflection.\n */\nexport function useReflectionParameter() {\n return useContext<ReflectionParameter>(ReflectionParameterContext)!;\n}\n","/* -------------------------------------------------------------------\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 childrenArray,\n code,\n computed,\n List,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport {\n useReflectionClass,\n useReflectionMethod,\n useReflectionProperty\n} from \"../../core/contexts/reflection\";\nimport { TSDoc, TSDocAttributesTags, TSDocProps } from \"./tsdoc\";\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function TSDocReflectionClass<\n T extends Record<string, any> = Record<string, any>\n>(props: TSDocProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n const reflectionClass = useReflectionClass<T>();\n\n const title = computed(\n () =>\n reflectionClass.reflection.getTitle() ||\n titleCase(reflectionClass.reflection.getName())\n );\n const alias = computed(() => reflectionClass.reflection.getAlias());\n const domain = computed(() => reflectionClass.reflection.getDomain());\n const permission = computed(() => reflectionClass.reflection.getPermission());\n const readonly = computed(() => reflectionClass.reflection.isReadonly());\n const internal = computed(() => reflectionClass.reflection.isInternal());\n const ignore = computed(() => reflectionClass.reflection.isIgnored());\n const hidden = computed(() => reflectionClass.reflection.isHidden());\n\n if (!reflectionClass.reflection.getName()) {\n return null;\n }\n\n return (\n <TSDoc {...rest} heading={reflectionClass.reflection.getDescription()}>\n <Show\n when={\n isSetString(title.value) ||\n (!isUndefined(alias.value) && alias.value.length > 0) ||\n (!isUndefined(permission.value) && permission.value.length > 0) ||\n isSetString(domain.value) ||\n !isUndefined(readonly.value) ||\n !isUndefined(internal.value) ||\n !isUndefined(ignore.value) ||\n !isUndefined(hidden.value)\n }>\n <TSDocAttributesTags\n title={title.value}\n alias={alias.value}\n domain={domain.value}\n permission={permission.value}\n readonly={readonly.value}\n internal={internal.value}\n ignore={ignore.value}\n hidden={hidden.value}\n />\n </Show>\n <Show\n when={Boolean(children) && childrenArray(() => children).length > 0}>\n <List>{childrenArray(() => children)}</List>\n </Show>\n </TSDoc>\n );\n}\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function TSDocReflectionProperty(props: TSDocProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n const context = useReflectionProperty();\n\n return (\n <TSDoc heading={context.getDescription()} {...rest}>\n <TSDocAttributesTags\n title={context.getTitle()}\n alias={context.getAlias()}\n domain={context.getDomain()}\n permission={context.getPermission()}\n readonly={context.isReadonly()}\n internal={context.isInternal()}\n ignore={context.isIgnored()}\n hidden={context.isHidden()}\n />\n <Show\n when={Boolean(children) && childrenArray(() => children).length > 0}>\n <List>{childrenArray(() => children)}</List>\n </Show>\n </TSDoc>\n );\n}\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function TSDocReflectionMethod(props: TSDocProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n const context = useReflectionMethod();\n\n return (\n <TSDoc\n heading={\n context.getDescription() ||\n (isString(context.getName())\n ? code`${String(context.getName())} method definition`\n : undefined)\n }\n {...rest}>\n <TSDocAttributesTags\n title={context.getTitle()}\n alias={context.getAlias()}\n domain={context.getDomain()}\n permission={context.getPermission()}\n readonly={context.isReadonly()}\n internal={context.isInternal()}\n ignore={context.isIgnored()}\n hidden={context.isHidden()}\n />\n <Show\n when={Boolean(children) && childrenArray(() => children).length > 0}>\n <List>{childrenArray(() => children)}</List>\n </Show>\n </TSDoc>\n );\n}\n","/* -------------------------------------------------------------------\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 { computed, For, splitProps } from \"@alloy-js/core\";\nimport {\n InterfaceDeclaration,\n InterfaceDeclarationProps,\n InterfaceMember,\n InterfaceMemberProps\n} from \"@alloy-js/typescript\";\nimport {\n ReflectionClass,\n ReflectionProperty,\n stringifyType\n} from \"@powerlines/deepkit/vendor/type\";\nimport { pascalCase } from \"@stryke/string-format/pascal-case\";\nimport {\n ReflectionClassContext,\n ReflectionPropertyContext\n} from \"../../core/contexts/reflection\";\nimport { ComponentProps } from \"../../types/components\";\nimport {\n TSDocReflectionClass,\n TSDocReflectionProperty\n} from \"./tsdoc-reflection\";\n\nexport interface TypeScriptInterfaceProps<\n T extends Record<string, any> = Record<string, any>\n> extends InterfaceDeclarationProps,\n ComponentProps {\n reflection: ReflectionClass<T>;\n defaultValue?: Partial<T>;\n}\n\nexport interface TypescriptInterfacePropertyProps\n extends Omit<InterfaceMemberProps, \"name\">,\n ComponentProps {\n property: ReflectionProperty;\n}\n\n/**\n * Generates a TypeScript interface for the given reflection class.\n */\nexport function TypeScriptInterface<\n T extends Record<string, any> = Record<string, any>\n>(props: TypeScriptInterfaceProps<T>) {\n const [{ name, reflection }, rest] = splitProps(props, [\n \"name\",\n \"reflection\"\n ]);\n\n const interfaceName = computed(() =>\n pascalCase(name || reflection.getName())\n );\n\n const properties = reflection\n .getProperties()\n .filter(item => !item.isIgnored())\n .sort((a, b) =>\n (a.isReadonly() && b.isReadonly()) || (!a.isReadonly() && !b.isReadonly())\n ? a.getNameAsString().localeCompare(b.getNameAsString())\n : a.isReadonly()\n ? 1\n : -1\n );\n\n return (\n <ReflectionClassContext.Provider\n value={{\n reflection\n }}>\n <TSDocReflectionClass />\n <InterfaceDeclaration export={true} name={interfaceName.value} {...rest}>\n <For each={properties} doubleHardline={true} semicolon={true}>\n {prop => <TypescriptInterfaceProperty property={prop} />}\n </For>\n </InterfaceDeclaration>\n </ReflectionClassContext.Provider>\n );\n}\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function TypescriptInterfaceProperty(\n props: TypescriptInterfacePropertyProps\n) {\n const [{ property }, rest] = splitProps(props, [\"property\"]);\n\n return (\n <ReflectionPropertyContext.Provider value={property}>\n <TSDocReflectionProperty />\n <InterfaceMember\n name={property.getNameAsString()}\n readonly={property.isReadonly()}\n optional={property.isOptional()}\n nullish={property.isNullable()}\n type={stringifyType(property.getType())}\n {...rest}\n />\n </ReflectionPropertyContext.Provider>\n );\n}\n","/* -------------------------------------------------------------------\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 computed,\n Declaration as CoreDeclaration,\n createSymbolSlot,\n For,\n Name,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport {\n createValueSymbol,\n ObjectExpression,\n ObjectProperty,\n TSSymbolFlags,\n TypeRefContext,\n useTSNamePolicy,\n VarDeclarationProps\n} from \"@alloy-js/typescript\";\nimport { stringifyDefaultValue } from \"@powerlines/deepkit/utilities\";\nimport {\n ReflectionClass,\n ReflectionProperty\n} from \"@powerlines/deepkit/vendor/type\";\nimport { camelCase } from \"@stryke/string-format/camel-case\";\nimport { pascalCase } from \"@stryke/string-format/pascal-case\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport { ComputedRef } from \"@vue/reactivity\";\nimport {\n ReflectionClassContext,\n ReflectionPropertyContext\n} from \"../../core/contexts/reflection\";\nimport { ComponentProps } from \"../../types/components\";\nimport {\n TSDocReflectionClass,\n TSDocReflectionProperty\n} from \"./tsdoc-reflection\";\n\nexport interface TypescriptObjectProps<\n T extends Record<string, any> = Record<string, any>\n> extends VarDeclarationProps {\n reflection?: ComputedRef<ReflectionClass<T>>;\n defaultValue?: ComputedRef<Partial<T> | undefined>;\n}\n\nexport interface TypescriptObjectPropertyProps extends ComponentProps {\n property: ReflectionProperty;\n}\n\n/**\n * Generates a TypeScript object for the given reflection class.\n */\nexport function TypescriptObject<\n T extends Record<string, any> = Record<string, any>\n>(props: TypescriptObjectProps<T>) {\n if (!props.reflection?.value) {\n return null;\n }\n\n const objectName = computed(() =>\n camelCase(props.name || props.reflection!.value.getName())\n );\n const objectType = computed(\n () => props.type || pascalCase(props.reflection!.value.getName())\n );\n const properties = computed(() =>\n props\n .reflection!.value.getProperties()\n .filter(\n item =>\n !item.isIgnored() &&\n !isUndefined(\n props.defaultValue?.value?.[item.getNameAsString()] ??\n item.getAlias().reduce((ret, alias) => {\n if (\n isUndefined(ret) &&\n !isUndefined(\n (props.defaultValue as Record<string, any>)?.value?.[alias]\n )\n ) {\n return (props.defaultValue as Record<string, any>)?.value?.[\n alias\n ];\n }\n\n return ret;\n }, undefined) ??\n item.getDefaultValue()\n )\n )\n .sort((a, b) =>\n (a.isReadonly() && b.isReadonly()) ||\n (!a.isReadonly() && !b.isReadonly())\n ? a.getNameAsString().localeCompare(b.getNameAsString())\n : a.isReadonly()\n ? 1\n : -1\n )\n );\n\n const TypeSymbolSlot = createSymbolSlot();\n const ValueTypeSymbolSlot = createSymbolSlot();\n const sym = createValueSymbol(props.name, {\n refkeys: props.refkey,\n default: props.default,\n export: props.export,\n metadata: props.metadata,\n tsFlags: props.nullish ? TSSymbolFlags.Nullish : TSSymbolFlags.None,\n type: props.type ? TypeSymbolSlot.firstSymbol : undefined,\n namePolicy: useTSNamePolicy().for(\"variable\")\n });\n\n if (!props.type) {\n ValueTypeSymbolSlot.moveMembersTo(sym);\n }\n\n const keyword = props.var ? \"var\" : props.let ? \"let\" : \"const\";\n const type = props.type ? (\n <TypeRefContext>\n : <TypeSymbolSlot>{props.type}</TypeSymbolSlot>\n </TypeRefContext>\n ) : undefined;\n\n return (\n <Show when={!!props.reflection.value}>\n <ReflectionClassContext.Provider\n value={{\n reflection: props.reflection.value as ReflectionClass<any>,\n override: {\n name: objectName.value,\n type: objectType.value,\n defaultValue: props.defaultValue?.value\n }\n }}>\n <Show when={!!objectName.value && !!objectType.value}>\n <TSDocReflectionClass />\n <CoreDeclaration symbol={sym}>\n {props.export ? \"export \" : \"\"}\n {props.default ? \"default \" : \"\"}\n {keyword} <Name />\n {type} ={\" \"}\n <ValueTypeSymbolSlot>\n {props.initializer ?? props.children ?? (\n <ObjectExpression>\n <For\n each={properties.value ?? []}\n comma={true}\n doubleHardline={true}>\n {prop => <TypescriptObjectProperty property={prop} />}\n </For>\n </ObjectExpression>\n )}\n </ValueTypeSymbolSlot>\n </CoreDeclaration>\n </Show>\n <hbr />\n </ReflectionClassContext.Provider>\n </Show>\n );\n}\n\n/**\n * Generates a TypeScript object property for the given reflection class.\n */\nexport function TypescriptObjectProperty(props: TypescriptObjectPropertyProps) {\n const [{ property }] = splitProps(props, [\"property\"]);\n\n return (\n <ReflectionPropertyContext.Provider value={property}>\n <TSDocReflectionProperty />\n <ObjectProperty\n name={property.getNameAsString()}\n value={stringifyDefaultValue(property)}\n />\n <hbr />\n </ReflectionPropertyContext.Provider>\n );\n}\n","/* -------------------------------------------------------------------\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 type { DotenvParseOutput } from \"@stryke/env/types\";\nimport { ENV_PREFIXES } from \"@stryke/env/types\";\nimport { camelCase } from \"@stryke/string-format/camel-case\";\nimport { isString } from \"@stryke/type-checks/is-string\";\n\ntype TReturned<TEnv> = TEnv extends string ? string : DotenvParseOutput;\n\nexport function removeEnvPrefix<TEnv extends DotenvParseOutput | string>(\n env: TEnv\n): TReturned<TEnv> {\n if (isString(env)) {\n let name: string = ENV_PREFIXES.reduce((ret, prefix) => {\n if (ret.startsWith(prefix)) {\n ret = ret.slice(prefix.length);\n }\n\n return ret;\n }, env.toUpperCase());\n\n while (name.startsWith(\"_\")) {\n name = name.slice(1);\n }\n\n return name as TReturned<TEnv>;\n }\n\n return Object.keys(env).reduce((ret, key) => {\n const name = removeEnvPrefix(key);\n if (name) {\n (ret as DotenvParseOutput)[name] = env[key];\n }\n\n return ret;\n }, {} as TReturned<TEnv>);\n}\n\nexport function formatEnvField(key: string): string {\n return camelCase(removeEnvPrefix(key));\n}\n","/* -------------------------------------------------------------------\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 loadEnv as loadEnvBase,\n loadEnvFile as loadEnvFileBase\n} from \"@stryke/env/load-env\";\nimport type { DotenvParseOutput } from \"@stryke/env/types\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport type { PackageJson } from \"@stryke/types/package-json\";\nimport { loadConfig } from \"c12\";\nimport defu from \"defu\";\nimport { WorkspaceConfig } from \"powerlines/types/config\";\nimport { EnvPluginContext, EnvPluginOptions } from \"../types/plugin\";\nimport { removeEnvPrefix } from \"./source-file-env\";\n\nasync function loadEnvFiles<TEnv extends DotenvParseOutput = DotenvParseOutput>(\n options: EnvPluginOptions,\n mode: string,\n cwd: string\n): Promise<TEnv> {\n let env = await loadEnvBase(cwd, mode);\n if (options.additionalFiles && options.additionalFiles?.length > 0) {\n const additionalEnvFiles = await Promise.all(\n options.additionalFiles.map(async additionalEnvFile =>\n loadEnvFileBase(additionalEnvFile, cwd)\n )\n );\n\n for (const additionalEnvFile of additionalEnvFiles) {\n env = defu(additionalEnvFile, env);\n }\n }\n\n return removeEnvPrefix(env) as TEnv;\n}\n\nasync function loadEnvDirectory<\n TEnv extends DotenvParseOutput = DotenvParseOutput\n>(\n options: EnvPluginOptions,\n directory: string,\n mode: string,\n cacheDir: string,\n packageJson: PackageJson,\n workspaceConfig: WorkspaceConfig\n): Promise<TEnv> {\n const [envResult, c12Result] = await Promise.all([\n loadEnvFiles<TEnv>(options, mode, directory),\n loadConfig({\n cwd: directory,\n name: \"storm\",\n envName: mode,\n defaults: {\n NAME: packageJson.name?.replace(`@${workspaceConfig.namespace}/`, \"\"),\n MODE: mode,\n ORG: workspaceConfig.organization\n },\n globalRc: true,\n packageJson: true,\n dotenv: true,\n jitiOptions: {\n fsCache: joinPaths(cacheDir, \"jiti\"),\n moduleCache: true\n }\n })\n ]);\n\n return defu(envResult as any, c12Result.config, workspaceConfig) as TEnv;\n}\n\n/**\n * Retrieves various dotenv configuration parameters from the context.\n *\n * @param context - The context to retrieve the dotenv configuration from.\n * @param parsed - The parsed dotenv configuration.\n * @returns An object containing the dotenv configuration.\n */\nexport function loadEnvFromContext(\n context: EnvPluginContext,\n parsed: DotenvParseOutput\n) {\n return defu(\n {\n APP_NAME: kebabCase(\n context.config.name ||\n context.packageJson.name?.replace(\n `/${context.workspaceConfig.namespace}`,\n \"\"\n )\n ),\n APP_VERSION: context.packageJson.version,\n BUILD_ID: context.meta.buildId,\n BUILD_TIMESTAMP: new Date(context.meta.timestamp).toISOString(),\n BUILD_CHECKSUM: context.meta.checksum,\n RELEASE_ID: context.meta.releaseId,\n RELEASE_TAG: `${kebabCase(context.config.name)}@${context.packageJson.version}`,\n DEFAULT_LOCALE: context.workspaceConfig.locale,\n DEFAULT_TIMEZONE: context.workspaceConfig.timezone,\n LOG_LEVEL: context.config.logLevel,\n ERROR_URL: context.workspaceConfig.error?.url,\n ORGANIZATION: isSetString(context.workspaceConfig.organization)\n ? context.workspaceConfig.organization\n : context.workspaceConfig.organization?.name,\n PLATFORM: context.config.build.platform,\n MODE: context.workspaceConfig.mode,\n DEBUG: context.workspaceConfig.mode === \"development\",\n STACKTRACE: context.workspaceConfig.mode === \"development\",\n ENVIRONMENT: context.environment\n },\n isSetObject(context?.env?.types?.env)\n ? context.env.types.env?.getProperties().reduce(\n (ret, prop) => {\n ret[prop.name] = parsed[prop.name] ?? prop.getDefaultValue();\n return ret;\n },\n {} as Record<string, any>\n )\n : {}\n );\n}\n\nexport async function loadEnv<\n TEnv extends DotenvParseOutput = DotenvParseOutput\n>(context: EnvPluginContext, options: EnvPluginOptions): Promise<TEnv> {\n const [project, workspace, config] = await Promise.all([\n loadEnvDirectory<TEnv>(\n options,\n context.config.projectRoot,\n context.config.mode,\n context.cachePath,\n context.packageJson,\n context.workspaceConfig\n ),\n loadEnvDirectory<TEnv>(\n options,\n context.workspaceConfig.workspaceRoot,\n context.config.mode,\n context.cachePath,\n context.packageJson,\n context.workspaceConfig\n ),\n loadEnvDirectory<TEnv>(\n options,\n context.envPaths.config,\n context.config.mode,\n context.cachePath,\n context.packageJson,\n context.workspaceConfig\n )\n ]);\n\n return defu(\n loadEnvFromContext(context, process.env),\n project,\n workspace,\n config\n ) as TEnv;\n}\n","/* -------------------------------------------------------------------\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 { computed, createResource } from \"@alloy-js/core\";\nimport {\n ReflectionClass,\n ReflectionKind\n} from \"@powerlines/deepkit/vendor/type\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { EnvPluginContext } from \"../types/plugin\";\nimport { loadEnvFromContext } from \"./load\";\nimport { readEnvTypeReflection } from \"./persistence\";\n\n/**\n * Creates a reflection resource for the environment configuration.\n *\n * @param context - The environment plugin context.\n * @returns A resource that provides the reflection of the environment configuration.\n */\nexport function createReflectionResource(context?: EnvPluginContext) {\n const defaultValue = computed(\n () => context && loadEnvFromContext(context, process.env)\n );\n\n return createResource<ReflectionClass<Record<string, any>>>(async () => {\n if (!context) {\n return new ReflectionClass({\n kind: ReflectionKind.objectLiteral,\n description: `The initial environment configuration state for the Powerlines project.`,\n types: []\n });\n }\n\n const result = await readEnvTypeReflection(context, \"env\");\n result.getProperties().forEach(prop => {\n const aliases = prop.getAlias();\n aliases.filter(Boolean).forEach(alias => {\n result.addProperty({\n name: alias,\n optional: prop.isOptional() ? true : undefined,\n readonly: prop.isReadonly() ? true : undefined,\n description: prop.getDescription(),\n visibility: prop.getVisibility(),\n type: prop.getType(),\n default: prop.getDefaultValue(),\n tags: {\n hidden: prop.isHidden(),\n ignore: prop.isIgnored(),\n internal: prop.isInternal(),\n alias: prop\n .getAlias()\n .filter(a => a !== alias)\n .concat(prop.name),\n title: prop.getTitle() || titleCase(prop.name),\n readonly: prop.isReadonly(),\n permission: prop.getPermission(),\n domain: prop.getDomain()\n }\n });\n });\n });\n\n result.getProperties().forEach(prop => {\n prop.setDefaultValue(\n (defaultValue.value as Record<string, any>)?.[prop.getNameAsString()] ??\n prop\n .getAlias()\n .reduce(\n (ret, alias) =>\n ret ?? (defaultValue.value as Record<string, any>)?.[alias],\n undefined\n ) ??\n prop.getDefaultValue()\n );\n });\n\n return result;\n });\n}\n","/* -------------------------------------------------------------------\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 code,\n computed,\n For,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport {\n ClassDeclaration,\n ClassMethod,\n ElseIfClause,\n FunctionDeclaration,\n IfStatement,\n NewExpression,\n TypeDeclaration,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { usePowerlines } from \"@powerlines/alloy/core/contexts/context\";\nimport { refkey } from \"@powerlines/alloy/helpers/refkey\";\nimport { ComponentProps } from \"@powerlines/alloy/types/components\";\nimport {\n BuiltinFile,\n BuiltinFileProps\n} from \"@powerlines/alloy/typescript/components/builtin-file\";\nimport {\n TSDoc,\n TSDocExample,\n TSDocLink,\n TSDocParam,\n TSDocRemarks,\n TSDocReturns,\n TSDocThrows\n} from \"@powerlines/alloy/typescript/components/tsdoc\";\nimport {\n TypeScriptInterface,\n TypeScriptInterfaceProps\n} from \"@powerlines/alloy/typescript/components/typescript-interface\";\nimport { TypescriptObject } from \"@powerlines/alloy/typescript/components/typescript-object\";\nimport {\n ReflectionClass,\n ReflectionKind,\n ReflectionProperty\n} from \"@powerlines/deepkit/vendor/type\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isNull } from \"@stryke/type-checks/is-null\";\nimport defu from \"defu\";\nimport { createReflectionResource } from \"../helpers/create-reflection-resource\";\nimport { loadEnvFromContext } from \"../helpers/load\";\nimport { EnvPluginContext } from \"../types/plugin\";\n\n/**\n * Generates the environment configuration typescript definition for the Powerlines project.\n */\nexport function EnvTypeDefinition(\n props: Omit<TypeScriptInterfaceProps, \"name\">\n) {\n const [{ defaultValue, reflection }] = splitProps(props, [\n \"defaultValue\",\n \"reflection\"\n ]);\n\n const context = usePowerlines<EnvPluginContext>();\n\n return (\n <>\n <TypeScriptInterface\n name=\" EnvBase\"\n extends={[\"EnvInterface\"]}\n defaultValue={defaultValue}\n reflection={reflection}\n export={true}\n />\n <hbr />\n <hbr />\n\n <TypeDeclaration name=\"Env\" export={true}>\n {code` {\n [Key in keyof EnvBase as Key ${context?.config.env.prefix\n .map(prefix => `| \\`${prefix.replace(/_$/g, \"\")}_\\${Key}\\``)\n .join(\" \")}]: EnvBase[Key];\n}\n`}\n </TypeDeclaration>\n </>\n );\n}\n\ninterface ConfigPropertyConditionalProps extends ComponentProps {\n context: EnvPluginContext | undefined;\n name: string;\n}\n\nfunction ConfigPropertyConditional(props: ConfigPropertyConditionalProps) {\n const [{ context, name }] = splitProps(props, [\"context\", \"name\"]);\n\n if (!context) {\n return null;\n }\n\n return code`propertyName === \"${name}\" || propertyName.replace(/^(${context.config.env.prefix\n .sort((a, b) =>\n a.startsWith(b) ? -1 : b.startsWith(a) ? 1 : a.localeCompare(b)\n )\n .map(prefix => `${prefix.replace(/_$/, \"\")}_`)\n .join(\"|\")})/g, \"\").toLowerCase().replace(/[\\\\s\\\\-_]+/g, \"\") === \"${name\n .toLowerCase()\n .replace(/[\\s\\-_]+/g, \"\")}\"`;\n}\n\ninterface ConfigPropertyProps extends ComponentProps {\n index: number;\n context: EnvPluginContext | undefined;\n property: ReflectionProperty;\n}\n\nfunction ConfigPropertyGet(props: ConfigPropertyProps) {\n const [{ context, property, index }] = splitProps(props, [\n \"context\",\n \"property\",\n \"index\"\n ]);\n\n if (!context) {\n return null;\n }\n\n return (\n <>\n {index === 0 ? (\n <IfStatement\n condition={\n <>\n <ConfigPropertyConditional\n name={property.getNameAsString()}\n context={context}\n />\n <Show\n when={property.getAlias() && property.getAlias().length > 0}>\n {code` || `}\n <For each={property.getAlias()} joiner={code` || `}>\n {alias => (\n <ConfigPropertyConditional name={alias} context={context} />\n )}\n </For>\n </Show>\n </>\n }>\n {code`return target[\"${property.getNameAsString()}\"];`}\n </IfStatement>\n ) : (\n <ElseIfClause\n condition={\n <>\n <ConfigPropertyConditional\n name={property.getNameAsString()}\n context={context}\n />\n <Show\n when={property.getAlias() && property.getAlias().length > 0}>\n {code` || `}\n <For each={property.getAlias()} joiner={code` || `}>\n {alias => (\n <ConfigPropertyConditional name={alias} context={context} />\n )}\n </For>\n </Show>\n </>\n }>\n {code`return target[\"${property.getNameAsString()}\"];`}\n </ElseIfClause>\n )}\n </>\n );\n}\n\nfunction ConfigPropertySet(props: ConfigPropertyProps) {\n const [{ context, property, index }] = splitProps(props, [\n \"context\",\n \"property\",\n \"index\"\n ]);\n\n if (!context) {\n return null;\n }\n\n return (\n <>\n {index === 0 ? (\n <IfStatement\n condition={\n <>\n <ConfigPropertyConditional\n name={property.getNameAsString()}\n context={context}\n />\n <Show\n when={property.getAlias() && property.getAlias().length > 0}>\n {code` || `}\n <For each={property.getAlias()} joiner={code` || `}>\n {alias => (\n <ConfigPropertyConditional name={alias} context={context} />\n )}\n </For>\n </Show>\n </>\n }>\n {code`\n target[\"${property.getNameAsString()}\"] = newValue;\n return true;\n`}\n </IfStatement>\n ) : (\n <ElseIfClause\n condition={\n <>\n <ConfigPropertyConditional\n name={property.getNameAsString()}\n context={context}\n />\n <Show\n when={property.getAlias() && property.getAlias().length > 0}>\n {code` || `}\n <For each={property.getAlias()} joiner={code` || `}>\n {alias => (\n <ConfigPropertyConditional name={alias} context={context} />\n )}\n </For>\n </Show>\n </>\n }>\n {code`\n target[\"${property.getNameAsString()}\"] = newValue;\n return true;\n`}\n </ElseIfClause>\n )}\n </>\n );\n}\n\nexport interface EnvBuiltinProps extends Omit<BuiltinFileProps, \"id\"> {\n defaultConfig?: Children;\n}\n\nconst createEnvRefkey = refkey(\"createEnv\");\nconst envRefkey = refkey(\"env\");\nconst envSerializerRefkey = refkey(\"EnvSerializer\");\n\n/**\n * Generates the environment configuration module for the Powerlines project.\n */\nexport function EnvBuiltin(props: EnvBuiltinProps) {\n const [{ defaultConfig }, rest] = splitProps(props, [\"defaultConfig\"]);\n\n const context = usePowerlines<EnvPluginContext>();\n\n const defaultValue = computed(\n () => context && loadEnvFromContext(context, process.env)\n );\n const reflection = createReflectionResource(context);\n\n const envInstance = computed(() => {\n const result = new ReflectionClass(\n {\n kind: ReflectionKind.objectLiteral,\n description: `The initial environment configuration state for the ${titleCase(\n context?.config?.name\n )} project.`,\n types: []\n },\n reflection.data ?? undefined\n );\n\n return result;\n });\n\n const reflectionGetProperties = computed(\n () =>\n reflection.data\n ?.getProperties()\n .filter(property => !property.isIgnored())\n .sort((a, b) =>\n a.getNameAsString().localeCompare(b.getNameAsString())\n ) ?? []\n );\n\n const reflectionSetProperties = computed(\n () =>\n reflection.data\n ?.getProperties()\n .filter(property => !property.isIgnored() && !property.isReadonly())\n .sort((a, b) =>\n a.getNameAsString().localeCompare(b.getNameAsString())\n ) ?? []\n );\n\n return (\n <BuiltinFile\n {...rest}\n id=\"env\"\n description=\"The Powerlines environment configuration module provides an interface to define environment configuration parameters.\"\n imports={defu(\n {\n \"@powerlines/deepkit/vendor/type\": [\n \"Type\",\n \"stringify\",\n \"serializer\",\n \"serializeFunction\",\n \"deserializeFunction\",\n \"ReflectionKind\",\n \"TemplateState\",\n \"Serializer\",\n \"TypeProperty\",\n \"TypePropertySignature\"\n ],\n \"@powerlines/plugin-env/types/runtime\": [{ name: \"EnvInterface\" }]\n },\n rest.imports ?? {}\n )}>\n <Show when={!isNull(reflection.data)}>\n <EnvTypeDefinition\n defaultValue={defaultValue.value}\n reflection={reflection.data!}\n />\n <hbr />\n <hbr />\n </Show>\n\n <TypescriptObject\n name=\"initialEnv\"\n type=\"Partial<EnvBase>\"\n defaultValue={defaultValue}\n reflection={envInstance}\n export={true}\n const={true}\n />\n <hbr />\n <hbr />\n\n <TSDoc heading=\"The environment configuration serializer for the Powerlines application.\">\n <TSDocLink>\n {`https://deepkit.io/docs/serialization/serializers`}\n </TSDocLink>\n <TSDocLink>\n {`https://github.com/marcj/untitled-code/blob/master/packages/type/src/serializer.ts#L1918`}\n </TSDocLink>\n <TSDocRemarks>\n {`This serializer is used to serialize and deserialize the Powerlines environment configuration.`}\n </TSDocRemarks>\n </TSDoc>\n <ClassDeclaration\n refkey={envSerializerRefkey}\n name=\"EnvSerializer\"\n extends=\"Serializer\"\n export={true}>\n <ClassMethod name=\"constructor\" public={true}>\n {code`\n super(\"env\");\n\n this.deserializeRegistry.register(\n ReflectionKind.boolean,\n (type: Type, state: TemplateState) => {\n state.addSetter(\n \\`typeof \\${state.accessor.toString()} !== \"boolean\" ? \\${state.accessor.toString()} === 1 || \\${state.accessor.toString()} === \"1\" || \\${state.accessor.toString()}.toLowerCase() === \"t\" || \\${state.accessor.toString()}.toLowerCase() === \"true\" || \\${state.accessor.toString()}.toLowerCase() === \"y\" || \\${state.accessor.toString()}.toLowerCase() === \"yes\" : \\${state.accessor.toString()}\\`\n );\n }\n );\n`}\n </ClassMethod>\n </ClassDeclaration>\n <hbr />\n <hbr />\n\n <TSDoc heading=\"A {@link EnvSerializer | environment configuration serializer} instance for the Powerlines application.\">\n <TSDocLink>\n {`https://deepkit.io/docs/serialization/serializers`}\n </TSDocLink>\n <TSDocLink>\n {`https://github.com/marcj/untitled-code/blob/master/packages/type/src/serializer.ts#L1918`}\n </TSDocLink>\n <TSDocRemarks>\n {`This serializer is used to serialize and deserialize the Powerlines environment configuration.`}\n </TSDocRemarks>\n </TSDoc>\n <VarDeclaration\n name=\"envSerializer\"\n export={false}\n const={true}\n initializer={<NewExpression args={[]} target={\"EnvSerializer\"} />}\n />\n <hbr />\n <hbr />\n\n <TSDoc heading=\"Serialize a environment configuration object to JSON data objects (not a JSON string).\">\n <TSDocRemarks>\n {`The resulting JSON object can be stringified using JSON.stringify().`}\n </TSDocRemarks>\n <TSDocExample>{`const json = serializeEnv(env);`}</TSDocExample>\n <TSDocThrows>\n {`ValidationError when serialization or validation fails.`}\n </TSDocThrows>\n </TSDoc>\n <VarDeclaration\n name=\"serializeEnv\"\n export={true}\n const={true}\n initializer={\"serializeFunction<EnvBase>(envSerializer)\"}\n />\n <hbr />\n <hbr />\n\n <TSDoc heading=\"Deserialize a environment configuration object from JSON data objects to JavaScript objects, without running any validators.\">\n <TSDocRemarks>\n {`Types that are already correct will be used as-is.`}\n </TSDocRemarks>\n <TSDocExample>{`const env = deserializeEnv(json);`}</TSDocExample>\n <TSDocThrows>\n {`ValidationError when deserialization fails.`}\n </TSDocThrows>\n </TSDoc>\n <VarDeclaration\n name=\"deserializeEnv\"\n export={true}\n const={true}\n initializer={\"deserializeFunction<EnvBase>(envSerializer)\"}\n />\n <hbr />\n <hbr />\n\n <TSDoc heading=\"Initializes the Powerlines environment configuration module.\">\n <TSDocRemarks>\n {`This function initializes the Powerlines environment configuration object.`}\n </TSDocRemarks>\n <TSDocParam name=\"environmentConfig\">\n {`The dynamic/runtime configuration - this could include the current environment variables or any other environment-specific settings provided by the runtime.`}\n </TSDocParam>\n <TSDocReturns>\n {`The initialized Powerlines configuration object.`}\n </TSDocReturns>\n </TSDoc>\n <Show when={Boolean(context?.entryPath)}>\n <FunctionDeclaration\n refkey={createEnvRefkey}\n async={false}\n export={true}\n name=\"createEnv\"\n parameters={[\n {\n name: \"environmentConfig\",\n type: `Partial<Env>`,\n optional: false,\n default: \"{}\"\n }\n ]}\n returnType=\"Env\">\n {code`\n return new Proxy<Env>(\n deserializeEnv({\n ...initialEnv,\n ...environmentConfig\n }) as Env,\n {\n get: (target: EnvBase, propertyName: string) => { `}\n <hbr />\n\n <For each={reflectionGetProperties}>\n {(property: ReflectionProperty, index: number) => (\n <ConfigPropertyGet\n index={index}\n context={context}\n property={property}\n />\n )}\n </For>\n {code`\n return undefined;\n }, `}\n\n <hbr />\n <hbr />\n {code` set: (target: EnvBase, propertyName: string, newValue: any) => { `}\n <hbr />\n\n <For each={reflectionSetProperties} ender={code` else `}>\n {(property: ReflectionProperty, index: number) => (\n <ConfigPropertySet\n index={index}\n context={context}\n property={property}\n />\n )}\n </For>\n\n <hbr />\n {code`return false;\n }\n }\n );\n`}\n </FunctionDeclaration>\n </Show>\n <hbr />\n <hbr />\n <hbr />\n\n <VarDeclaration\n refkey={envRefkey}\n name=\"env\"\n type=\"Env\"\n export={true}\n const={true}\n initializer={\n <>\n {code`createEnv(`}\n {defaultConfig || \"{}\"}\n {code` as Partial<Env>)`}\n </>\n }\n />\n </BuiltinFile>\n );\n}\n","/* -------------------------------------------------------------------\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 type { ComponentContext } from \"@alloy-js/core\";\nimport { createContext, createNamedContext, useContext } from \"@alloy-js/core\";\n\nexport interface MarkdownTableColumnContextInterface<\n T extends Record<string, any> = Record<string, any>\n> {\n index: number;\n name: keyof T;\n align: \"left\" | \"right\" | \"center\";\n width: number;\n}\n\n/**\n * The Powerlines context used in template rendering.\n */\nexport const MarkdownTableColumnContext: ComponentContext<MarkdownTableColumnContextInterface> =\n createNamedContext<MarkdownTableColumnContextInterface>(\n \"markdown-table-column\",\n {} as MarkdownTableColumnContextInterface\n );\n\n/**\n * Hook to access the Powerlines Context.\n *\n * @returns The Context.\n */\nexport function useMarkdownTableColumn() {\n return useContext<MarkdownTableColumnContextInterface>(\n MarkdownTableColumnContext\n );\n}\n\nexport interface MarkdownTableContextInterface<\n T extends Record<string, any> = Record<string, any>\n> {\n columns: MarkdownTableColumnContextInterface<T>[];\n data: T[];\n}\n\n/**\n * The Powerlines context used in template rendering.\n */\nexport const MarkdownTableContext: ComponentContext<MarkdownTableContextInterface> =\n createContext<MarkdownTableContextInterface>({\n columns: [],\n data: []\n } as MarkdownTableContextInterface);\n\n/**\n * Hook to access the Powerlines Context.\n *\n * @returns The Context.\n */\nexport function useMarkdownTable() {\n return useContext<MarkdownTableContextInterface>(MarkdownTableContext);\n}\n","/* -------------------------------------------------------------------\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 { createAlloyPlugin } from \"@powerlines/alloy/create-plugin\";\nimport {\n ReflectionClass,\n ReflectionKind,\n stringifyType\n} from \"@powerlines/deepkit/vendor/type\";\nimport babel from \"@powerlines/plugin-babel\";\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { parseTypeDefinition } from \"@stryke/convert/parse-type-definition\";\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { ENV_PREFIXES } from \"@stryke/env/types\";\nimport { existsSync } from \"@stryke/fs/exists\";\nimport { createDirectory } from \"@stryke/fs/helpers\";\nimport { isParentPath } from \"@stryke/path/is-parent-path\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { constantCase } from \"@stryke/string-format/constant-case\";\nimport {\n TypeDefinition,\n TypeDefinitionParameter\n} from \"@stryke/types/configuration\";\nimport defu from \"defu\";\nimport { envBabelPlugin } from \"./babel/plugin\";\nimport { EnvBuiltin } from \"./components/env\";\nimport { loadEnv } from \"./helpers/load\";\nimport {\n getEnvDefaultTypeDefinition,\n getEnvReflectionsPath,\n getEnvTypeReflectionsPath,\n getSecretsDefaultTypeDefinition,\n readEnvReflection,\n readEnvTypeReflection,\n readSecretsReflection,\n writeEnvReflection,\n writeEnvTypeReflection\n} from \"./helpers/persistence\";\nimport { reflectEnv, reflectSecrets } from \"./helpers/reflect\";\nimport { EnvPluginContext, EnvPluginOptions } from \"./types/plugin\";\n\nexport * from \"./babel\";\nexport * from \"./components\";\nexport * from \"./helpers\";\nexport * from \"./types\";\n\n/**\n * A Powerlines plugin to inject environment variables into the source code.\n */\nexport const plugin = createAlloyPlugin<EnvPluginContext>(\n (options: EnvPluginOptions = {}) => {\n return {\n name: \"env\",\n dependsOn: [babel(options.babel)],\n async config() {\n this.log(\n LogLevelLabel.TRACE,\n \"Providing default configuration for the Powerlines `env` build plugin.\"\n );\n\n const config = {\n env: defu(options, {\n types: {} as TypeDefinitionParameter,\n prefix: []\n }),\n transform: {\n babel: {\n plugins: [envBabelPlugin]\n }\n }\n };\n\n if (config.env.types) {\n config.env.types = parseTypeDefinition(\n config.env.types\n ) as TypeDefinition;\n } else {\n this.log(\n LogLevelLabel.WARN,\n \"The `env.types` configuration parameter was not provided. Please ensure this is expected.\"\n );\n\n const envDefaultTypeDefinition =\n await getEnvDefaultTypeDefinition(this);\n config.env.types = parseTypeDefinition(\n `${envDefaultTypeDefinition.file}#${envDefaultTypeDefinition.name}`\n ) as TypeDefinition;\n }\n\n if (config.env.secrets) {\n config.env.secrets = parseTypeDefinition(\n config.env.secrets\n ) as TypeDefinition;\n } else {\n const secretsDefaultTypeDefinition =\n await getSecretsDefaultTypeDefinition(this);\n config.env.secrets = parseTypeDefinition(\n `${secretsDefaultTypeDefinition.file}#${\n secretsDefaultTypeDefinition.name\n }`\n ) as TypeDefinition;\n }\n\n config.env.prefix = toArray(\n (config.env.prefix ?? []) as string[]\n ).reduce(\n (ret: string[], prefix: string) => {\n const formattedPrefix = constantCase(prefix);\n if (!ret.includes(formattedPrefix)) {\n ret.push(formattedPrefix);\n }\n\n return ret;\n },\n [...ENV_PREFIXES, \"POWERLINES_\"] as string[]\n );\n\n config.env.prefix = config.env.prefix.reduce((ret, prefix) => {\n if (!ret.includes(prefix.replace(/_$/g, \"\"))) {\n ret.push(prefix.replace(/_$/g, \"\"));\n }\n return ret;\n }, [] as string[]);\n\n return config;\n },\n async configResolved() {\n this.log(\n LogLevelLabel.TRACE,\n `Environment plugin configuration has been resolved for the Powerlines project.`\n );\n\n this.config.env.inject ??= this.config.projectType === \"application\";\n this.env = defu(\n {\n parsed: await loadEnv(this, this.config.env)\n },\n this.env ?? {},\n {\n types: {\n env: {}\n },\n used: {\n env: {},\n secrets: {}\n },\n parsed: {},\n injected: {}\n }\n ) as EnvPluginContext[\"env\"];\n\n if (\n this.config.command !== \"prepare\" &&\n this.persistedMeta?.checksum === this.meta.checksum &&\n existsSync(getEnvTypeReflectionsPath(this, \"env\"))\n ) {\n this.log(\n LogLevelLabel.TRACE,\n `Skipping reflection initialization as the meta checksum has not changed.`\n );\n\n this.env.types.env = await readEnvTypeReflection(this, \"env\");\n\n if (existsSync(getEnvReflectionsPath(this, \"env\"))) {\n this.env.used.env = await readEnvReflection(this);\n }\n\n if (existsSync(getEnvTypeReflectionsPath(this, \"secrets\"))) {\n this.env.types.secrets = await readEnvTypeReflection(\n this,\n \"secrets\"\n );\n }\n\n if (existsSync(getEnvReflectionsPath(this, \"secrets\"))) {\n this.env.used.secrets = await readSecretsReflection(this);\n }\n } else {\n this.env.types.env = await reflectEnv(\n this,\n this.config.env.types?.file\n ? isParentPath(\n this.config.env.types?.file,\n this.workspaceConfig.workspaceRoot\n )\n ? this.config.env.types?.file\n : joinPaths(\n this.config.projectRoot,\n this.config.env.types?.file\n )\n : undefined,\n this.config.env.types?.name\n );\n if (!this.env.types.env) {\n throw new Error(\n \"Failed to find the environment configuration type reflection in the context.\"\n );\n }\n\n await writeEnvTypeReflection(this, this.env.types.env, \"env\");\n\n this.env.types.secrets = await reflectSecrets(\n this,\n this.config.env.secrets?.file\n ? isParentPath(\n this.config.env.secrets?.file,\n this.workspaceConfig.workspaceRoot\n )\n ? this.config.env.secrets?.file\n : joinPaths(\n this.config.projectRoot,\n this.config.env.secrets?.file\n )\n : undefined,\n this.config.env.secrets?.name\n );\n if (!this.env.types.secrets) {\n throw new Error(\n \"Failed to find the secrets configuration type reflection in the context.\"\n );\n }\n\n await writeEnvTypeReflection(this, this.env.types.secrets, \"secrets\");\n\n this.log(\n LogLevelLabel.TRACE,\n `Resolved ${\n this.env.types.env.getProperties().length ?? 0\n } environment configuration parameters and ${\n this.env.types.secrets?.getProperties().length ?? 0\n } secret configuration parameters`\n );\n\n const envWithAlias = this.env.types.env\n .getProperties()\n .filter(prop => prop.getAlias().length > 0);\n\n Object.entries(await loadEnv(this, this.config.env)).forEach(\n ([key, value]) => {\n const unprefixedKey = this.config.env.prefix.reduce(\n (ret, prefix) => {\n if (key.replace(/_$/g, \"\").startsWith(prefix)) {\n return key.replace(/_$/g, \"\").slice(prefix.length);\n }\n return ret;\n },\n key\n );\n\n const aliasKey = envWithAlias.find(prop =>\n prop?.getAlias().reverse().includes(unprefixedKey)\n );\n if (this.env.types.env?.hasProperty(unprefixedKey) || aliasKey) {\n this.env.types.env\n .getProperty(unprefixedKey)\n .setDefaultValue(value);\n }\n }\n );\n\n this.env.used.env = new ReflectionClass(\n {\n kind: ReflectionKind.objectLiteral,\n typeName: \"Env\",\n description: `An object containing the environment configuration parameters used by the ${\n this.config.name\n ? `${this.config.name} application`\n : \"application\"\n }.`,\n types: []\n },\n this.env.types.env\n );\n\n await writeEnvReflection(this, this.env.used.env, \"env\");\n\n if (this.env.types.secrets) {\n await writeEnvTypeReflection(\n this,\n this.env.types.secrets,\n \"secrets\"\n );\n\n this.env.used.secrets = new ReflectionClass(\n {\n kind: ReflectionKind.objectLiteral,\n typeName: \"Secrets\",\n description: `An object containing the secret configuration parameters used by the ${\n this.config.name\n ? `${this.config.name} application`\n : \"application\"\n }.`,\n types: []\n },\n this.env.types.secrets\n );\n await writeEnvReflection(this, this.env.used.secrets, \"secrets\");\n }\n }\n },\n render() {\n this.log(\n LogLevelLabel.TRACE,\n `Preparing the Environment runtime artifacts for the Powerlines project.`\n );\n\n return <EnvBuiltin defaultConfig={this.config.env.defaultConfig} />;\n },\n async docs() {\n this.log(\n LogLevelLabel.TRACE,\n \"Writing Environment documentation for the Powerlines project artifacts.\"\n );\n\n // Clean and recreate the output directories\n const outputPath = joinPaths(\n this.config.projectRoot,\n \"docs\",\n \"generated\"\n );\n\n if (!existsSync(outputPath)) {\n await createDirectory(outputPath);\n }\n\n const reflection = await readEnvTypeReflection(this, \"env\");\n const envDocFile = joinPaths(outputPath, \"env.md\");\n\n this.log(\n LogLevelLabel.TRACE,\n `Documenting environment variables configuration in \"${envDocFile}\"`\n );\n\n await this.fs.write(\n envDocFile,\n `<!-- Generated by Powerlines -->\n\n # Environment variables configuration\n\n Below is a list of environment variables used by the [${\n this.packageJson.name\n }](https://www.npmjs.com/package/${\n this.packageJson.name\n }) package. These values can be updated in the \\`.env\\` file in the root of the project.\n\n ## Environment Configuration\n\n The below list of environment variables are used as configuration parameters to drive the processing of the application. The data contained in these variables are **not** considered sensitive or confidential. Any values provided in these variables will be available in plain text to the public.\n\n | Name | Description | Type | Default Value | Required |\n | ---- | ----------- | ---- | ------------- | :------: |\n ${reflection\n .getProperties()\n .filter(property => property.getNameAsString() !== \"__STORM_INJECTED__\")\n .sort((a, b) => a.getNameAsString().localeCompare(b.getNameAsString()))\n .map(reflectionProperty => {\n return `| ${reflectionProperty.getNameAsString().trim()} | ${(\n reflectionProperty\n .getDescription()\n ?.replaceAll(\"\\r\", \"\")\n ?.replaceAll(\"\\n\", \"\") ?? \"\"\n ).trim()} | ${stringifyType(reflectionProperty.getType())\n .trim()\n .replaceAll(\" | \", \", or \")} | ${\n reflectionProperty.hasDefault()\n ? String(reflectionProperty.getDefaultValue())?.includes('\"')\n ? reflectionProperty.getDefaultValue()\n : `\\`${reflectionProperty.getDefaultValue()}\\``\n : \"\"\n } | ${reflectionProperty.isValueRequired() ? \"\" : \"✔\"} |`;\n })\n .join(\"\\n\")}\n `\n );\n },\n async buildEnd() {\n const reflectionPath = getEnvReflectionsPath(this, \"env\");\n\n this.log(\n LogLevelLabel.TRACE,\n `Writing env reflection types to ${reflectionPath}.`\n );\n\n await writeEnvReflection(this, this.env.used.env, \"env\");\n }\n // vite: {\n // config(config: ViteUserConfig, env: ViteConfigEnv) {\n // this.log(\n // LogLevelLabel.TRACE,\n // \"Writing Vite environment variables configuration for the Powerlines project artifacts.\"\n // );\n\n // return {\n // envPrefix: this.config.env.prefix\n // };\n // }\n // }\n };\n }\n);\n\nexport default plugin;\n","/* -------------------------------------------------------------------\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 { titleCase } from \"@stryke/string-format/title-case\";\nimport { Context } from \"../../types/context\";\n\nexport interface FileHeaderOptions {\n directive?: string | null;\n prettierIgnore?: boolean;\n}\n\nexport function getBaseFileHeader(context: Context): string {\n return `\n// Generated with ${titleCase(context.config.framework)}\n// Note: Do not edit this file manually - it will be overwritten automatically\n`;\n}\n\nexport function getFileHeader(\n context: Context,\n options: FileHeaderOptions = {}\n): string {\n const { directive = null, prettierIgnore = false } = options;\n\n return `/* eslint-disable */\n// biome-ignore lint: disable\n${prettierIgnore ? `// prettier-ignore` : \"\"}${directive ? `\\n\\n${directive}\\n` : \"\\n\"}\n${getBaseFileHeader(context)}\n\n`;\n}\n","/* -------------------------------------------------------------------\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 { getFileHeader } from \"powerlines/lib/utilities/file-header\";\nimport { DatePluginContext } from \"../types/plugin\";\n\n/**\n * Generates the Powerlines configuration file.\n *\n * @param context - The build context containing runtime information.\n * @returns A string representing the configuration file content.\n */\nexport function dateFnsModule(context: DatePluginContext) {\n return `\n/**\n * The Date module provides utility functions for date manipulation and formatting\n *\n * @module ${context.config.output.builtinPrefix}:date\n */\n\n${getFileHeader(context)}\n\nimport { DateFormats, TimeUnit } from \"@powerlines/plugin-date/types/runtime\";\nimport { addDays as dateFnsAddDays } from \"date-fns/addDays\";\nimport { addHours as dateFnsAddHours } from \"date-fns/addHours\";\nimport { addMinutes as dateFnsAddMinutes } from \"date-fns/addMinutes\";\nimport { addMonths as dateFnsAddMonths } from \"date-fns/addMonths\";\nimport { addSeconds as dateFnsAddSeconds } from \"date-fns/addSeconds\";\nimport { addWeeks as dateFnsAddWeeks } from \"date-fns/addWeeks\";\nimport { addYears as dateFnsAddYears } from \"date-fns/addYears\";\nimport { differenceInDays } from \"date-fns/differenceInDays\";\nimport { differenceInHours } from \"date-fns/differenceInHours\";\nimport { differenceInMilliseconds } from \"date-fns/differenceInMilliseconds\";\nimport { differenceInMinutes } from \"date-fns/differenceInMinutes\";\nimport { differenceInMonths } from \"date-fns/differenceInMonths\";\nimport { differenceInQuarters } from \"date-fns/differenceInQuarters\";\nimport { differenceInSeconds } from \"date-fns/differenceInSeconds\";\nimport { differenceInWeeks } from \"date-fns/differenceInWeeks\";\nimport { differenceInYears } from \"date-fns/differenceInYears\";\nimport { eachDayOfInterval } from \"date-fns/eachDayOfInterval\";\nimport { endOfDay as dateFnsEndOfDay } from \"date-fns/endOfDay\";\nimport { endOfMonth as dateFnsEndOfMonth } from \"date-fns/endOfMonth\";\nimport { endOfWeek as dateFnsEndOfWeek } from \"date-fns/endOfWeek\";\nimport { endOfYear as dateFnsEndOfYear } from \"date-fns/endOfYear\";\nimport { format as dateFnsFormat, longFormatters } from \"date-fns/format\";\nimport { formatISO } from \"date-fns/formatISO\";\nimport { getDate as dateFnsGetDate } from \"date-fns/getDate\";\nimport { getDay as dateFnsGetDay } from \"date-fns/getDay\";\nimport { getDaysInMonth as dateFnsGetDaysInMonth } from \"date-fns/getDaysInMonth\";\nimport { getHours as dateFnsGetHours } from \"date-fns/getHours\";\nimport { getMinutes as dateFnsGetMinutes } from \"date-fns/getMinutes\";\nimport { getMonth as dateFnsGetMonth } from \"date-fns/getMonth\";\nimport { getSeconds as dateFnsGetSeconds } from \"date-fns/getSeconds\";\nimport { getWeek as dateFnsGetWeek } from \"date-fns/getWeek\";\nimport { getYear as dateFnsGetYear } from \"date-fns/getYear\";\nimport { isAfter as dateFnsIsAfter } from \"date-fns/isAfter\";\nimport { isBefore as dateFnsIsBefore } from \"date-fns/isBefore\";\nimport { isEqual as dateFnsIsEqual } from \"date-fns/isEqual\";\nimport { isSameDay as dateFnsIsSameDay } from \"date-fns/isSameDay\";\nimport { isSameHour as dateFnsIsSameHour } from \"date-fns/isSameHour\";\nimport { isSameMonth as dateFnsIsSameMonth } from \"date-fns/isSameMonth\";\nimport { isSameYear as dateFnsIsSameYear } from \"date-fns/isSameYear\";\nimport { isValid as dateFnsIsValid } from \"date-fns/isValid\";\nimport { isWithinInterval } from \"date-fns/isWithinInterval\";\nimport { Locale } from \"date-fns/locale\";\nimport { ${\n context.env.parsed.DEFAULT_LOCALE?.replaceAll(\"-\", \"\") || \"enUS\"\n } as defaultLocale } from \"date-fns/locale/${\n context.env.parsed.DEFAULT_LOCALE || \"en-US\"\n }\";\nimport { parse as dateFnsParse } from \"date-fns/parse\";\nimport { parseISO as dateFnsParseISO } from \"date-fns/parseISO\";\nimport { setDate as dateFnsSetDate } from \"date-fns/setDate\";\nimport { setHours as dateFnsSetHours } from \"date-fns/setHours\";\nimport { setMinutes as dateFnsSetMinutes } from \"date-fns/setMinutes\";\nimport { setMonth as dateFnsSetMonth } from \"date-fns/setMonth\";\nimport { setSeconds as dateFnsSetSeconds } from \"date-fns/setSeconds\";\nimport { setYear as dateFnsSetYear } from \"date-fns/setYear\";\nimport { startOfDay as dateFnsStartOfDay } from \"date-fns/startOfDay\";\nimport { startOfMonth as dateFnsStartOfMonth } from \"date-fns/startOfMonth\";\nimport { startOfWeek as dateFnsStartOfWeek } from \"date-fns/startOfWeek\";\nimport { startOfYear as dateFnsStartOfYear } from \"date-fns/startOfYear\";\n\nexport const formats: DateFormats = {\n dayOfMonth: \"d\",\n fullDate: \"PP\",\n fullDateWithWeekday: \"PPPP\",\n fullDateTime: \"PP p\",\n fullDateTime12h: \"PP hh:mm aa\",\n fullDateTime24h: \"PP HH:mm\",\n fullTime: \"p\",\n fullTime12h: \"hh:mm aa\",\n fullTime24h: \"HH:mm\",\n hours12h: \"hh\",\n hours24h: \"HH\",\n keyboardDate: \"P\",\n keyboardDateTime: \"P p\",\n keyboardDateTime12h: \"P hh:mm aa\",\n keyboardDateTime24h: \"P HH:mm\",\n systemDateTime: \"P HH:mm:ss.SSS\",\n filePathDateTime: \"P_HH-mm-ss-SSS\",\n minutes: \"mm\",\n month: \"LLLL\",\n monthAndDate: \"MMMM d\",\n monthAndYear: \"LLLL yyyy\",\n monthShort: \"MMM\",\n weekday: \"EEEE\",\n weekdayShort: \"EEE\",\n normalDate: \"d MMMM\",\n normalDateWithWeekday: \"EEE, MMM d\",\n seconds: \"ss\",\n shortDate: \"MMM d\",\n year: \"yyyy\"\n};\n\nexport const locale: Locale = defaultLocale;\n\n/**\n * Creates a date object using the provided value.\n *\n * @remarks\n * This function creates a date object using the provided value. If the value is \\`null\\`, it returns \\`null\\`. If the value is \\`undefined\\`, it returns the current date. If the value is a string, it parses the string as a date. If the value is a number, it treats it as a timestamp. If the value is a date object, it returns the date object.\n *\n * @example\n * \\`\\`\\`ts\n * import { createDate } from \"storm:date\";\n *\n * const date = createDate(\"2023-10-01\");\n * console.log(date.format(\"YYYY-MM-DD\")); // Outputs: 2023-10-01\n * \\`\\`\\`\n *\n * @param value - The value to create the date object from.\n * @returns A date object or \\`null\\` if the value is \\`null\\`.\n */\nexport function createDate<\n TArg = undefined,\n TResultingDate = TArg extends null\n ? null\n : TArg extends undefined\n ? Date\n : Date | null\n>(value?: TArg): TResultingDate {\n if (typeof value === \"undefined\") {\n return new Date() as TResultingDate;\n }\n if (value === null) {\n return null as TResultingDate;\n }\n return new Date(value as string | number) as TResultingDate;\n}\n\nexport const type = \"date-fns\";\n\n// Note: date-fns input types are more lenient than this adapter, so we need to expose our more\n// strict signature and delegate to the more lenient signature. Otherwise, we have downstream type errors upon usage.\nexport function is12HourCycleInCurrentLocale(): boolean {\n if (locale) {\n return /a/.test(locale.formatLong?.time({}));\n }\n\n // By default date-fns is using en-US locale with am/pm enabled\n return true;\n}\n\nexport function getFormatHelperText(format: string) {\n // @see https://github.com/date-fns/date-fns/blob/master/src/format/index.js#L31\n const longFormatRegexp = /P+p+|P+|p+|''|'(?:''|[^'])+(?:'|$)|./g;\n const _locale = locale || defaultLocale;\n\n return (\n format\n .match(longFormatRegexp)\n ?.map(token => {\n const firstCharacter = token[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter]!;\n\n return longFormatter(token, _locale.formatLong);\n }\n\n return token;\n })\n .join(\"\")\n .replace(/aaa|aa|a/g, \"(a|p)m\")\n .toLocaleLowerCase() ?? format\n );\n}\n\nexport function parseISO(isoString: string) {\n return dateFnsParseISO(isoString);\n}\n\nexport function toISO(value: Date) {\n return formatISO(value, {\n format: \"extended\"\n });\n}\n\nexport function getCurrentLocaleCode() {\n return locale?.code || $storm.env.DEFAULT_LOCALE;\n}\n\nexport function addSeconds(value: Date, count: number) {\n return dateFnsAddSeconds(value, count);\n}\n\nexport function addMinutes(value: Date, count: number) {\n return dateFnsAddMinutes(value, count);\n}\n\nexport function addHours(value: Date, count: number) {\n return dateFnsAddHours(value, count);\n}\n\nexport function addDays(value: Date, count: number) {\n return dateFnsAddDays(value, count);\n}\n\nexport function addWeeks(value: Date, count: number) {\n return dateFnsAddWeeks(value, count);\n}\n\nexport function addMonths(value: Date, count: number) {\n return dateFnsAddMonths(value, count);\n}\n\nexport function addYears(value: Date, count: number) {\n return dateFnsAddYears(value, count);\n}\n\nexport function isValid(value: any) {\n return dateFnsIsValid(createDate(value));\n}\n\nexport function getDiff(\n value: Date,\n comparing: Date | string,\n unit?: TimeUnit\n) {\n // we output 0 if the compare date is string and parsing is not valid\n const dateToCompare = createDate(comparing) ?? value;\n if (!isValid(dateToCompare)) {\n return 0;\n }\n\n switch (unit) {\n case \"years\":\n return differenceInYears(value, dateToCompare);\n case \"quarters\":\n return differenceInQuarters(value, dateToCompare);\n case \"months\":\n return differenceInMonths(value, dateToCompare);\n case \"weeks\":\n return differenceInWeeks(value, dateToCompare);\n case \"days\":\n return differenceInDays(value, dateToCompare);\n case \"hours\":\n return differenceInHours(value, dateToCompare);\n case \"minutes\":\n return differenceInMinutes(value, dateToCompare);\n case \"seconds\":\n return differenceInSeconds(value, dateToCompare);\n case \"milliseconds\":\n case undefined:\n default:\n return differenceInMilliseconds(value, dateToCompare);\n }\n}\n\nexport function isAfter(value: Date, comparing: Date) {\n return dateFnsIsAfter(value, comparing);\n}\n\nexport function isBefore(value: Date, comparing: Date) {\n return dateFnsIsBefore(value, comparing);\n}\n\nexport function startOfDay(value: Date) {\n return dateFnsStartOfDay(value);\n}\n\nexport function endOfDay(value: Date) {\n return dateFnsEndOfDay(value);\n}\n\nexport function getHours(value: Date) {\n return dateFnsGetHours(value);\n}\n\nexport function setHours(value: Date, count: number) {\n return dateFnsSetHours(value, count);\n}\n\nexport function setMinutes(value: Date, count: number) {\n return dateFnsSetMinutes(value, count);\n}\n\nexport function getSeconds(value: Date) {\n return dateFnsGetSeconds(value);\n}\n\nexport function setSeconds(value: Date, count: number) {\n return dateFnsSetSeconds(value, count);\n}\n\nexport function isSameDay(value: Date, comparing: Date) {\n return dateFnsIsSameDay(value, comparing);\n}\n\nexport function isSameMonth(value: Date, comparing: Date) {\n return dateFnsIsSameMonth(value, comparing);\n}\n\nexport function isSameYear(value: Date, comparing: Date) {\n return dateFnsIsSameYear(value, comparing);\n}\n\nexport function isSameHour(value: Date, comparing: Date) {\n return dateFnsIsSameHour(value, comparing);\n}\n\nexport function startOfYear(value: Date) {\n return dateFnsStartOfYear(value);\n}\n\nexport function endOfYear(value: Date) {\n return dateFnsEndOfYear(value);\n}\n\nexport function startOfMonth(value: Date) {\n return dateFnsStartOfMonth(value);\n}\n\nexport function endOfMonth(value: Date) {\n return dateFnsEndOfMonth(value);\n}\n\nexport function startOfWeek(value: Date) {\n return dateFnsStartOfWeek(value, {\n locale\n });\n}\n\nexport function endOfWeek(value: Date) {\n return dateFnsEndOfWeek(value, {\n locale\n });\n}\n\nexport function getYear(value: Date) {\n return dateFnsGetYear(value);\n}\n\nexport function setYear(value: Date, count: number) {\n return dateFnsSetYear(value, count);\n}\n\nexport function toJsDate(value: Date) {\n return value;\n}\n\nexport function parse(value: string, formatString: string) {\n if (value === \"\") {\n return null;\n }\n return dateFnsParse(value, formatString, new Date(), {\n locale\n });\n}\n\nexport function format(date: Date, formatKey: keyof DateFormats) {\n return formatByString(date, formats[formatKey]);\n}\n\nexport function formatByString(date: Date, formatString: string) {\n return dateFnsFormat(date, formatString, {\n locale\n });\n}\n\nexport function isEqual(date: any, comparing: any) {\n if (date === null && comparing === null) {\n return true;\n }\n return dateFnsIsEqual(date, comparing);\n}\n\nexport function isNull(date: Date) {\n return date === null;\n}\n\nexport function isAfterDay(date: Date, value: Date) {\n return isAfter(date, endOfDay(value));\n}\n\nexport function isBeforeDay(date: Date, value: Date) {\n return isBefore(date, startOfDay(value));\n}\n\nexport function isBeforeYear(date: Date, value: Date) {\n return isBefore(date, startOfYear(value));\n}\n\nexport function isBeforeMonth(value: Date, comparing: Date): boolean {\n return isBefore(value, startOfMonth(comparing));\n}\n\nexport function isAfterMonth(value: Date, comparing: Date): boolean {\n return isAfter(value, startOfMonth(comparing));\n}\n\nexport function isAfterYear(date: Date, value: Date) {\n return isAfter(date, endOfYear(value));\n}\n\nexport function isWithinRange(date: Date, [start, end]: [Date, Date]) {\n return isWithinInterval(date, {\n start,\n end\n });\n}\n\nexport function formatNumber(numberToFormat: string) {\n return numberToFormat;\n}\n\nexport function getMinutes(date: Date) {\n return dateFnsGetMinutes(date);\n}\n\nexport function getDate(date: Date) {\n return dateFnsGetDate(date);\n}\n\nexport function setDate(date: Date, count: number) {\n return dateFnsSetDate(date, count);\n}\n\nexport function getWeek(date: Date) {\n return dateFnsGetWeek(date);\n}\n\nexport function getMonth(date: Date) {\n return dateFnsGetMonth(date);\n}\n\nexport function getDaysInMonth(date: Date) {\n return dateFnsGetDaysInMonth(date);\n}\n\nexport function setMonth(date: Date, count: number) {\n return dateFnsSetMonth(date, count);\n}\n\nexport function getMeridiemText(meridiem: \"am\" | \"pm\") {\n return meridiem === \"am\" ? \"AM\" : \"PM\";\n}\n\nexport function getNextMonth(date: Date) {\n return addMonths(date, 1);\n}\n\nexport function getPreviousMonth(date: Date) {\n return addMonths(date, -1);\n}\n\nexport function getMonthArray(date: Date) {\n const firstMonth = startOfYear(date);\n const monthArray = [firstMonth];\n\n while (monthArray.length < 12) {\n const prevMonth = monthArray[monthArray.length - 1]!;\n monthArray.push(getNextMonth(prevMonth));\n }\n\n return monthArray;\n}\n\nexport function mergeDateAndTime(date: Date, time: Date) {\n return setSeconds(\n setMinutes(setHours(date, getHours(time)), getMinutes(time)),\n getSeconds(time)\n );\n}\n\nexport function getWeekdays() {\n const now = new Date();\n\n return eachDayOfInterval({\n start: startOfWeek(now),\n end: endOfWeek(now)\n }).map(day => formatByString(day, \"EEEEEE\"));\n}\n\nexport function getWeekArray(date: Date) {\n const start = startOfWeek(startOfMonth(date));\n const end = endOfWeek(endOfMonth(date));\n let count = 0;\n let current = start;\n const nestedWeeks: Date[][] = [];\n let lastDay = null as null | number;\n while (isBefore(current, end)) {\n const weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] ??= [];\n const day = dateFnsGetDay(current);\n if (lastDay !== day) {\n lastDay = day;\n nestedWeeks[weekNumber].push(current);\n count += 1;\n }\n current = addDays(current, 1);\n }\n return nestedWeeks;\n}\n\nexport function getYearRange(start: Date, end: Date) {\n const startDate = startOfYear(start);\n const endDate = endOfYear(end);\n const years: Date[] = [];\n\n let current = startDate;\n while (isBefore(current, endDate)) {\n years.push(current);\n current = addYears(current, 1);\n }\n return years;\n}\n\n\n`;\n}\n","/* -------------------------------------------------------------------\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 { getFileHeader } from \"powerlines/lib/utilities/file-header\";\nimport { DatePluginContext } from \"../types/plugin\";\n\n/**\n * Generates the Powerlines configuration file.\n *\n * @param context - The build context containing runtime information.\n * @returns A string representing the configuration file content.\n */\nexport function dayjsModule(context: DatePluginContext) {\n return `\n/**\n * The Date module provides utility functions for date manipulation and formatting\n *\n * @module ${context.config.output.builtinPrefix}:date\n */\n\n${getFileHeader(context)}\n\nimport defaultDayjs, { QUnitType } from \"dayjs\";\nimport customParseFormatPlugin from \"dayjs/plugin/customParseFormat\";\nimport localizedFormatPlugin from \"dayjs/plugin/localizedFormat\";\nimport isBetweenPlugin from \"dayjs/plugin/isBetween\";\nimport weekOfYear from \"dayjs/plugin/weekOfYear\";\nimport {\n StormDateInterface,\n DateFormats,\n TimeUnit\n} from \"@powerlines/plugin-date/types/runtime\";\n\ndefaultDayjs.extend(customParseFormatPlugin);\ndefaultDayjs.extend(localizedFormatPlugin);\ndefaultDayjs.extend(isBetweenPlugin);\ndefaultDayjs.extend(weekOfYear);\n\ninterface Opts {\n locale?: string;\n /** Make sure that your dayjs instance extends customParseFormat and advancedFormat */\n instance?: typeof defaultDayjs;\n formats?: Partial<DateFormats>;\n}\n\ntype Dayjs = defaultDayjs.Dayjs;\ntype Constructor<TDate extends Dayjs> = (\n ...args: Parameters<typeof defaultDayjs>\n) => TDate;\nconst withLocale = <TDate extends Dayjs>(\n dayjs: any,\n locale?: string\n): Constructor<TDate> => (!locale ? dayjs : (...args) => dayjs(...args).locale(locale));\n\nexport const formats: DateFormats = {\n normalDateWithWeekday: \"ddd, MMM D\",\n normalDate: \"D MMMM\",\n shortDate: \"MMM D\",\n monthAndDate: \"MMMM D\",\n dayOfMonth: \"D\",\n year: \"YYYY\",\n month: \"MMMM\",\n monthShort: \"MMM\",\n monthAndYear: \"MMMM YYYY\",\n weekday: \"dddd\",\n weekdayShort: \"ddd\",\n minutes: \"mm\",\n hours12h: \"hh\",\n hours24h: \"HH\",\n seconds: \"ss\",\n fullTime: \"LT\",\n fullTime12h: \"hh:mm A\",\n fullTime24h: \"HH:mm\",\n fullDate: \"ll\",\n fullDateWithWeekday: \"dddd, LL\",\n fullDateTime: \"lll\",\n fullDateTime12h: \"ll hh:mm A\",\n fullDateTime24h: \"ll HH:mm\",\n keyboardDate: \"L\",\n keyboardDateTime: \"L LT\",\n keyboardDateTime12h: \"L hh:mm A\",\n keyboardDateTime24h: \"L HH:mm\",\n systemDateTime: \"L HH:mm:ss.SSS\",\n filePathDateTime: \"L_HH-mm-ss-SSS\"\n};\n\nexport let locale = $storm.env.DEFAULT_LOCALE;\n\nexport const dayjs = withLocale(defaultDayjs, locale);\n\nexport const type = \"dayjs\";\n\n/**\n * Creates a date object using the provided value.\n *\n * @remarks\n * This function creates a date object using the provided value. If the value is \\`null\\`, it returns \\`null\\`. If the value is \\`undefined\\`, it returns the current date. If the value is a string, it parses the string as a date. If the value is a number, it treats it as a timestamp. If the value is a date object, it returns the date object.\n *\n * @example\n * \\`\\`\\`ts\n * import { createDate } from \"storm:date\";\n *\n * const date = createDate(\"2023-10-01\");\n * console.log(date.format(\"YYYY-MM-DD\")); // Outputs: 2023-10-01\n * \\`\\`\\`\n *\n * @param value - The value to create the date object from.\n * @returns A date object or \\`null\\` if the value is \\`null\\`.\n */\nexport function createDate<\n TArg extends unknown = undefined,\n TResultingDate extends unknown = TArg extends null\n ? null\n : TArg extends undefined\n ? TDate\n : TDate | null\n>(value?: TArg): TResultingDate {\n if (value === null) {\n return null as TResultingDate;\n }\n\n return dayjs(value as any) as unknown as TResultingDate;\n}\n\nexport function is12HourCycleInCurrentLocale() {\n /* istanbul ignore next */\n return /A|a/.test(dayjs.Ls[dayjs.locale() || $storm.env.DEFAULT_LOCALE]?.formats?.LT ?? \"\");\n};\n\nexport function getCurrentLocaleCode() {\n return dayjs.locale() || $storm.env.DEFAULT_LOCALE;\n};\n\nexport function getFormatHelperText(format: string) {\n // @see https://github.com/iamkun/dayjs/blob/dev/src/plugin/localizedFormat/index.js\n const localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?)|./g;\n\n return (\n format\n .match(localFormattingTokens)\n ?.map((token) => {\n const firstCharacter = token[0];\n if (firstCharacter === \"L\") {\n /* istanbul ignore next */\n return (\n dayjs.Ls[dayjs.locale() || $storm.env.DEFAULT_LOCALE]?.formats[\n token as keyof ILocale[\"formats\"]\n ] ?? token\n );\n }\n return token;\n })\n .join(\"\")\n .replace(/a/gi, \"(a|p)m\")\n .toLocaleLowerCase() ?? format\n );\n};\n\nexport function parseISO(isoString: string) {\n return dayjs(isoString);\n};\n\nexport function toISO(value: Dayjs) {\n return value.toISOString();\n};\n\nexport function parse(value: any, format: string) {\n if (value === \"\") {\n return null;\n }\n\n return dayjs(value, format, dayjs.locale(), true);\n};\n\nexport function toJsDate(value: Dayjs) {\n return value.toDate();\n};\n\nexport function isValid(value: any) {\n return dayjs(value).isValid();\n};\n\nexport function isNull(date: Dayjs | null) {\n return date === null;\n};\n\nexport function getDiff(date: Dayjs, comparing: Dayjs | string, units?: Unit) {\n if (typeof comparing === \"string\") {\n comparing = dayjs(comparing);\n }\n\n if (!comparing.isValid()) {\n return 0;\n }\n\n return date.diff(comparing, units as QUnitType);\n};\n\nexport function isAfter(date: Dayjs, value: Dayjs) {\n return date.isAfter(value);\n};\n\nexport function isBefore(date: Dayjs, value: Dayjs) {\n return date.isBefore(value);\n};\n\nexport function isAfterDay(date: Dayjs, value: Dayjs) {\n return date.isAfter(value, \"day\");\n};\n\nexport function isBeforeDay(date: Dayjs, value: Dayjs) {\n return date.isBefore(value, \"day\");\n};\n\nexport function isAfterMonth(date: Dayjs, value: Dayjs) {\n return date.isAfter(value, \"month\");\n};\n\nexport function isBeforeMonth(date: Dayjs, value: Dayjs) {\n return date.isBefore(value, \"month\");\n};\n\nexport function isBeforeYear(date: Dayjs, value: Dayjs) {\n return date.isBefore(value, \"year\");\n};\n\nexport function isAfterYear(date: Dayjs, value: Dayjs) {\n return date.isAfter(value, \"year\");\n};\n\nexport function startOfDay(date: Dayjs) {\n return date.startOf(\"day\");\n};\n\nexport function endOfDay(date: Dayjs) {\n return date.endOf(\"day\");\n};\n\nexport function format(date: Dayjs, formatKey: keyof DateFormats) {\n return formatByString(date, formats[formatKey]);\n};\n\nexport function formatByString(date: Dayjs, formatString: string) {\n return dayjs(date).format(formatString);\n};\n\nexport function formatNumber(numberToFormat: string) {\n return numberToFormat;\n};\n\nexport function getHours(date: Dayjs) {\n return date.hour();\n};\n\nexport function addSeconds(date: Dayjs, count: number) {\n return count < 0\n ? (date.subtract(Math.abs(count), \"second\") as Dayjs)\n : (date.add(count, \"second\") as Dayjs);\n};\n\nexport function addMinutes(date: Dayjs, count: number) {\n return count < 0\n ? (date.subtract(Math.abs(count), \"minute\") as Dayjs)\n : (date.add(count, \"minute\") as Dayjs);\n};\n\nexport function addHours(date: Dayjs, count: number) {\n return count < 0\n ? (date.subtract(Math.abs(count), \"hour\") as Dayjs)\n : (date.add(count, \"hour\") as Dayjs);\n};\n\nexport function addDays(date: Dayjs, count: number) {\n return count < 0\n ? (date.subtract(Math.abs(count), \"day\") as Dayjs)\n : (date.add(count, \"day\") as Dayjs);\n};\n\nexport function addWeeks(date: Dayjs, count: number) {\n return count < 0\n ? (date.subtract(Math.abs(count), \"week\") as Dayjs)\n : (date.add(count, \"week\") as Dayjs);\n};\n\nexport function addMonths(date: Dayjs, count: number) {\n return count < 0\n ? (date.subtract(Math.abs(count), \"month\") as Dayjs)\n : (date.add(count, \"month\") as Dayjs);\n};\n\nexport function addYears(date: Dayjs, count: number) {\n return count < 0\n ? (date.subtract(Math.abs(count), \"year\") as Dayjs)\n : (date.add(count, \"year\") as Dayjs);\n};\n\nexport function setMonth(date: Dayjs, count: number) {\n return date.set(\"month\", count) as Dayjs;\n};\n\nexport function setHours(date: Dayjs, count: number) {\n return date.set(\"hour\", count) as Dayjs;\n};\n\nexport function getMinutes(date: Dayjs) {\n return date.minute();\n};\n\nexport function setMinutes(date: Dayjs, count: number) {\n return date.set(\"minute\", count) as Dayjs;\n};\n\nexport function getSeconds(date: Dayjs) {\n return date.second();\n};\n\nexport function setSeconds(date: Dayjs, count: number) {\n return date.set(\"second\", count) as Dayjs;\n};\n\nexport function getWeek(date: Dayjs) {\n return date.week();\n};\n\nexport function getMonth(date: Dayjs) {\n return date.month();\n};\n\nexport function getDate(date: Dayjs) {\n return date.date();\n};\n\nexport function setDate(date: Dayjs, count: number) {\n return date.set(\"date\", count) as Dayjs;\n};\n\nexport function getDaysInMonth(date: Dayjs) {\n return date.daysInMonth();\n};\n\nexport function isSameDay(date: Dayjs, comparing: Dayjs) {\n return date.isSame(comparing, \"day\");\n};\n\nexport function isSameMonth(date: Dayjs, comparing: Dayjs) {\n return date.isSame(comparing, \"month\");\n};\n\nexport function isSameYear(date: Dayjs, comparing: Dayjs) {\n return date.isSame(comparing, \"year\");\n};\n\nexport function isSameHour(date: Dayjs, comparing: Dayjs) {\n return date.isSame(comparing, \"hour\");\n};\n\nexport function getMeridiemText(meridiem: \"am\" | \"pm\") {\n return meridiem === \"am\" ? \"AM\" : \"PM\";\n};\n\nexport function startOfYear(date: Dayjs) {\n return date.startOf(\"year\") as Dayjs;\n};\n\nexport function endOfYear(date: Dayjs) {\n return date.endOf(\"year\") as Dayjs;\n};\n\nexport function startOfMonth(date: Dayjs) {\n return date.startOf(\"month\") as Dayjs;\n};\n\nexport function endOfMonth(date: Dayjs) {\n return date.endOf(\"month\") as Dayjs;\n};\n\nexport function startOfWeek(date: Dayjs) {\n return date.startOf(\"week\") as Dayjs;\n};\n\nexport function endOfWeek(date: Dayjs) {\n return date.endOf(\"week\") as Dayjs;\n};\n\nexport function getNextMonth(date: Dayjs) {\n return date.add(1, \"month\") as Dayjs;\n};\n\nexport function getPreviousMonth(date: Dayjs) {\n return date.subtract(1, \"month\") as Dayjs;\n};\n\nexport function getMonthArray(date: Dayjs) {\n const firstMonth = date.startOf(\"year\") as Dayjs;\n const monthArray = [firstMonth];\n\n while (monthArray.length < 12) {\n const prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(getNextMonth(prevMonth));\n }\n\n return monthArray;\n};\n\nexport function getYear(date: Dayjs) {\n return date.year();\n};\n\nexport function setYear(date: Dayjs, year: number) {\n return date.set(\"year\", year) as Dayjs;\n};\n\nexport function mergeDateAndTime(date: Dayjs, time: Dayjs) {\n return date.hour(time.hour()).minute(time.minute()).second(time.second()) as Dayjs;\n};\n\nexport function getWeekdays() {\n const start = dayjs().startOf(\"week\");\n return [0, 1, 2, 3, 4, 5, 6].map((diff) =>\n formatByString(start.add(diff, \"day\"), \"dd\")\n );\n};\n\nexport function isEqual(value: any, comparing: any) {\n if (value === null && comparing === null) {\n return true;\n }\n\n return dayjs(value).isSame(comparing);\n};\n\nexport function getWeekArray(date: Dayjs) {\n const start = dayjs(date).startOf(\"month\").startOf(\"week\") as Dayjs;\n const end = dayjs(date).endOf(\"month\").endOf(\"week\") as Dayjs;\n\n let count = 0;\n let current = start;\n const nestedWeeks: Dayjs[][] = [];\n\n while (current.isBefore(end)) {\n const weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n\n current = current.add(1, \"day\") as TDate;\n count += 1;\n }\n\n return nestedWeeks;\n};\n\nexport function getYearRange(start: Dayjs, end: Dayjs) {\n const startDate = start.startOf(\"year\");\n const endDate = end.endOf(\"year\");\n const years: Dayjs[] = [];\n\n let current = startDate;\n while (current.isBefore(endDate)) {\n years.push(current);\n current = current.add(1, \"year\");\n }\n\n return years;\n};\n\nexport function isWithinRange(date: Dayjs, [start, end]: [Dayjs, Dayjs]) {\n return date.isBetween(start, end, null, \"[]\");\n};\n\n\n`;\n}\n","/* -------------------------------------------------------------------\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 { getFileHeader } from \"powerlines/lib/utilities/file-header\";\nimport { DatePluginContext } from \"../types/plugin\";\n\n/**\n * Generates the Powerlines configuration file.\n *\n * @param context - The build context containing runtime information.\n * @returns A string representing the configuration file content.\n */\nexport function luxonModule(context: DatePluginContext) {\n return `\n/**\n * The Date module provides utility functions for date manipulation and formatting\n *\n * @module ${context.config.output.builtinPrefix}:date\n */\n\n${getFileHeader(context)}\n\nimport { DateTime, Settings, Info } from \"luxon\";\nimport {\n StormDateInterface,\n DateFormats,\n TimeUnit\n} from \"@powerlines/plugin-date/types/runtime\";\n\nexport const formats: DateFormats = {\n dayOfMonth: \"d\",\n fullDate: \"DD\",\n fullDateWithWeekday: \"DDDD\",\n fullDateTime: \"ff\",\n fullDateTime12h: \"DD, hh:mm a\",\n fullDateTime24h: \"DD, T\",\n fullTime: \"t\",\n fullTime12h: \"hh:mm a\",\n fullTime24h: \"HH:mm\",\n hours12h: \"hh\",\n hours24h: \"HH\",\n keyboardDate: \"D\",\n keyboardDateTime: \"D t\",\n keyboardDateTime12h: \"D hh:mm a\",\n keyboardDateTime24h: \"D T\",\n systemDateTime: \"D HH:mm:ss.SSS\",\n filePathDateTime: \"D_HH-mm-ss-SSS\",\n minutes: \"mm\",\n seconds: \"ss\",\n month: \"LLLL\",\n monthAndDate: \"MMMM d\",\n monthAndYear: \"LLLL yyyy\",\n monthShort: \"MMM\",\n weekday: \"cccc\",\n weekdayShort: \"ccc\",\n normalDate: \"d MMMM\",\n normalDateWithWeekday: \"EEE, MMM d\",\n shortDate: \"MMM d\",\n year: \"yyyy\",\n};\n\nexport let locale = $storm.env.DEFAULT_LOCALE;\n\nexport const type = \"luxon\";\n\n/**\n * Creates a date object using the provided value.\n *\n * @remarks\n * This function creates a date object using the provided value. If the value is \\`null\\`, it returns \\`null\\`. If the value is \\`undefined\\`, it returns the current date. If the value is a string, it parses the string as a date. If the value is a number, it treats it as a timestamp. If the value is a date object, it returns the date object.\n *\n * @example\n * \\`\\`\\`ts\n * import { createDate } from \"storm:date\";\n *\n * const date = createDate(\"2023-10-01\");\n * console.log(date.format(\"YYYY-MM-DD\")); // Outputs: 2023-10-01\n * \\`\\`\\`\n *\n * @param value - The value to create the date object from.\n * @returns A date object or \\`null\\` if the value is \\`null\\`.\n */\nexport function createDate<\n TArg extends unknown = undefined,\n TResultingDate extends unknown = TArg extends null\n ? null\n : TArg extends undefined\n ? DateTime\n : DateTime | null\n>(value?: TArg): TResultingDate {\n if (typeof value === \"undefined\") {\n return DateTime.local() as TResultingDate;\n }\n\n if (value === null) {\n return null as TResultingDate;\n }\n\n if (typeof value === \"string\") {\n return DateTime.fromJSDate(new Date(value), { locale }) as TResultingDate;\n }\n\n if (DateTime.isDateTime(value)) {\n return value as TResultingDate;\n }\n\n if (value instanceof Date) {\n return DateTime.fromJSDate(value, { locale }) as TResultingDate;\n }\n\n /* istanbul ignore next */\n return DateTime.local() as TResultingDate;\n}\n\nexport function toJsDate(value: DateTime) {\n return value.toJSDate();\n};\n\nexport function parseISO(isoString: string) {\n return DateTime.fromISO(isoString);\n};\n\nexport function toISO(value: DateTime) {\n return value.toISO({ format: \"extended\" });\n};\n\nexport function parse(value: string, formatString: string) {\n if (value === \"\") {\n return null;\n }\n\n return DateTime.fromFormat(value, formatString, { locale });\n};\n\n/* istanbul ignore next */\nexport function is12HourCycleInCurrentLocale() {\n if (typeof Intl === \"undefined\" || typeof Intl.DateTimeFormat === \"undefined\") {\n return true; // Luxon defaults to en-US if Intl not found\n }\n\n return Boolean(\n new Intl.DateTimeFormat(this.locale, { hour: \"numeric\" })?.resolvedOptions()?.hour12\n );\n};\n\nexport function getFormatHelperText(format: string) {\n // Unfortunately there is no way for luxon to retrieve readable formats from localized format\n return \"\";\n};\n\n/* istanbul ignore next */\nexport function getCurrentLocaleCode() {\n return this.locale || Settings.defaultLocale;\n};\n\nexport function addSeconds(date: DateTime, count: number) {\n return date.plus({ seconds: count });\n};\n\nexport function addMinutes(date: DateTime, count: number) {\n return date.plus({ minutes: count });\n};\n\nexport function addHours(date: DateTime, count: number) {\n return date.plus({ hours: count });\n};\n\nexport function addDays(date: DateTime, count: number) {\n return date.plus({ days: count });\n};\n\nexport function addWeeks(date: DateTime, count: number) {\n return date.plus({ weeks: count });\n};\n\nexport function addMonths(date: DateTime, count: number) {\n return date.plus({ months: count });\n};\n\nexport function addYears(date: DateTime, count: number) {\n return date.plus({ years: count });\n};\n\nexport function isValid(value: any) {\n if (DateTime.isDateTime(value)) {\n return value.isValid;\n }\n\n if (value === null) {\n return false;\n }\n\n return createDate(value)?.isValid ?? false;\n};\n\nexport function isEqual(value: any, comparing: any) {\n if (value === null && comparing === null) {\n return true;\n }\n\n // make sure that null will not be passed to createDate\n if (value === null || comparing === null) {\n return false;\n }\n\n if (!createDate(comparing)) {\n /* istanbul ignore next */\n return false;\n }\n\n return createDate(value)?.equals(createDate(comparing) as DateTime) ?? false;\n};\n\nexport function isSameDay(date: DateTime, comparing: DateTime) {\n return date.hasSame(comparing, \"day\");\n};\n\nexport function isSameMonth(date: DateTime, comparing: DateTime) {\n return date.hasSame(comparing, \"month\");\n};\n\nexport function isSameYear(date: DateTime, comparing: DateTime) {\n return date.hasSame(comparing, \"year\");\n};\n\nexport function isSameHour(date: DateTime, comparing: DateTime) {\n return date.hasSame(comparing, \"hour\");\n};\n\nexport function isAfter(value: DateTime, comparing: DateTime) {\n return value > comparing;\n};\n\nexport function isBefore(value: DateTime, comparing: DateTime) {\n return value < comparing;\n};\n\nexport function isBeforeDay(value: DateTime, comparing: DateTime) {\n const diff = value.diff(comparing.startOf(\"day\"), \"days\").toObject();\n return diff.days! < 0;\n};\n\nexport function isAfterDay(value: DateTime, comparing: DateTime) {\n const diff = value.diff(comparing.endOf(\"day\"), \"days\").toObject();\n return diff.days! > 0;\n};\n\nexport function isBeforeMonth(value: DateTime, comparing: DateTime) {\n const diff = value.diff(comparing.startOf(\"month\"), \"months\").toObject();\n return diff.months! < 0;\n};\n\nexport function isAfterMonth(value: DateTime, comparing: DateTime) {\n const diff = value.diff(comparing.startOf(\"month\"), \"months\").toObject();\n return diff.months! > 0;\n};\n\nexport function isBeforeYear(value: DateTime, comparing: DateTime) {\n const diff = value.diff(comparing.startOf(\"year\"), \"years\").toObject();\n return diff.years! < 0;\n};\n\nexport function isAfterYear(value: DateTime, comparing: DateTime) {\n const diff = value.diff(comparing.endOf(\"year\"), \"years\").toObject();\n return diff.years! > 0;\n};\n\nexport function getDiff(value: DateTime, comparing: DateTime | string, unit?: TimeUnit) {\n if (typeof comparing === \"string\") {\n comparing = DateTime.fromJSDate(new Date(comparing));\n }\n\n if (!comparing.isValid) {\n return 0;\n }\n\n if (unit) {\n return Math.floor(value.diff(comparing).as(unit));\n }\n\n return value.diff(comparing).as(\"millisecond\");\n};\n\nexport function startOfDay(value: DateTime) {\n return value.startOf(\"day\");\n};\n\nexport function endOfDay(value: DateTime) {\n return value.endOf(\"day\");\n};\n\nexport function format(date: DateTime, formatKey: keyof DateFormats) {\n return formatByString(date, formats[formatKey]);\n};\n\nexport function formatByString(date: DateTime, format: string) {\n return date.setLocale(locale).toFormat(format);\n};\n\nexport function formatNumber(numberToFormat: string) {\n return numberToFormat;\n};\n\nexport function getHours(value: DateTime) {\n return value.get(\"hour\");\n};\n\nexport function setHours(value: DateTime, count: number) {\n return value.set({ hour: count });\n};\n\nexport function getMinutes(value: DateTime) {\n return value.get(\"minute\");\n};\n\nexport function setMinutes(value: DateTime, count: number) {\n return value.set({ minute: count });\n};\n\nexport function getSeconds(value: DateTime) {\n return value.get(\"second\");\n};\n\nexport function setSeconds(value: DateTime, count: number) {\n return value.set({ second: count });\n};\n\nexport function getWeek(value: DateTime) {\n return value.get(\"weekNumber\");\n};\n\nexport function getMonth(value: DateTime) {\n // See https://github.com/moment/luxon/blob/master/docs/moment.md#major-functional-differences\n return value.get(\"month\") - 1;\n};\n\nexport function getDaysInMonth(value: DateTime) {\n return value.daysInMonth;\n};\n\nexport function setMonth(value: DateTime, count: number) {\n return value.set({ month: count + 1 });\n};\n\nexport function getYear(value: DateTime) {\n return value.get(\"year\");\n};\n\nexport function setYear(value: DateTime, year: number) {\n return value.set({ year });\n};\n\nexport function getDate(value: DateTime) {\n return value.get(\"day\");\n};\n\nexport function setDate(value: DateTime, day: number) {\n return value.set({ day });\n};\n\nexport function mergeDateAndTime(date: DateTime, time: DateTime) {\n return date.set({\n second: time.second,\n hour: time.hour,\n minute: time.minute,\n });\n};\n\nexport function startOfYear(value: DateTime) {\n return value.startOf(\"year\");\n};\n\nexport function endOfYear(value: DateTime) {\n return value.endOf(\"year\");\n};\n\nexport function startOfMonth(value: DateTime) {\n return value.startOf(\"month\");\n};\n\nexport function endOfMonth(value: DateTime) {\n return value.endOf(\"month\");\n};\n\nexport function startOfWeek(value: DateTime) {\n return value.startOf(\"week\");\n};\n\nexport function endOfWeek(value: DateTime) {\n return value.endOf(\"week\");\n};\n\nexport function getNextMonth(value: DateTime) {\n return value.plus({ months: 1 });\n};\n\nexport function getPreviousMonth(value: DateTime) {\n return value.minus({ months: 1 });\n};\n\nexport function getMonthArray(date: DateTime) {\n const firstMonth = date.startOf(\"year\");\n const monthArray = [firstMonth];\n\n while (monthArray.length < 12) {\n const prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(this.getNextMonth(prevMonth));\n }\n\n return monthArray;\n};\n\nexport function getWeekdays() {\n return Info.weekdaysFormat(\"short\", { locale });\n};\n\nexport function getWeekArray(date: DateTime) {\n const { days } = date\n .endOf(\"month\")\n .endOf(\"week\")\n .diff(date.startOf(\"month\").startOf(\"week\"), \"days\")\n .toObject();\n\n const weeks: DateTime[][] = [];\n new Array<number>(Math.round(days!))\n .fill(0)\n .map((_, i) => i)\n .map((day) => date.startOf(\"month\").startOf(\"week\").plus({ days: day }))\n .forEach((v, i) => {\n if (i === 0 || (i % 7 === 0 && i > 6)) {\n weeks.push([v]);\n return;\n }\n\n weeks[weeks.length - 1].push(v);\n });\n\n return weeks;\n};\n\nexport function getYearRange(start: DateTime, end: DateTime) {\n const startDate = start.startOf(\"year\");\n const endDate = end.endOf(\"year\");\n\n let current = startDate;\n const years: DateTime[] = [];\n\n while (current < endDate) {\n years.push(current);\n current = current.plus({ year: 1 });\n }\n\n return years;\n};\n\nexport function getMeridiemText(meridiem: \"am\" | \"pm\") {\n return Info.meridiems({ locale }).find(\n (v) => v.toLowerCase() === meridiem.toLowerCase()\n )!;\n};\n\nexport function isNull(date: DateTime | null) {\n return date === null;\n};\n\nexport function isWithinRange(date: DateTime, [start, end]: [DateTime, DateTime]) {\n return (\n date.equals(start) ||\n date.equals(end) ||\n (isAfter(date, start) && isBefore(date, end))\n );\n};\n\n\n`;\n}\n","/* -------------------------------------------------------------------\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 { getFileHeader } from \"powerlines/lib/utilities/file-header\";\nimport { DatePluginContext } from \"../types/plugin\";\n\n/**\n * Generates the Powerlines configuration file.\n *\n * @param context - The build context containing runtime information.\n * @returns A string representing the configuration file content.\n */\nexport function momentModule(context: DatePluginContext) {\n return `\n/**\n * The Date module provides utility functions for date manipulation and formatting\n *\n * @module ${context.config.output.builtinPrefix}:date\n */\n\n${getFileHeader(context)}\n\nimport defaultMoment, { LongDateFormatKey } from \"moment\";\nimport {\n StormDateInterface,\n DateFormats,\n TimeUnit\n} from \"@powerlines/plugin-date/types/runtime\";\n\ntype Moment = defaultMoment.Moment;\n\nexport const formats: DateFormats = {\n normalDateWithWeekday: \"ddd, MMM D\",\n normalDate: \"D MMMM\",\n shortDate: \"MMM D\",\n monthAndDate: \"MMMM D\",\n dayOfMonth: \"D\",\n year: \"YYYY\",\n month: \"MMMM\",\n monthShort: \"MMM\",\n monthAndYear: \"MMMM YYYY\",\n weekday: \"dddd\",\n weekdayShort: \"ddd\",\n minutes: \"mm\",\n hours12h: \"hh\",\n hours24h: \"HH\",\n seconds: \"ss\",\n fullTime: \"LT\",\n fullTime12h: \"hh:mm A\",\n fullTime24h: \"HH:mm\",\n fullDate: \"ll\",\n fullDateWithWeekday: \"dddd, LL\",\n fullDateTime: \"lll\",\n fullDateTime12h: \"ll hh:mm A\",\n fullDateTime24h: \"ll HH:mm\",\n keyboardDate: \"L\",\n keyboardDateTime: \"L LT\",\n keyboardDateTime12h: \"L hh:mm A\",\n keyboardDateTime24h: \"L HH:mm\",\n systemDateTime: \"L HH:mm:ss.SSS\",\n filePathDateTime: \"L_HH-mm-ss-SSS\"\n};\n\nexport let locale = $storm.env.DEFAULT_LOCALE;\n\nexport const type = \"moment\";\n\nconst moment = defaultMoment;\n\n/**\n * Creates a date object using the provided value.\n *\n * @remarks\n * This function creates a date object using the provided value. If the value is \\`null\\`, it returns \\`null\\`. If the value is \\`undefined\\`, it returns the current date. If the value is a string, it parses the string as a date. If the value is a number, it treats it as a timestamp. If the value is a date object, it returns the date object.\n *\n * @example\n * \\`\\`\\`ts\n * import { createDate } from \"storm:date\";\n *\n * const date = createDate(\"2023-10-01\");\n * console.log(date.format(\"YYYY-MM-DD\")); // Outputs: 2023-10-01\n * \\`\\`\\`\n *\n * @param value - The value to create the date object from.\n * @returns A date object or \\`null\\` if the value is \\`null\\`.\n */\nexport function createDate<\n TArg extends unknown = undefined,\n TResultingDate extends unknown = TArg extends null\n ? null\n : TArg extends undefined\n ? defaultMoment.Moment\n : defaultMoment.Moment | null\n>(value?: TArg): TResultingDate {\n if (value === null) {\n return null as TResultingDate;\n }\n\n const _moment = moment(value);\n if (locale) {\n _moment.locale(locale);\n }\n\n return _moment as TResultingDate;\n}\n\n\nexport function is12HourCycleInCurrentLocale(): boolean {\n return /A|a/.test(\n moment.localeData(getCurrentLocaleCode()).longDateFormat(\"LT\")\n );\n};\n\nexport function getFormatHelperText(format: string) {\n // @see https://github.com/moment/moment/blob/develop/src/lib/format/format.js#L6\n const localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})|./g;\n\n return (\n format\n .match(localFormattingTokens)\n ?.map((token) => {\n const firstCharacter = token[0];\n if (firstCharacter === \"L\" || firstCharacter === \";\") {\n return moment\n .localeData(getCurrentLocaleCode())\n .longDateFormat(token as LongDateFormatKey);\n }\n\n return token;\n })\n .join(\"\")\n .replace(/a/gi, \"(a|p)m\")\n .toLocaleLowerCase() ?? format\n );\n};\n\nexport function getCurrentLocaleCode() {\n return locale || moment.locale();\n};\n\nexport function parseISO(isoString: string) {\n return moment(isoString, true);\n};\n\nexport function toISO(value: Moment) {\n return value.toISOString();\n};\n\nexport function parse(value: string, format: string) {\n if (value === \"\") {\n return null;\n }\n\n if (locale) {\n return moment(value, format, locale, true);\n }\n\n return moment(value, format, true);\n};\n\nexport function toJsDate(value: Moment) {\n return value.toDate();\n};\n\nexport function isValid(value: any) {\n return moment(value).isValid();\n};\n\nexport function isNull(date: Moment) {\n return date === null;\n};\n\nexport function getDiff(date: Moment, comparing: Moment | string, unit?: TimeUnit) {\n if (!moment(comparing).isValid()) {\n return 0;\n }\n\n return date.diff(comparing, unit);\n};\n\nexport function isAfter(date: Moment, value: Moment) {\n return date.isAfter(value);\n};\n\nexport function isBefore(date: Moment, value: Moment) {\n return date.isBefore(value);\n};\n\nexport function isAfterDay(date: Moment, value: Moment) {\n return date.isAfter(value, \"day\");\n};\n\nexport function isBeforeDay(date: Moment, value: Moment) {\n return date.isBefore(value, \"day\");\n};\n\nexport function isBeforeMonth(date: Moment, value: Moment) {\n return date.isBefore(value, \"month\");\n};\n\nexport function isAfterMonth(date: Moment, value: Moment) {\n return date.isAfter(value, \"month\");\n};\n\nexport function isBeforeYear(date: Moment, value: Moment) {\n return date.isBefore(value, \"year\");\n};\n\nexport function isAfterYear(date: Moment, value: Moment) {\n return date.isAfter(value, \"year\");\n};\n\nexport function startOfDay(date: Moment) {\n return date.clone().startOf(\"day\");\n};\n\nexport function endOfDay(date: Moment) {\n return date.clone().endOf(\"day\");\n};\n\nexport function format(date: Moment, formatKey: keyof DateFormats) {\n return formatByString(date, formats[formatKey]);\n};\n\nexport function formatByString(date: Moment, formatString: string) {\n const clonedDate = date.clone();\n if (locale) {\n clonedDate.locale(locale);\n }\n return clonedDate.format(formatString);\n};\n\nexport function formatNumber(numberToFormat: string) {\n return numberToFormat;\n};\n\nexport function getHours(date: Moment) {\n return date.get(\"hours\");\n};\n\nexport function addSeconds(date: Moment, count: number) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"seconds\")\n : date.clone().add(count, \"seconds\");\n};\n\nexport function addMinutes(date: Moment, count: number) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"minutes\")\n : date.clone().add(count, \"minutes\");\n};\n\nexport function addHours(date: Moment, count: number) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"hours\")\n : date.clone().add(count, \"hours\");\n};\n\nexport function addDays(date: Moment, count: number) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"days\")\n : date.clone().add(count, \"days\");\n};\n\nexport function addWeeks(date: Moment, count: number) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"weeks\")\n : date.clone().add(count, \"weeks\");\n};\n\nexport function addMonths(date: Moment, count: number) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"months\")\n : date.clone().add(count, \"months\");\n};\n\nexport function addYears(date: Moment, count: number) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"years\")\n : date.clone().add(count, \"years\");\n};\n\nexport function setHours(date: Moment, count: number) {\n return date.clone().hours(count);\n};\n\nexport function getMinutes(date: Moment) {\n return date.get(\"minutes\");\n};\n\nexport function setMinutes(date: Moment, count: number) {\n return date.clone().minutes(count);\n};\n\nexport function getSeconds(date: Moment) {\n return date.get(\"seconds\");\n};\n\nexport function setSeconds(date: Moment, count: number) {\n return date.clone().seconds(count);\n};\n\nexport function getWeek(date: Moment) {\n return date.get(\"week\");\n};\n\nexport function getMonth(date: Moment) {\n return date.get(\"month\");\n};\n\nexport function getDaysInMonth(date: Moment) {\n return date.daysInMonth();\n};\n\nexport function isSameDay(date: Moment, comparing: Moment) {\n return date.isSame(comparing, \"day\");\n};\n\nexport function isSameMonth(date: Moment, comparing: Moment) {\n return date.isSame(comparing, \"month\");\n};\n\nexport function isSameYear(date: Moment, comparing: Moment) {\n return date.isSame(comparing, \"year\");\n};\n\nexport function isSameHour(date: Moment, comparing: Moment) {\n return date.isSame(comparing, \"hour\");\n};\n\nexport function setMonth(date: Moment, count: number) {\n return date.clone().month(count);\n};\n\nexport function getMeridiemText(meridiem: \"am\" | \"pm\") {\n if (is12HourCycleInCurrentLocale()) {\n // AM/PM translation only possible in those who have 12 hour cycle in locale.\n return moment\n .localeData(getCurrentLocaleCode())\n .meridiem(meridiem === \"am\" ? 0 : 13, 0, false);\n }\n\n return meridiem === \"am\" ? \"AM\" : \"PM\"; // fallback for de, ru, ...etc\n};\n\nexport function startOfYear(date: Moment) {\n return date.clone().startOf(\"year\");\n};\n\nexport function endOfYear(date: Moment) {\n return date.clone().endOf(\"year\");\n};\n\nexport function startOfMonth(date: Moment) {\n return date.clone().startOf(\"month\");\n};\n\nexport function endOfMonth(date: Moment) {\n return date.clone().endOf(\"month\");\n};\n\nexport function startOfWeek(date: Moment) {\n return date.clone().startOf(\"week\");\n};\n\nexport function endOfWeek(date: Moment) {\n return date.clone().endOf(\"week\");\n};\n\nexport function getNextMonth(date: Moment) {\n return date.clone().add(1, \"month\");\n};\n\nexport function getPreviousMonth(date: Moment) {\n return date.clone().subtract(1, \"month\");\n};\n\nexport function getMonthArray(date: Moment) {\n const firstMonth = date.clone().startOf(\"year\");\n const monthArray = [firstMonth];\n\n while (monthArray.length < 12) {\n const prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(getNextMonth(prevMonth));\n }\n\n return monthArray;\n};\n\nexport function getYear(date: Moment) {\n return date.get(\"year\");\n};\n\nexport function setYear(date: Moment, year: number) {\n return date.clone().set(\"year\", year);\n};\n\nexport function getDate(date: Moment) {\n return date.get(\"date\");\n};\n\nexport function setDate(date: Moment, day: number) {\n return date.clone().set(\"date\", day);\n};\n\nexport function mergeDateAndTime(date: Moment, time: Moment) {\n return date.hour(time.hour()).minute(time.minute()).second(time.second());\n};\n\nexport function getWeekdays() {\n return moment.weekdaysShort(true);\n};\n\nexport function isEqual(value: any, comparing: any) {\n if (value === null && comparing === null) {\n return true;\n }\n\n return moment(value).isSame(comparing);\n};\n\nexport function getWeekArray(date: Moment) {\n const start = date.clone().startOf(\"month\").startOf(\"week\");\n const end = date.clone().endOf(\"month\").endOf(\"week\");\n\n let count = 0;\n let current = start;\n const nestedWeeks: Moment[][] = [];\n\n while (current.isBefore(end)) {\n const weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n\n current = current.clone().add(1, \"day\");\n count += 1;\n }\n\n return nestedWeeks;\n};\n\nexport function getYearRange(start: Moment, end: Moment) {\n const startDate = moment(start).startOf(\"year\");\n const endDate = moment(end).endOf(\"year\");\n const years: Moment[] = [];\n\n let current = startDate;\n while (current.isBefore(endDate)) {\n years.push(current);\n current = current.clone().add(1, \"year\");\n }\n\n return years;\n};\n\nexport function isWithinRange(date: Moment, [start, end]: [Moment, Moment]) {\n return date.isBetween(start, end, null, \"[]\");\n};\n\n\n`;\n}\n","/* -------------------------------------------------------------------\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 env from \"@powerlines/plugin-env\";\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport defu from \"defu\";\nimport { Plugin } from \"powerlines/types/plugin\";\nimport { dateFnsModule } from \"./components/date-fns\";\nimport { dayjsModule } from \"./components/dayjs\";\nimport { luxonModule } from \"./components/luxon\";\nimport { momentModule } from \"./components/moment\";\nimport {\n DatePluginContext,\n DatePluginOptions,\n DatePluginUserConfig\n} from \"./types/plugin\";\n\nexport * from \"./components\";\nexport * from \"./types\";\n\n/**\n * A Powerlines plugin to assist in developing other Powerlines plugins.\n */\nexport function plugin(\n options: DatePluginOptions = {}\n): Plugin<DatePluginContext> {\n return {\n name: \"date\",\n dependsOn: [env(options.env)],\n async config() {\n this.log(\n LogLevelLabel.TRACE,\n \"Providing default configuration for the Powerlines `date` build plugin.\"\n );\n\n const config = {\n date: defu(options, {\n type: \"date-fns\"\n })\n } as DatePluginUserConfig;\n\n if (\n !config.date!.type ||\n ![\"date-fns\", \"dayjs\", \"luxon\", \"moment\"].includes(config.date!.type)\n ) {\n if (config.date!.type) {\n this.log(\n LogLevelLabel.WARN,\n `Invalid date library type \"${config.date!.type}\" specified. Defaulting to \"date-fns\".`\n );\n }\n\n config.date!.type = \"date-fns\";\n }\n\n this.log(LogLevelLabel.DEBUG, `Using date library: ${config.date!.type}`);\n\n return config;\n },\n async configResolved() {\n this.log(\n LogLevelLabel.TRACE,\n `Environment plugin configuration has been resolved for the Powerlines project.`\n );\n\n this.dependencies[this.config.date.type] = \"latest\";\n },\n async prepare() {\n this.log(\n LogLevelLabel.TRACE,\n `Preparing the Date runtime artifacts for the Powerlines project.`\n );\n\n let dateModule!: (context: DatePluginContext) => string;\n switch (this.config.date.type) {\n case \"dayjs\":\n dateModule = dayjsModule;\n break;\n case \"luxon\":\n dateModule = luxonModule;\n break;\n case \"moment\":\n dateModule = momentModule;\n break;\n case \"date-fns\":\n default:\n // Default to date-fns if no type is specified or if the type is not recognized\n dateModule = dateFnsModule;\n break;\n }\n\n await this.emitBuiltin(\n await Promise.resolve(dateModule(this)),\n \"date\",\n \"date.ts\"\n );\n }\n };\n}\n\nexport default plugin;\n"],"mappings":"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"}
|