diff --git a/.changeset/neat-instance-properties.md b/.changeset/neat-instance-properties.md
new file mode 100644
index 00000000..ed1ab473
--- /dev/null
+++ b/.changeset/neat-instance-properties.md
@@ -0,0 +1,5 @@
+---
+'@ankhorage/studio': patch
+---
+
+Replace the raw Properties prop dump with a metadata-driven instance authoring model backed by the released ZORA authoring authority registry.
diff --git a/README.md b/README.md
index 84c9ee1d..0e76fa95 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
# @ankhorage/studio
-        
+        
Standalone Studio authoring package for Ankhorage apps.
@@ -34,6 +34,7 @@ Manage Studio development and projects through the Ankh CLI.
- [cloneWithNewIds sequence](././paradox/diagrams/sequences/clone-with-new-ids.mmd)
- [createNodeFromCatalogEntry sequence](././paradox/diagrams/sequences/create-node-from-catalog-entry.mmd)
- [findNodeById sequence](././paradox/diagrams/sequences/find-node-by-id.mmd)
+- [resolveStudioInstancePropertyGroups sequence](././paradox/diagrams/sequences/resolve-studio-instance-property-groups.mmd)
- [updateNodeInTree sequence](././paradox/diagrams/sequences/update-node-in-tree.mmd)
- [validateInsertRecipe sequence](././paradox/diagrams/sequences/validate-insert-recipe.mmd)
- [validateNodePlacement sequence](././paradox/diagrams/sequences/validate-node-placement.mmd)
diff --git a/bun.lock b/bun.lock
index aab05f18..c8cffb6f 100644
--- a/bun.lock
+++ b/bun.lock
@@ -17,7 +17,7 @@
"@ankhorage/supabase-auth": "^1.1.2",
"@ankhorage/supabase-vault": "^0.2.4",
"@ankhorage/templates": "^3.0.0",
- "@ankhorage/zora": "^2.9.1",
+ "@ankhorage/zora": "^2.9.3",
"@ankhorage/zora-chess": "^0.1.2",
"@ankhorage/zora-tabletop": "^0.0.5",
"@fastify/cors": "^11.2.0",
@@ -123,7 +123,7 @@
"@ankhorage/templates": ["@ankhorage/templates@3.0.0", "", { "dependencies": { "@ankhorage/contracts": "^4.0.0", "@ankhorage/zora": "^2.8.0" }, "bin": { "ankhorage-templates": "dist/cli/standalone.js" } }, "sha512-aflIReBWhuXpjLLToWHr13zDCuEOvjebfdeGBS5qYfbUg93gJV6xakDNN51tNgCAiroeG6jkytDqrqRPj3ZkJw=="],
- "@ankhorage/zora": ["@ankhorage/zora@2.9.1", "", { "dependencies": { "@ankhorage/color-theory": "^0.0.8", "@ankhorage/contracts": "^4.0.1", "@ankhorage/surface": "^2.1.1" }, "peerDependencies": { "@expo/vector-icons": ">=14.0.0", "@react-native-picker/picker": ">=2.0.0", "expo-font": "^55.0.6", "expo-linear-gradient": ">=14.0.0", "react": ">=18.2.0", "react-native": ">=0.72.0" }, "optionalPeers": ["@expo/vector-icons", "expo-font"] }, "sha512-rrLxfgaO6BO7bonKcr8nVgQoMlS2O1RUGtTbxXpY4L6cy33SrttCBhETKq+sxR0YerLcJQwL87Mjq9eOsLHVfA=="],
+ "@ankhorage/zora": ["@ankhorage/zora@2.9.3", "", { "dependencies": { "@ankhorage/color-theory": "^0.0.8", "@ankhorage/contracts": "^4.0.1", "@ankhorage/surface": "^2.1.1" }, "peerDependencies": { "@expo/vector-icons": ">=14.0.0", "@react-native-picker/picker": ">=2.0.0", "expo-font": "^55.0.6", "expo-linear-gradient": ">=14.0.0", "react": ">=18.2.0", "react-native": ">=0.72.0" }, "optionalPeers": ["@expo/vector-icons", "expo-font"] }, "sha512-DgavI+3j7qPU8RplPtPu2D0jaJ4nLqILcIhgeqoQwK2YRN4eF40zjroNskZoRbSmlOeqAZeiSpMHT+dB2fkvgg=="],
"@ankhorage/zora-chess": ["@ankhorage/zora-chess@0.1.2", "", { "dependencies": { "chess.js": "^1.4.0" }, "peerDependencies": { "@ankhorage/zora": ">=0.1.0", "react": ">=18.2.0", "react-native": ">=0.72.0" } }, "sha512-uVZyqJzvnyAzCNrrys4UGR/ioVgYxgcKbY/5ET0d7tyOt5joaKqiQMNEbQL+5gby34mqhLjmBSS3xt8mxZgRQg=="],
diff --git a/docs/instance-properties.md b/docs/instance-properties.md
new file mode 100644
index 00000000..255b70c9
--- /dev/null
+++ b/docs/instance-properties.md
@@ -0,0 +1,32 @@
+# Metadata-driven instance Properties
+
+`/ankh/properties/{nodeId}` is the canonical per-node authoring surface.
+
+The page consumes the released ZORA component metadata registry at the concrete app/UI composition
+boundary. Package-neutral Studio helpers receive a structural metadata registry from their caller
+and never import or recreate concrete ZORA metadata.
+
+Only props classified with:
+
+```ts
+{
+ authoring: {
+ authority: 'instance';
+ }
+}
+```
+
+become fields. Theme-owned props and props without authoring metadata are intentionally absent.
+
+The initial editor set supports strings, numbers, booleans, and declared enum choices. Unsupported
+future authoring types remain explicit rather than falling back to arbitrary JSON or string editors.
+
+Node identity such as the node ID, component type, and optional alias remains read-only context. It
+is not treated as component prop metadata.
+
+Property changes update the selected node through the existing canonical manifest mutation and
+persistence flow. Studio does not create a second unsaved Properties model.
+
+This narrows the architectural gap between `apps/studio` and generated Ankhorage apps: both consume
+the same manifest nodes and package-owned component metadata, while Studio adds only the authoring
+interaction.
diff --git a/package.json b/package.json
index 0341a190..1f61efc4 100644
--- a/package.json
+++ b/package.json
@@ -140,6 +140,10 @@
"types": "./dist/manifestState.d.ts",
"import": "./dist/manifestState.js"
},
+ "./propertiesAuthoringModel": {
+ "types": "./dist/propertiesAuthoringModel.d.ts",
+ "import": "./dist/propertiesAuthoringModel.js"
+ },
"./manifestSync": {
"types": "./dist/manifestSync.d.ts",
"import": "./dist/manifestSync.js"
@@ -240,7 +244,7 @@
"@ankhorage/supabase-auth": "^1.1.2",
"@ankhorage/supabase-vault": "^0.2.4",
"@ankhorage/templates": "^3.0.0",
- "@ankhorage/zora": "^2.9.1",
+ "@ankhorage/zora": "^2.9.3",
"@ankhorage/zora-chess": "^0.1.2",
"@ankhorage/zora-tabletop": "^0.0.5",
"@fastify/cors": "^11.2.0",
diff --git a/paradox/badges/npm.svg b/paradox/badges/npm.svg
index 8baf9f6b..e8360975 100644
--- a/paradox/badges/npm.svg
+++ b/paradox/badges/npm.svg
@@ -1,7 +1,7 @@
-
Exports: None
+
+ src/host/generatedOAuthLifecycle.e2e.test.ts
+ Referenced module
+
+ Dependencies: src/host/layout/templates/auth/oauth.ts
+
+ Exports: None
+
src/host/layout/templates/auth/adapter.ts
Dependencies: None
Exports: getAuthAdapterTs
+
+ src/host/layout/templates/auth/callback.test.ts
+ Referenced module
+
+ Dependencies:
+ src/host/layout/templates/auth/callback.ts
+
+ Exports: None
+
src/host/layout/templates/auth/callback.ts
Exports: getAuthOAuthCallbackTsx
+
+ src/host/layout/templates/auth/oauth.test.ts
+ Referenced module
+
+ Dependencies: src/host/layout/templates/auth/oauth.ts
+
+ Exports: None
+
src/index.test.ts
src/index.ts
Configured entrypoint
@@ -3457,8 +3597,9 @@ src/index.ts
ActionDefinition, addNodeToTree,
buildInsertCatalogEntries, canAcceptChild,
cloneWithNewIds, createNodeFromCatalogEntry,
- deriveProjectId, findNodeById,
- generateStudioId, getInsertCatalogCategoryLabel,
+ createStudioInstancePropertyPatch, deriveProjectId,
+ findNodeById, generateStudioId,
+ getInsertCatalogCategoryLabel,
InsertCatalogComponentEntry, InsertCatalogDisabledReason,
InsertCatalogDisabledReasonCode, InsertCatalogEntry,
InsertCatalogEntryBase, InsertCatalogEntryKind,
@@ -3483,15 +3624,21 @@ src/index.ts
ProjectSortKey, removeNodeFromTree,
resolveDefaultInsertPlacement,
resolveInsertCatalogEntries, resolveInsertPlacement,
+ resolveStudioInstancePropertyFields,
+ resolveStudioInstancePropertyGroups,
STUDIO_INSERT_RECIPES, STUDIO_PACKAGE_BOUNDARY,
STUDIO_PACKAGE_NAME, STUDIO_PUBLIC_CONTRACTS,
StudioActionPayloadField, StudioActionPayloadPrimitive,
StudioActionPayloadSchema, StudioAdminRouteId,
StudioAdminRoutePath, StudioAdminStaticRoutePath,
- StudioCommand, StudioComponentBlueprint,
- StudioComponentMeta, StudioComponentMetaRegistry,
- StudioContextValue, StudioEvent,
- StudioIdGenerator, StudioLocale,
+ StudioAuthoringComponentMeta, StudioAuthoringMetaRegistry,
+ StudioAuthoringPropSchema, StudioCommand,
+ StudioComponentBlueprint, StudioComponentMeta,
+ StudioComponentMetaRegistry, StudioContextValue,
+ StudioEvent, StudioIdGenerator,
+ StudioInstancePropertyEditorKind,
+ StudioInstancePropertyField, StudioInstancePropertyGroup,
+ StudioInstancePropertyValue, StudioLocale,
StudioManifest, StudioMode, StudioModuleId,
StudioNodeId, StudioPackageBoundary,
StudioPanelId, StudioProjectId,
@@ -3784,6 +3931,31 @@ src/projectAuthHealth.ts
ProjectOAuthProviderHealthStatus
+
+ src/projectAuthRuntimeDiagnostics.test.ts
+ Referenced module
+
+ Dependencies: src/projectAuthHealth.ts,
+ src/projectAuthRuntimeDiagnostics.ts
+
+ Exports: None
+
+
+ src/projectAuthRuntimeDiagnostics.ts
+ Referenced module
+ Dependencies: src/projectAuthHealth.ts
+
+ Exports: applyProjectAuthRuntimeDiagnostics,
+ ProjectAuthRuntimeDiagnostics,
+ ProjectAuthRuntimeRolloutStatus
+
+
src/projectWorkspaceContracts.ts
StudioProjectSummary
+
+ src/propertiesAuthoringModel.test.ts
+ Referenced module
+ Dependencies: src/index.ts
+ Exports: None
+
+
+ src/propertiesAuthoringModel.ts
+ Referenced module
+ Dependencies: None
+
+ Exports: createStudioInstancePropertyPatch,
+ resolveStudioInstancePropertyFields,
+ resolveStudioInstancePropertyGroups,
+ StudioAuthoringComponentMeta, StudioAuthoringMetaRegistry,
+ StudioAuthoringPropSchema,
+ StudioInstancePropertyEditorKind,
+ StudioInstancePropertyField, StudioInstancePropertyGroup,
+ StudioInstancePropertyValue
+
+
src/root.test.ts
Referenced module
@@ -3888,7 +4084,7 @@ src/root.test.ts
src/root.ts
Referenced module
@@ -3902,7 +4098,8 @@ src/root.ts
canAcceptChild, cloneWithNewIds,
CreateCategoriesScreen, CreateCategoryTemplatesScreen,
createNodeFromCatalogEntry,
- CreateProjectFromTemplateScreen, deriveProjectId,
+ CreateProjectFromTemplateScreen,
+ createStudioInstancePropertyPatch, deriveProjectId,
findNodeById, findProjectSecretUsages,
findRawSecretResponseKey, generateStudioId,
getInsertCatalogCategoryLabel,
@@ -3931,15 +4128,21 @@ src/root.ts
RAW_SECRET_RESPONSE_KEYS, RawSecretResponseKeyMatch,
removeNodeFromTree, resolveDefaultInsertPlacement,
resolveInsertCatalogEntries, resolveInsertPlacement,
+ resolveStudioInstancePropertyFields,
+ resolveStudioInstancePropertyGroups,
STUDIO_INSERT_RECIPES, STUDIO_PACKAGE_BOUNDARY,
STUDIO_PACKAGE_NAME, STUDIO_PUBLIC_CONTRACTS,
StudioActionPayloadField, StudioActionPayloadPrimitive,
StudioActionPayloadSchema, StudioAdminRouteId,
StudioAdminRoutePath, StudioAdminStaticRoutePath,
- StudioApp, StudioCommand,
- StudioComponentBlueprint, StudioComponentMeta,
- StudioComponentMetaRegistry, StudioContextValue,
- StudioEvent, StudioIdGenerator, StudioLocale,
+ StudioApp, StudioAuthoringComponentMeta,
+ StudioAuthoringMetaRegistry, StudioAuthoringPropSchema,
+ StudioCommand, StudioComponentBlueprint,
+ StudioComponentMeta, StudioComponentMetaRegistry,
+ StudioContextValue, StudioEvent,
+ StudioIdGenerator, StudioInstancePropertyEditorKind,
+ StudioInstancePropertyField, StudioInstancePropertyGroup,
+ StudioInstancePropertyValue, StudioLocale,
StudioManifest, StudioMode, StudioModuleId,
StudioNodeId, StudioPackageBoundary,
StudioPanelId, StudioProjectId,
@@ -4451,6 +4654,21 @@ src/studioAdminRouteModel.ts
StudioAdminRouteDefinition, StudioAdminRouteRenderState
+
+ src/studioRuntimeApi.test.ts
+ Referenced module
+ Dependencies: src/studioRuntimeApi.ts
+ Exports: None
+
+
+ src/studioRuntimeApi.ts
+ Referenced module
+ Dependencies: None
+ Exports: syncStudioRuntime
+
src/ui/admin/adminPagePrimitives.tsx
src/ui/admin/adminPageUtils.ts
Referenced module
Dependencies: None
-
- Exports: formatPrimitive, readRecord,
- readString
-
+ Exports: readRecord, readString
src/ui/admin/AnkhAdminPage.test.ts
@@ -4755,7 +4970,7 @@ src/ui/admin/pages/AuthAdminPage.test.ts
src/ui/admin/pages/AuthAdminPage.tsx
Referenced module
@@ -4763,7 +4978,7 @@ src/ui/admin/pages/AuthAdminPage.tsx
Dependencies: src/authSettings.ts,
src/core/StudioContext.ts, src/index.ts,
src/projectAuthApi.ts, src/projectAuthHealth.ts,
- src/projectSecretApi.ts,
+ src/projectSecretApi.ts, src/studioRuntimeApi.ts,
src/ui/admin/AuthAdminSession.tsx,
src/ui/admin/pages/adminAuthCredentialFlow.ts,
src/ui/admin/pages/adminAuthHealthFlow.ts,
@@ -4794,15 +5009,14 @@ src/ui/admin/pages/PropertiesAdminPage.test.ts
src/ui/admin/pages/PropertiesAdminPage.tsx
Referenced module
Dependencies: src/core/StudioContext.ts,
- src/manifestState.ts,
- src/ui/admin/adminPagePrimitives.tsx,
- src/ui/admin/adminPageUtils.ts
+ src/manifestState.ts, src/propertiesAuthoringModel.ts,
+ src/ui/admin/adminPagePrimitives.tsx
Exports: PropertiesAdminPage
@@ -4961,7 +5175,7 @@ src/index.ts
data-search="ACTION_REGISTRY value src/index.ts "
>
ACTION_REGISTRY
- value • src/index.ts:369:14
+ value • src/index.ts:373:14
Export paths: src/index.ts
Related symbols: None
@@ -4972,7 +5186,7 @@ ACTION_REGISTRY
data-search="ActionDefinition type src/index.ts StudioActionPayloadSchema"
>
ActionDefinition
- type • src/index.ts:279:1
+ type • src/index.ts:283:1
Export paths: src/index.ts
@@ -5037,7 +5251,7 @@
ActionDefinition
data-search='addNodeToTree value src/index.ts StudioComponentMetaRegistry (args: { root: UiNode; targetId: string; newNode: UiNode; componentMeta: StudioComponentMetaRegistry; mode?: "append" | "prepend"; }) => UiNode'
>
addNodeToTree
-
value • src/index.ts:591:14
+
value • src/index.ts:595:14
Export paths: src/index.ts
@@ -5083,7 +5297,7 @@
Signature
data-search="buildInsertCatalogEntries function src/index.ts InsertCatalogEntry InsertRecipe StudioComponentMetaRegistry (args: { componentMeta: StudioComponentMetaRegistry; recipes?: readonly InsertRecipe[]; }) => InsertCatalogEntry[]"
>
buildInsertCatalogEntries
-
function • src/index.ts:1303:1
+
function • src/index.ts:1307:1
Export paths: src/index.ts
@@ -5130,7 +5344,7 @@
Signature
data-search="canAcceptChild function src/index.ts StudioComponentMetaRegistry (args: { parentType: string; childType: string; componentMeta: StudioComponentMetaRegistry; }) => boolean"
>
canAcceptChild
-
function • src/index.ts:750:1
+
function • src/index.ts:754:1
Export paths: src/index.ts
@@ -5175,7 +5389,7 @@
Signature
data-search="cloneWithNewIds value src/index.ts StudioIdGenerator (node: UiNode, createId?: StudioIdGenerator) => UiNode"
>
cloneWithNewIds
-
value • src/index.ts:516:14
+
value • src/index.ts:520:14
Export paths: src/index.ts
@@ -5220,7 +5434,7 @@
Signature
data-search="createNodeFromCatalogEntry function src/index.ts InsertCatalogEntry StudioComponentMetaRegistry StudioIdGenerator (entry: InsertCatalogEntry, componentMeta: StudioComponentMetaRegistry, createId?: StudioIdGenerator) => UiNode"
>
createNodeFromCatalogEntry
-
function • src/index.ts:1222:1
+
function • src/index.ts:1226:1
Export paths: src/index.ts
@@ -5274,7 +5488,7 @@
Signature
data-search="findNodeById value src/index.ts (root: UiNode, id: string) => UiNode | null"
>
findNodeById
-
value • src/index.ts:533:14
+
value • src/index.ts:537:14
Export paths: src/index.ts
Related symbols: None
@@ -5314,7 +5528,7 @@
Signature
data-search="generateStudioId value src/index.ts (prefix?: string | undefined) => string"
>
generateStudioId
-
value • src/index.ts:509:14
+
value • src/index.ts:513:14
Export paths: src/index.ts
Related symbols: None
@@ -5348,7 +5562,7 @@
Signature
data-search="getInsertCatalogCategoryLabel function src/index.ts (category: string) => string"
>
getInsertCatalogCategoryLabel
-
function • src/index.ts:1148:1
+
function • src/index.ts:1152:1
Export paths: src/index.ts
Related symbols: None
@@ -5382,7 +5596,7 @@
Signature
data-search="InsertCatalogComponentEntry type src/index.ts InsertCatalogDisabledReason InsertCatalogEntryStatus NodePlacement"
>
InsertCatalogComponentEntry
-
type • src/index.ts:257:1
+
type • src/index.ts:261:1
Export paths: src/index.ts
@@ -5484,7 +5698,7 @@
InsertCatalogComponentEntry
data-search="InsertCatalogDisabledReason type src/index.ts InsertCatalogDisabledReasonCode InsertRecipeIssue"
>
InsertCatalogDisabledReason
-
type • src/index.ts:239:1
+
type • src/index.ts:243:1
Export paths: src/index.ts
@@ -5536,7 +5750,7 @@
InsertCatalogDisabledReason
data-search="InsertCatalogDisabledReasonCode unknown src/index.ts "
>
InsertCatalogDisabledReasonCode
-
unknown • src/index.ts:216:1
+
unknown • src/index.ts:220:1
Export paths: src/index.ts
Related symbols: None
@@ -5547,7 +5761,7 @@
InsertCatalogDisabledReasonCode
data-search="InsertCatalogEntry unknown src/index.ts "
>
InsertCatalogEntry
-
unknown • src/index.ts:267:1
+
unknown • src/index.ts:271:1
Export paths: src/index.ts
Related symbols: None
@@ -5558,7 +5772,7 @@
InsertCatalogEntry
data-search="InsertCatalogEntryBase type src/index.ts InsertCatalogDisabledReason InsertCatalogEntryKind InsertCatalogEntryStatus NodePlacement"
>
InsertCatalogEntryBase
-
type • src/index.ts:245:1
+
type • src/index.ts:249:1
Export paths: src/index.ts
@@ -5654,7 +5868,7 @@
InsertCatalogEntryBase
data-search="InsertCatalogEntryKind unknown src/index.ts "
>
InsertCatalogEntryKind
-
unknown • src/index.ts:213:1
+
unknown • src/index.ts:217:1
Export paths: src/index.ts
Related symbols: None
@@ -5665,7 +5879,7 @@
InsertCatalogEntryKind
data-search="InsertCatalogEntryStatus unknown src/index.ts "
>
InsertCatalogEntryStatus
-
unknown • src/index.ts:214:1
+
unknown • src/index.ts:218:1
Export paths: src/index.ts
Related symbols: None
@@ -5676,7 +5890,7 @@
InsertCatalogEntryStatus
data-search="InsertCatalogRecipeEntry type src/index.ts InsertCatalogDisabledReason InsertCatalogEntryStatus InsertRecipe NodePlacement"
>
InsertCatalogRecipeEntry
-
type • src/index.ts:262:1
+
type • src/index.ts:266:1
Export paths: src/index.ts
@@ -5779,7 +5993,7 @@
InsertCatalogRecipeEntry
data-search="insertNodeAtPlacement function src/index.ts InsertNodeAtPlacementArgs InsertNodeAtPlacementResult (args: InsertNodeAtPlacementArgs) => InsertNodeAtPlacementResult | null"
>
insertNodeAtPlacement
-
function • src/index.ts:980:1
+
function • src/index.ts:984:1
Export paths: src/index.ts
@@ -5820,7 +6034,7 @@
Signature
data-search="InsertNodeAtPlacementArgs type src/index.ts NodePlacement StudioComponentMetaRegistry"
>
InsertNodeAtPlacementArgs
-
type • src/index.ts:923:1
+
type • src/index.ts:927:1
Export paths: src/index.ts
@@ -5879,7 +6093,7 @@
InsertNodeAtPlacementArgs
data-search="InsertNodeAtPlacementResult type src/index.ts "
>
InsertNodeAtPlacementResult
-
type • src/index.ts:930:1
+
type • src/index.ts:934:1
Export paths: src/index.ts
Related symbols: None
@@ -5918,7 +6132,7 @@
InsertNodeAtPlacementResult
data-search="InsertRecipe type src/index.ts InsertRecipeNode"
>
InsertRecipe
-
type • src/index.ts:224:1
+
type • src/index.ts:228:1
Export paths: src/index.ts
@@ -5983,7 +6197,7 @@
InsertRecipe
data-search="InsertRecipeIssue type src/index.ts "
>
InsertRecipeIssue
-
type • src/index.ts:232:1
+
type • src/index.ts:236:1
Export paths: src/index.ts
Related symbols: None
@@ -6036,7 +6250,7 @@
InsertRecipeIssue
data-search="InsertRecipeNode type src/index.ts "
>
InsertRecipeNode
-
type • src/index.ts:219:1
+
type • src/index.ts:223:1
Export paths: src/index.ts
Related symbols: None
@@ -6075,7 +6289,7 @@
InsertRecipeNode
data-search="ModuleDefinition type src/index.ts "
>
ModuleDefinition
-
type • src/index.ts:287:1
+
type • src/index.ts:291:1
Export paths: src/index.ts
Related symbols: None
@@ -6128,7 +6342,7 @@
ModuleDefinition
data-search='moveNodeInTree value src/index.ts (root: UiNode, nodeId: string, direction: "up" | "down") => UiNode'
>
moveNodeInTree
-
value • src/index.ts:624:14
+
value • src/index.ts:628:14
Export paths: src/index.ts
Related symbols: None
@@ -6175,7 +6389,7 @@
Signature
data-search="moveNodeToPlacement function src/index.ts MoveNodeToPlacementArgs MoveNodeToPlacementResult (args: MoveNodeToPlacementArgs) => MoveNodeToPlacementResult | null"
>
moveNodeToPlacement
-
function • src/index.ts:1048:1
+
function • src/index.ts:1052:1
Export paths: src/index.ts
@@ -6215,7 +6429,7 @@
Signature
data-search="MoveNodeToPlacementArgs type src/index.ts NodePlacement StudioComponentMetaRegistry"
>
MoveNodeToPlacementArgs
-
type • src/index.ts:1007:1
+
type • src/index.ts:1011:1
Export paths: src/index.ts
@@ -6274,7 +6488,7 @@
MoveNodeToPlacementArgs
data-search="MoveNodeToPlacementResult type src/index.ts "
>
MoveNodeToPlacementResult
-
type • src/index.ts:1014:1
+
type • src/index.ts:1018:1
Export paths: src/index.ts
Related symbols: None
@@ -6313,7 +6527,7 @@
MoveNodeToPlacementResult
data-search="NodePlacement type src/index.ts PlacementKind"
>
NodePlacement
-
type • src/index.ts:175:1
+
type • src/index.ts:179:1
Export paths: src/index.ts
@@ -6371,7 +6585,7 @@
NodePlacement
data-search="PlacementFailureCode unknown src/index.ts "
>
PlacementFailureCode
-
unknown • src/index.ts:182:1
+
unknown • src/index.ts:186:1
Export paths: src/index.ts
Related symbols: None
@@ -6382,7 +6596,7 @@
PlacementFailureCode
data-search="PlacementFailureReason type src/index.ts PlacementFailureCode"
>
PlacementFailureReason
-
type • src/index.ts:194:1
+
type • src/index.ts:198:1
Export paths: src/index.ts
@@ -6426,7 +6640,7 @@
PlacementFailureReason
data-search="PlacementKind unknown src/index.ts "
>
PlacementKind
-
unknown • src/index.ts:173:1
+
unknown • src/index.ts:177:1
Export paths: src/index.ts
Related symbols: None
@@ -6437,7 +6651,7 @@
PlacementKind
data-search="PlacementResolutionResult unknown src/index.ts "
>
PlacementResolutionResult
-
unknown • src/index.ts:206:1
+
unknown • src/index.ts:210:1
Export paths: src/index.ts
Related symbols: None
@@ -6448,7 +6662,7 @@
PlacementResolutionResult
data-search="PlacementValidationResult unknown src/index.ts "
>
PlacementValidationResult
-
unknown • src/index.ts:199:1
+
unknown • src/index.ts:203:1
Export paths: src/index.ts
Related symbols: None
@@ -6459,7 +6673,7 @@
PlacementValidationResult
data-search="removeNodeFromTree value src/index.ts (root: UiNode, nodeId: string) => UiNode | null"
>
removeNodeFromTree
-
value • src/index.ts:573:14
+
value • src/index.ts:577:14
Export paths: src/index.ts
Related symbols: None
@@ -6499,7 +6713,7 @@
Signature
data-search="resolveDefaultInsertPlacement function src/index.ts PlacementResolutionResult StudioComponentMetaRegistry (args: { root: UiNode; selectedNodeId: string | null; childType: string; componentMeta: StudioComponentMetaRegistry; }) => PlacementResolutionResult"
>
resolveDefaultInsertPlacement
-
function • src/index.ts:878:1
+
function • src/index.ts:882:1
Export paths: src/index.ts
@@ -6545,7 +6759,7 @@
Signature
data-search="resolveInsertCatalogEntries function src/index.ts InsertCatalogEntry StudioComponentMetaRegistry (args: { entries: readonly InsertCatalogEntry[]; root: UiNode | null; selectedNodeId: string | null; componentMeta: StudioComponentMetaRegistry; }) => InsertCatalogEntry[]"
>
resolveInsertCatalogEntries
-
function • src/index.ts:1345:1
+
function • src/index.ts:1349:1
Export paths: src/index.ts
@@ -6592,7 +6806,7 @@
Signature
data-search="resolveInsertPlacement function src/index.ts PlacementKind PlacementResolutionResult StudioComponentMetaRegistry (args: { root: UiNode; targetNodeId: string; childType: string; componentMeta: StudioComponentMetaRegistry; kind: PlacementKind; }) => PlacementResolutionResult"
>
resolveInsertPlacement
-
function • src/index.ts:817:1
+
function • src/index.ts:821:1
Export paths: src/index.ts
@@ -6639,7 +6853,7 @@
Signature
data-search="STUDIO_INSERT_RECIPES value src/index.ts "
>
STUDIO_INSERT_RECIPES
-
value • src/index.ts:1115:14
+
value • src/index.ts:1119:14
Export paths: src/index.ts
Related symbols: None
@@ -6650,7 +6864,7 @@
STUDIO_INSERT_RECIPES
data-search="STUDIO_PACKAGE_BOUNDARY value src/index.ts "
>
STUDIO_PACKAGE_BOUNDARY
-
value • src/index.ts:57:14
+
value • src/index.ts:58:14
Export paths: src/index.ts
Related symbols: None
@@ -6661,7 +6875,7 @@
STUDIO_PACKAGE_BOUNDARY
data-search="STUDIO_PACKAGE_NAME value src/index.ts "
>
STUDIO_PACKAGE_NAME
-
value • src/index.ts:49:14
+
value • src/index.ts:50:14
Export paths: src/index.ts
Related symbols: None
@@ -6672,7 +6886,7 @@
STUDIO_PACKAGE_NAME
data-search="STUDIO_PUBLIC_CONTRACTS value src/index.ts "
>
STUDIO_PUBLIC_CONTRACTS
-
value • src/index.ts:85:14
+
value • src/index.ts:86:14
Export paths: src/index.ts
Related symbols: None
@@ -6683,7 +6897,7 @@
STUDIO_PUBLIC_CONTRACTS
data-search="StudioActionPayloadField type src/index.ts StudioActionPayloadPrimitive"
>
StudioActionPayloadField
-
type • src/index.ts:271:1
+
type • src/index.ts:275:1
Export paths: src/index.ts
@@ -6734,7 +6948,7 @@
StudioActionPayloadField
data-search="StudioActionPayloadPrimitive unknown src/index.ts "
>
StudioActionPayloadPrimitive
-
unknown • src/index.ts:269:1
+
unknown • src/index.ts:273:1
Export paths: src/index.ts
Related symbols: None
@@ -6745,7 +6959,7 @@
StudioActionPayloadPrimitive
data-search="StudioActionPayloadSchema unknown src/index.ts "
>
StudioActionPayloadSchema
-
unknown • src/index.ts:277:1
+
unknown • src/index.ts:281:1
Export paths: src/index.ts
Related symbols: None
@@ -6756,7 +6970,7 @@
StudioActionPayloadSchema
data-search="StudioAdminRouteId unknown src/index.ts "
>
StudioAdminRouteId
-
unknown • src/index.ts:117:1
+
unknown • src/index.ts:121:1
Export paths: src/index.ts
Related symbols: None
@@ -6767,7 +6981,7 @@
StudioAdminRouteId
data-search="StudioAdminRoutePath unknown src/index.ts "
>
StudioAdminRoutePath
-
unknown • src/index.ts:140:1
+
unknown • src/index.ts:144:1
Export paths: src/index.ts
Related symbols: None
@@ -6778,7 +6992,7 @@
StudioAdminRoutePath
data-search="StudioAdminStaticRoutePath unknown src/index.ts "
>
StudioAdminStaticRoutePath
-
unknown • src/index.ts:129:1
+
unknown • src/index.ts:133:1
Export paths: src/index.ts
Related symbols: None
@@ -6789,7 +7003,7 @@
StudioAdminStaticRoutePath
data-search="StudioCommand unknown src/index.ts "
>
StudioCommand
-
unknown • src/index.ts:312:1
+
unknown • src/index.ts:316:1
Export paths: src/index.ts
Related symbols: None
@@ -6800,7 +7014,7 @@
StudioCommand
data-search="StudioComponentBlueprint type src/index.ts "
>
StudioComponentBlueprint
-
type • src/index.ts:296:1
+
type • src/index.ts:300:1
Export paths: src/index.ts
Related symbols: None
@@ -6839,7 +7053,7 @@
StudioComponentBlueprint
data-search="StudioComponentMeta type src/index.ts StudioComponentBlueprint"
>
StudioComponentMeta
-
type • src/index.ts:301:1
+
type • src/index.ts:305:1
Export paths: src/index.ts
@@ -6897,7 +7111,7 @@
StudioComponentMeta
data-search="StudioComponentMetaRegistry unknown src/index.ts "
>
StudioComponentMetaRegistry
-
unknown • src/index.ts:308:1
+
unknown • src/index.ts:312:1
Export paths: src/index.ts
Related symbols: None
@@ -6908,7 +7122,7 @@
StudioComponentMetaRegistry
data-search="StudioContextValue type src/index.ts InsertCatalogEntry NodePlacement StudioAdminRouteId StudioLocale StudioManifest StudioMode StudioModuleId StudioNodeId StudioPanelId StudioSaveStatus StudioScreenId ThemeUpdates"
>
StudioContextValue
-
type • src/index.ts:328:1
+
type • src/index.ts:332:1
Export paths: src/index.ts
@@ -7335,7 +7549,7 @@
StudioContextValue
data-search="StudioEvent unknown src/index.ts "
>
StudioEvent
-
unknown • src/index.ts:321:1
+
unknown • src/index.ts:325:1
Export paths: src/index.ts
Related symbols: None
@@ -7346,7 +7560,7 @@
StudioEvent
data-search="StudioIdGenerator unknown src/index.ts "
>
StudioIdGenerator
-
unknown • src/index.ts:310:1
+
unknown • src/index.ts:314:1
Export paths: src/index.ts
Related symbols: None
@@ -7357,7 +7571,7 @@
StudioIdGenerator
data-search="StudioLocale unknown src/index.ts "
>
StudioLocale
-
unknown • src/index.ts:112:1
+
unknown • src/index.ts:116:1
Export paths: src/index.ts
Related symbols: None
@@ -7368,7 +7582,7 @@
StudioLocale
data-search="StudioManifest unknown src/index.ts "
>
StudioManifest
-
unknown • src/index.ts:142:1
+
unknown • src/index.ts:146:1
Export paths: src/index.ts
Related symbols: None
@@ -7379,7 +7593,7 @@
StudioManifest
data-search="StudioMode unknown src/index.ts "
>
StudioMode
-
unknown • src/index.ts:114:1
+
unknown • src/index.ts:118:1
Export paths: src/index.ts
Related symbols: None
@@ -7390,7 +7604,7 @@
StudioMode
data-search="StudioModuleId unknown src/index.ts "
>
StudioModuleId
-
unknown • src/index.ts:111:1
+
unknown • src/index.ts:115:1
Export paths: src/index.ts
Related symbols: None
@@ -7401,7 +7615,7 @@
StudioModuleId
data-search="StudioNodeId unknown src/index.ts "
>
StudioNodeId
-
unknown • src/index.ts:109:1
+
unknown • src/index.ts:113:1
Export paths: src/index.ts
Related symbols: None
@@ -7412,7 +7626,7 @@
StudioNodeId
data-search="StudioPackageBoundary type src/index.ts "
>
StudioPackageBoundary
-
type • src/index.ts:51:1
+
type • src/index.ts:52:1
Export paths: src/index.ts
Related symbols: None
@@ -7458,7 +7672,7 @@
StudioPackageBoundary
data-search="StudioPanelId unknown src/index.ts "
>
StudioPanelId
-
unknown • src/index.ts:116:1
+
unknown • src/index.ts:120:1
Export paths: src/index.ts
Related symbols: None
@@ -7469,7 +7683,7 @@
StudioPanelId
data-search="StudioProjectId unknown src/index.ts "
>
StudioProjectId
-
unknown • src/index.ts:107:1
+
unknown • src/index.ts:111:1
Export paths: src/index.ts
Related symbols: None
@@ -7480,7 +7694,7 @@
StudioProjectId
data-search="StudioPublicContract unknown src/index.ts "
>
StudioPublicContract
-
unknown • src/index.ts:105:1
+
unknown • src/index.ts:109:1
Export paths: src/index.ts
Related symbols: None
@@ -7491,7 +7705,7 @@
StudioPublicContract
data-search="StudioSaveStatus unknown src/index.ts "
>
StudioSaveStatus
-
unknown • src/index.ts:115:1
+
unknown • src/index.ts:119:1
Export paths: src/index.ts
Related symbols: None
@@ -7502,7 +7716,7 @@
StudioSaveStatus
data-search="StudioScreenId unknown src/index.ts "
>
StudioScreenId
-
unknown • src/index.ts:110:1
+
unknown • src/index.ts:114:1
Export paths: src/index.ts
Related symbols: None
@@ -7513,7 +7727,7 @@
StudioScreenId
data-search="StudioSelectionState type src/index.ts StudioAdminRouteId StudioPanelId"
>
StudioSelectionState
-
type • src/index.ts:153:1
+
type • src/index.ts:157:1
Export paths: src/index.ts
@@ -7579,7 +7793,7 @@
StudioSelectionState
data-search="StudioSessionId unknown src/index.ts "
>
StudioSessionId
-
unknown • src/index.ts:108:1
+
unknown • src/index.ts:112:1
Export paths: src/index.ts
Related symbols: None
@@ -7590,7 +7804,7 @@
StudioSessionId
data-search="StudioSessionState type src/index.ts StudioMode StudioSaveStatus"
>
StudioSessionState
-
type • src/index.ts:161:1
+
type • src/index.ts:165:1
Export paths: src/index.ts
@@ -7684,7 +7898,7 @@
StudioSessionState
data-search="ThemeUpdates unknown src/index.ts "
>
ThemeUpdates
-
unknown • src/index.ts:148:1
+
unknown • src/index.ts:152:1
Export paths: src/index.ts
Related symbols: None
@@ -7695,7 +7909,7 @@
ThemeUpdates
data-search="TPL_SCREEN_EMPTY value src/index.ts "
>
TPL_SCREEN_EMPTY
-
value • src/index.ts:461:14
+
value • src/index.ts:465:14
Export paths: src/index.ts
Related symbols: None
@@ -7706,7 +7920,7 @@
TPL_SCREEN_EMPTY
data-search="updateNodeInTree value src/index.ts (root: UiNode, id: string, newProps: Record<string, unknown>) => UiNode"
>
updateNodeInTree
-
value • src/index.ts:545:14
+
value • src/index.ts:549:14
Export paths: src/index.ts
Related symbols: None
@@ -7753,7 +7967,7 @@
Signature
data-search="validateInsertRecipe function src/index.ts InsertRecipe InsertRecipeIssue StudioComponentMetaRegistry (recipe: InsertRecipe, componentMeta: StudioComponentMetaRegistry) => InsertRecipeIssue | null"
>
validateInsertRecipe
-
function • src/index.ts:1165:1
+
function • src/index.ts:1169:1
Export paths: src/index.ts
@@ -7801,7 +8015,7 @@
Signature
data-search="validateNodePlacement function src/index.ts NodePlacement PlacementValidationResult StudioComponentMetaRegistry (args: { root: UiNode; placement: NodePlacement; childType: string; componentMeta: StudioComponentMetaRegistry; }) => PlacementValidationResult"
>
validateNodePlacement
-
function • src/index.ts:762:1
+
function • src/index.ts:766:1
Export paths: src/index.ts
@@ -8516,78 +8730,527 @@
StudioProjectSummary
- src/templateCatalogContracts.ts
+ src/propertiesAuthoringModel.ts
- TemplateCatalog
- type • src/templateCatalogContracts.ts:21:1
+ createStudioInstancePropertyPatch
+ function • src/propertiesAuthoringModel.ts:89:1
Export paths: src/index.ts
Related symbols:
- - TemplateCatalogCategory
+ - StudioInstancePropertyValue
-
-
-
-
- | Member |
- Kind |
- Type |
- Required |
- Description |
-
-
-
-
- categories |
- property |
- TemplateCatalogCategory[] |
- yes |
- |
-
-
-
+
+
Signature
+
+(node: UiNode, propertyName: string, value: StudioInstancePropertyValue | undefined) => Readonly<Record<string, unknown>>
+
+
+
+ | Parameter |
+ Type |
+ Required |
+ Description |
+
+
+
+
+ node |
+ UiNode |
+ yes |
+ |
+
+
+ propertyName |
+ string |
+ yes |
+ |
+
+
+ value |
+ StudioInstancePropertyValue | undefined |
+ yes |
+ |
+
+
+
+
+ Returns:
+ Readonly<Record<string, unknown>>
+
+
- TemplateCatalogCategory
- type • src/templateCatalogContracts.ts:10:1
+ resolveStudioInstancePropertyFields
+ function • src/propertiesAuthoringModel.ts:45:1
Export paths: src/index.ts
Related symbols:
- - TemplateCatalogTemplate
+ - StudioAuthoringComponentMeta
+ - StudioInstancePropertyField
-
-
-
-
- | Member |
- Kind |
- Type |
- Required |
- Description |
-
-
-
-
- focusAreas |
- property |
- readonly string[] |
- yes |
- |
-
+
+
Signature
+
+(node: UiNode, registry: Readonly<Record<string, StudioAuthoringComponentMeta | undefined>>) => readonly StudioInstancePropertyField[]
+
+
+
+ | Parameter |
+ Type |
+ Required |
+ Description |
+
+
+
+
+ node |
+ UiNode |
+ yes |
+ |
+
+
+ registry |
+
+ Readonly<Record<string, StudioAuthoringComponentMeta |
+ undefined>>
+ |
+ yes |
+ |
+
+
+
+
+ Returns: readonly StudioInstancePropertyField[]
+
+
+
+
+ resolveStudioInstancePropertyGroups
+ function • src/propertiesAuthoringModel.ts:74:1
+
+ Export paths: src/index.ts
+
+
Related symbols:
+
+ - StudioAuthoringComponentMeta
+ - StudioInstancePropertyGroup
+
+
+
+
Signature
+
+(node: UiNode, registry: Readonly<Record<string, StudioAuthoringComponentMeta | undefined>>) => readonly StudioInstancePropertyGroup[]
+
+
+
+ | Parameter |
+ Type |
+ Required |
+ Description |
+
+
+
+
+ node |
+ UiNode |
+ yes |
+ |
+
+
+ registry |
+
+ Readonly<Record<string, StudioAuthoringComponentMeta |
+ undefined>>
+ |
+ yes |
+ |
+
+
+
+
+ Returns: readonly StudioInstancePropertyGroup[]
+
+
+
+
+ StudioAuthoringComponentMeta
+ type • src/propertiesAuthoringModel.ts:14:1
+
+ Export paths: src/index.ts
+
+
Related symbols:
+
+ - StudioAuthoringPropSchema
+
+
+
+
+
+
+ | Member |
+ Kind |
+ Type |
+ Required |
+ Description |
+
+
+
+
+ name |
+ property |
+ string |
+ yes |
+ |
+
+
+ props |
+ property |
+
+ Readonly<Record<string, StudioAuthoringPropSchema>>
+ |
+ yes |
+ |
+
+
+
+
+
+ StudioAuthoringMetaRegistry
+ unknown • src/propertiesAuthoringModel.ts:19:1
+
+ Export paths: src/index.ts
+ Related symbols: None
+
+
+ StudioAuthoringPropSchema
+ type • src/propertiesAuthoringModel.ts:3:1
+
+ Export paths: src/index.ts
+ Related symbols: None
+
+
+
+
+ | Member |
+ Kind |
+ Type |
+ Required |
+ Description |
+
+
+
+
+ authoring |
+ property |
+ { readonly authority: string; } | undefined |
+ no |
+ |
+
+
+ category |
+ property |
+ string |
+ yes |
+ |
+
+
+ default |
+ property |
+ unknown |
+ no |
+ |
+
+
+ enum |
+ property |
+ readonly (string | number)[] | undefined |
+ no |
+ |
+
+
+ label |
+ property |
+ string | undefined |
+ no |
+ |
+
+
+ type |
+ property |
+ string |
+ yes |
+ |
+
+
+
+
+
+ StudioInstancePropertyEditorKind
+ unknown • src/propertiesAuthoringModel.ts:23:1
+
+ Export paths: src/index.ts
+ Related symbols: None
+
+
+ StudioInstancePropertyField
+ type • src/propertiesAuthoringModel.ts:26:1
+
+ Export paths: src/index.ts
+
+
Related symbols:
+
+ - StudioInstancePropertyEditorKind
+
+
+
+
+
+
+ | Member |
+ Kind |
+ Type |
+ Required |
+ Description |
+
+
+
+
+ category |
+ property |
+ string |
+ yes |
+ |
+
+
+ defaultValue |
+ property |
+ unknown |
+ yes |
+ |
+
+
+ editor |
+ property |
+ StudioInstancePropertyEditorKind |
+ yes |
+ |
+
+
+ isExplicit |
+ property |
+ boolean |
+ yes |
+ |
+
+
+ label |
+ property |
+ string |
+ yes |
+ |
+
+
+ name |
+ property |
+ string |
+ yes |
+ |
+
+
+ options |
+ property |
+ readonly (string | number)[] |
+ yes |
+ |
+
+
+ schemaType |
+ property |
+ string |
+ yes |
+ |
+
+
+ value |
+ property |
+ unknown |
+ yes |
+ |
+
+
+
+
+
+ StudioInstancePropertyGroup
+ type • src/propertiesAuthoringModel.ts:38:1
+
+ Export paths: src/index.ts
+
+
Related symbols:
+
+ - StudioInstancePropertyField
+
+
+
+
+
+
+ | Member |
+ Kind |
+ Type |
+ Required |
+ Description |
+
+
+
+
+ category |
+ property |
+ string |
+ yes |
+ |
+
+
+ fields |
+ property |
+ readonly StudioInstancePropertyField[] |
+ yes |
+ |
+
+
+
+
+
+ StudioInstancePropertyValue
+ unknown • src/propertiesAuthoringModel.ts:43:1
+
+ Export paths: src/index.ts
+ Related symbols: None
+
+
+
+ src/templateCatalogContracts.ts
+
+ TemplateCatalog
+ type • src/templateCatalogContracts.ts:21:1
+
+ Export paths: src/index.ts
+
+
Related symbols:
+
+ - TemplateCatalogCategory
+
+
+
+
+
+
+ | Member |
+ Kind |
+ Type |
+ Required |
+ Description |
+
+
+
+
+ categories |
+ property |
+ TemplateCatalogCategory[] |
+ yes |
+ |
+
+
+
+
+
+ TemplateCatalogCategory
+ type • src/templateCatalogContracts.ts:10:1
+
+ Export paths: src/index.ts
+
+
Related symbols:
+
+ - TemplateCatalogTemplate
+
+
+
+
+
+
+ | Member |
+ Kind |
+ Type |
+ Required |
+ Description |
+
+
+
+
+ focusAreas |
+ property |
+ readonly string[] |
+ yes |
+ |
+
harmony |
property |
@@ -8932,11 +9595,30 @@ Architecture overview
module_src_host_auth_projectAuthHealthService_ts["src/host/auth/projectAuthHealthService.ts"]
package__ankhorage_studio -.-> module_src_host_auth_projectAuthHealthService_ts
module_src_host_auth_projectAuthHealthService_ts -->
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts
+ module_src_host_auth_projectAuthHealthService_ts -->
module_src_host_orchestrator_projectManager_ts
module_src_host_auth_projectAuthHealthService_ts -->
module_src_host_secrets_projectSecretService_ts
module_src_host_auth_projectAuthHealthService_ts -->
+ module_src_projectAuthHealth_ts module_src_host_auth_projectAuthHealthService_ts
+ --> module_src_projectAuthRuntimeDiagnostics_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_test_ts["src/host/auth/projectAuthRuntimeDiagnostics.test.ts"]
+ package__ankhorage_studio -.->
+ module_src_host_auth_projectAuthRuntimeDiagnostics_test_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_test_ts -->
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts["src/host/auth/projectAuthRuntimeDiagnostics.ts"]
+ package__ankhorage_studio -.->
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts -->
+ module_src_host_orchestrator_infraRuntime_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts -->
+ module_src_host_orchestrator_projectPaths_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts -->
module_src_projectAuthHealth_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts -->
+ module_src_projectAuthRuntimeDiagnostics_ts
module_src_host_createStudioHost_ts["src/host/createStudioHost.ts"]
package__ankhorage_studio -.-> module_src_host_createStudioHost_ts
module_src_host_createStudioHost_ts -->
@@ -8966,6 +9648,11 @@ Architecture overview
module_src_host_orchestrator_projectManager_ts
module_src_host_generatedAuthAdapterRuntime_smoke_test_ts -->
module_src_host_templateRegistry_index_ts
+ module_src_host_generatedOAuthLifecycle_e2e_test_ts["src/host/generatedOAuthLifecycle.e2e.test.ts"]
+ package__ankhorage_studio -.->
+ module_src_host_generatedOAuthLifecycle_e2e_test_ts
+ module_src_host_generatedOAuthLifecycle_e2e_test_ts -->
+ module_src_host_layout_templates_auth_oauth_ts
module_src_host_hostLifecycle_smoke_test_ts["src/host/hostLifecycle.smoke.test.ts"]
package__ankhorage_studio -.-> module_src_host_hostLifecycle_smoke_test_ts
module_src_host_hostLifecycle_smoke_test_ts -->
@@ -9077,12 +9764,22 @@ Architecture overview
module_src_host_layout_templates_auth_adapter_ts
module_src_host_layout_templates_auth_adapter_ts["src/host/layout/templates/auth/adapter.ts"]
package__ankhorage_studio -.-> module_src_host_layout_templates_auth_adapter_ts
+ module_src_host_layout_templates_auth_callback_test_ts["src/host/layout/templates/auth/callback.test.ts"]
+ package__ankhorage_studio -.->
+ module_src_host_layout_templates_auth_callback_test_ts
+ module_src_host_layout_templates_auth_callback_test_ts -->
+ module_src_host_layout_templates_auth_callback_ts
module_src_host_layout_templates_auth_callback_ts["src/host/layout/templates/auth/callback.ts"]
package__ankhorage_studio -.-> module_src_host_layout_templates_auth_callback_ts
module_src_host_layout_templates_auth_callback_ts -->
module_src_host_layout_templates_utils_routes_ts
module_src_host_layout_templates_auth_callback_ts -->
module_src_host_layout_utils_escapeStringLiteral_ts
+ module_src_host_layout_templates_auth_oauth_test_ts["src/host/layout/templates/auth/oauth.test.ts"]
+ package__ankhorage_studio -.->
+ module_src_host_layout_templates_auth_oauth_test_ts
+ module_src_host_layout_templates_auth_oauth_test_ts -->
+ module_src_host_layout_templates_auth_oauth_ts
module_src_host_layout_templates_auth_oauth_ts["src/host/layout/templates/auth/oauth.ts"]
package__ankhorage_studio -.-> module_src_host_layout_templates_auth_oauth_ts
module_src_host_layout_templates_auth_oauth_ts -->
@@ -9496,6 +10193,14 @@ Architecture overview
module_src_projectAuthHealth_ts["src/projectAuthHealth.ts"]
package__ankhorage_studio -.-> module_src_projectAuthHealth_ts
module_src_projectAuthHealth_ts --> module_src_authSettings_ts
+ module_src_projectAuthRuntimeDiagnostics_test_ts["src/projectAuthRuntimeDiagnostics.test.ts"]
+ package__ankhorage_studio -.-> module_src_projectAuthRuntimeDiagnostics_test_ts
+ module_src_projectAuthRuntimeDiagnostics_test_ts -->
+ module_src_projectAuthHealth_ts module_src_projectAuthRuntimeDiagnostics_test_ts
+ --> module_src_projectAuthRuntimeDiagnostics_ts
+ module_src_projectAuthRuntimeDiagnostics_ts["src/projectAuthRuntimeDiagnostics.ts"]
+ package__ankhorage_studio -.-> module_src_projectAuthRuntimeDiagnostics_ts
+ module_src_projectAuthRuntimeDiagnostics_ts --> module_src_projectAuthHealth_ts
module_src_projectIdentity_test_ts["src/projectIdentity.test.ts"]
package__ankhorage_studio -.-> module_src_projectIdentity_test_ts
module_src_projectIdentity_test_ts --> module_src_projectIdentity_ts
@@ -9517,6 +10222,11 @@ Architecture overview
package__ankhorage_studio -.-> module_src_projectSecretUsage_ts
module_src_projectWorkspaceContracts_ts["src/projectWorkspaceContracts.ts"]
package__ankhorage_studio -.-> module_src_projectWorkspaceContracts_ts
+ module_src_propertiesAuthoringModel_test_ts["src/propertiesAuthoringModel.test.ts"]
+ package__ankhorage_studio -.-> module_src_propertiesAuthoringModel_test_ts
+ module_src_propertiesAuthoringModel_test_ts --> module_src_index_ts
+ module_src_propertiesAuthoringModel_ts["src/propertiesAuthoringModel.ts"]
+ package__ankhorage_studio -.-> module_src_propertiesAuthoringModel_ts
module_src_root_test_ts["src/root.test.ts"] package__ankhorage_studio
-.-> module_src_root_test_ts module_src_root_ts["src/root.ts"]
package__ankhorage_studio -.-> module_src_root_ts
@@ -9650,6 +10360,11 @@ Architecture overview
module_src_studioAdminRouteModel_ts["src/studioAdminRouteModel.ts"]
package__ankhorage_studio -.-> module_src_studioAdminRouteModel_ts
module_src_studioAdminRouteModel_ts --> module_src_index_ts
+ module_src_studioRuntimeApi_test_ts["src/studioRuntimeApi.test.ts"]
+ package__ankhorage_studio -.-> module_src_studioRuntimeApi_test_ts
+ module_src_studioRuntimeApi_test_ts --> module_src_studioRuntimeApi_ts
+ module_src_studioRuntimeApi_ts["src/studioRuntimeApi.ts"]
+ package__ankhorage_studio -.-> module_src_studioRuntimeApi_ts
module_src_studioSelectionModel_knip_test_ts["src/studioSelectionModel.knip.test.ts"]
package__ankhorage_studio -.-> module_src_studioSelectionModel_knip_test_ts
module_src_studioSelectionModel_knip_test_ts -->
@@ -9767,6 +10482,7 @@ Architecture overview
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_projectAuthApi_ts
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_projectAuthHealth_ts
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_projectSecretApi_ts
+ module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_studioRuntimeApi_ts
module_src_ui_admin_pages_AuthAdminPage_tsx -->
module_src_ui_admin_AuthAdminSession_tsx module_src_ui_admin_pages_AuthAdminPage_tsx
--> module_src_ui_admin_pages_adminAuthCredentialFlow_ts
@@ -9787,9 +10503,9 @@ Architecture overview
module_src_ui_admin_pages_PropertiesAdminPage_tsx -->
module_src_core_StudioContext_ts module_src_ui_admin_pages_PropertiesAdminPage_tsx
--> module_src_manifestState_ts module_src_ui_admin_pages_PropertiesAdminPage_tsx
- --> module_src_ui_admin_adminPagePrimitives_tsx
+ --> module_src_propertiesAuthoringModel_ts
module_src_ui_admin_pages_PropertiesAdminPage_tsx -->
- module_src_ui_admin_adminPageUtils_ts
+ module_src_ui_admin_adminPagePrimitives_tsx
module_src_ui_admin_pages_SecretsAdminPage_test_ts["src/ui/admin/pages/SecretsAdminPage.test.ts"]
package__ankhorage_studio -.-> module_src_ui_admin_pages_SecretsAdminPage_test_ts
module_src_ui_admin_pages_SecretsAdminPage_tsx["src/ui/admin/pages/SecretsAdminPage.tsx"]
@@ -10016,9 +10732,20 @@ Architecture overview
module_src_hooks_useWorkspaceActions_ts --> module_src_core_constants_ts
module_src_host_auth_projectAuthHealthService_ts["src/host/auth/projectAuthHealthService.ts"]
package__ankhorage_studio -.-> module_src_host_auth_projectAuthHealthService_ts
+ module_src_host_auth_projectAuthHealthService_ts --> module_src_host_auth_projectAuthRuntimeDiagnostics_ts
module_src_host_auth_projectAuthHealthService_ts --> module_src_host_orchestrator_projectManager_ts
module_src_host_auth_projectAuthHealthService_ts --> module_src_host_secrets_projectSecretService_ts
module_src_host_auth_projectAuthHealthService_ts --> module_src_projectAuthHealth_ts
+ module_src_host_auth_projectAuthHealthService_ts --> module_src_projectAuthRuntimeDiagnostics_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_test_ts["src/host/auth/projectAuthRuntimeDiagnostics.test.ts"]
+ package__ankhorage_studio -.-> module_src_host_auth_projectAuthRuntimeDiagnostics_test_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_test_ts --> module_src_host_auth_projectAuthRuntimeDiagnostics_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts["src/host/auth/projectAuthRuntimeDiagnostics.ts"]
+ package__ankhorage_studio -.-> module_src_host_auth_projectAuthRuntimeDiagnostics_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts --> module_src_host_orchestrator_infraRuntime_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts --> module_src_host_orchestrator_projectPaths_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts --> module_src_projectAuthHealth_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts --> module_src_projectAuthRuntimeDiagnostics_ts
module_src_host_createStudioHost_ts["src/host/createStudioHost.ts"]
package__ankhorage_studio -.-> module_src_host_createStudioHost_ts
module_src_host_createStudioHost_ts --> module_src_host_orchestrator_infraRuntime_ts
@@ -10036,6 +10763,9 @@ Architecture overview
module_src_host_generatedAuthAdapterRuntime_smoke_test_ts --> module_src_host_orchestrator_moduleManager_ts
module_src_host_generatedAuthAdapterRuntime_smoke_test_ts --> module_src_host_orchestrator_projectManager_ts
module_src_host_generatedAuthAdapterRuntime_smoke_test_ts --> module_src_host_templateRegistry_index_ts
+ module_src_host_generatedOAuthLifecycle_e2e_test_ts["src/host/generatedOAuthLifecycle.e2e.test.ts"]
+ package__ankhorage_studio -.-> module_src_host_generatedOAuthLifecycle_e2e_test_ts
+ module_src_host_generatedOAuthLifecycle_e2e_test_ts --> module_src_host_layout_templates_auth_oauth_ts
module_src_host_hostLifecycle_smoke_test_ts["src/host/hostLifecycle.smoke.test.ts"]
package__ankhorage_studio -.-> module_src_host_hostLifecycle_smoke_test_ts
module_src_host_hostLifecycle_smoke_test_ts --> module_src_host_orchestrator_moduleManager_ts
@@ -10122,10 +10852,16 @@ Architecture overview
module_src_host_layout_templates_auth_adapter_test_ts --> module_src_host_layout_templates_auth_adapter_ts
module_src_host_layout_templates_auth_adapter_ts["src/host/layout/templates/auth/adapter.ts"]
package__ankhorage_studio -.-> module_src_host_layout_templates_auth_adapter_ts
+ module_src_host_layout_templates_auth_callback_test_ts["src/host/layout/templates/auth/callback.test.ts"]
+ package__ankhorage_studio -.-> module_src_host_layout_templates_auth_callback_test_ts
+ module_src_host_layout_templates_auth_callback_test_ts --> module_src_host_layout_templates_auth_callback_ts
module_src_host_layout_templates_auth_callback_ts["src/host/layout/templates/auth/callback.ts"]
package__ankhorage_studio -.-> module_src_host_layout_templates_auth_callback_ts
module_src_host_layout_templates_auth_callback_ts --> module_src_host_layout_templates_utils_routes_ts
module_src_host_layout_templates_auth_callback_ts --> module_src_host_layout_utils_escapeStringLiteral_ts
+ module_src_host_layout_templates_auth_oauth_test_ts["src/host/layout/templates/auth/oauth.test.ts"]
+ package__ankhorage_studio -.-> module_src_host_layout_templates_auth_oauth_test_ts
+ module_src_host_layout_templates_auth_oauth_test_ts --> module_src_host_layout_templates_auth_oauth_ts
module_src_host_layout_templates_auth_oauth_ts["src/host/layout/templates/auth/oauth.ts"]
package__ankhorage_studio -.-> module_src_host_layout_templates_auth_oauth_ts
module_src_host_layout_templates_auth_oauth_ts --> module_src_host_layout_auth_resolveAuthLayoutPlan_ts
@@ -10428,6 +11164,13 @@ Architecture overview
module_src_projectAuthHealth_ts["src/projectAuthHealth.ts"]
package__ankhorage_studio -.-> module_src_projectAuthHealth_ts
module_src_projectAuthHealth_ts --> module_src_authSettings_ts
+ module_src_projectAuthRuntimeDiagnostics_test_ts["src/projectAuthRuntimeDiagnostics.test.ts"]
+ package__ankhorage_studio -.-> module_src_projectAuthRuntimeDiagnostics_test_ts
+ module_src_projectAuthRuntimeDiagnostics_test_ts --> module_src_projectAuthHealth_ts
+ module_src_projectAuthRuntimeDiagnostics_test_ts --> module_src_projectAuthRuntimeDiagnostics_ts
+ module_src_projectAuthRuntimeDiagnostics_ts["src/projectAuthRuntimeDiagnostics.ts"]
+ package__ankhorage_studio -.-> module_src_projectAuthRuntimeDiagnostics_ts
+ module_src_projectAuthRuntimeDiagnostics_ts --> module_src_projectAuthHealth_ts
module_src_projectIdentity_test_ts["src/projectIdentity.test.ts"]
package__ankhorage_studio -.-> module_src_projectIdentity_test_ts
module_src_projectIdentity_test_ts --> module_src_projectIdentity_ts
@@ -10449,6 +11192,11 @@ Architecture overview
package__ankhorage_studio -.-> module_src_projectSecretUsage_ts
module_src_projectWorkspaceContracts_ts["src/projectWorkspaceContracts.ts"]
package__ankhorage_studio -.-> module_src_projectWorkspaceContracts_ts
+ module_src_propertiesAuthoringModel_test_ts["src/propertiesAuthoringModel.test.ts"]
+ package__ankhorage_studio -.-> module_src_propertiesAuthoringModel_test_ts
+ module_src_propertiesAuthoringModel_test_ts --> module_src_index_ts
+ module_src_propertiesAuthoringModel_ts["src/propertiesAuthoringModel.ts"]
+ package__ankhorage_studio -.-> module_src_propertiesAuthoringModel_ts
module_src_root_test_ts["src/root.test.ts"]
package__ankhorage_studio -.-> module_src_root_test_ts
module_src_root_ts["src/root.ts"]
@@ -10557,6 +11305,11 @@ Architecture overview
module_src_studioAdminRouteModel_ts["src/studioAdminRouteModel.ts"]
package__ankhorage_studio -.-> module_src_studioAdminRouteModel_ts
module_src_studioAdminRouteModel_ts --> module_src_index_ts
+ module_src_studioRuntimeApi_test_ts["src/studioRuntimeApi.test.ts"]
+ package__ankhorage_studio -.-> module_src_studioRuntimeApi_test_ts
+ module_src_studioRuntimeApi_test_ts --> module_src_studioRuntimeApi_ts
+ module_src_studioRuntimeApi_ts["src/studioRuntimeApi.ts"]
+ package__ankhorage_studio -.-> module_src_studioRuntimeApi_ts
module_src_studioSelectionModel_knip_test_ts["src/studioSelectionModel.knip.test.ts"]
package__ankhorage_studio -.-> module_src_studioSelectionModel_knip_test_ts
module_src_studioSelectionModel_knip_test_ts --> module_src_studioSelectionModel_ts
@@ -10649,6 +11402,7 @@ Architecture overview
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_projectAuthApi_ts
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_projectAuthHealth_ts
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_projectSecretApi_ts
+ module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_studioRuntimeApi_ts
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_ui_admin_AuthAdminSession_tsx
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_ui_admin_pages_adminAuthCredentialFlow_ts
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_ui_admin_pages_adminAuthHealthFlow_ts
@@ -10663,8 +11417,8 @@ Architecture overview
package__ankhorage_studio -.-> module_src_ui_admin_pages_PropertiesAdminPage_tsx
module_src_ui_admin_pages_PropertiesAdminPage_tsx --> module_src_core_StudioContext_ts
module_src_ui_admin_pages_PropertiesAdminPage_tsx --> module_src_manifestState_ts
+ module_src_ui_admin_pages_PropertiesAdminPage_tsx --> module_src_propertiesAuthoringModel_ts
module_src_ui_admin_pages_PropertiesAdminPage_tsx --> module_src_ui_admin_adminPagePrimitives_tsx
- module_src_ui_admin_pages_PropertiesAdminPage_tsx --> module_src_ui_admin_adminPageUtils_ts
module_src_ui_admin_pages_SecretsAdminPage_test_ts["src/ui/admin/pages/SecretsAdminPage.test.ts"]
package__ankhorage_studio -.-> module_src_ui_admin_pages_SecretsAdminPage_test_ts
module_src_ui_admin_pages_SecretsAdminPage_tsx["src/ui/admin/pages/SecretsAdminPage.tsx"]
@@ -10764,9 +11518,12 @@ Module relationships
module_src_hooks_useTemplateCatalog_ts["src/hooks/useTemplateCatalog.ts"]
module_src_hooks_useWorkspaceActions_ts["src/hooks/useWorkspaceActions.ts"]
module_src_host_auth_projectAuthHealthService_ts["src/host/auth/projectAuthHealthService.ts"]
+ module_src_host_auth_projectAuthRuntimeDiagnostics_test_ts["src/host/auth/projectAuthRuntimeDiagnostics.test.ts"]
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts["src/host/auth/projectAuthRuntimeDiagnostics.ts"]
module_src_host_createStudioHost_ts["src/host/createStudioHost.ts"]
module_src_host_generatedAdminExpoWeb_smoke_test_ts["src/host/generatedAdminExpoWeb.smoke.test.ts"]
module_src_host_generatedAuthAdapterRuntime_smoke_test_ts["src/host/generatedAuthAdapterRuntime.smoke.test.ts"]
+ module_src_host_generatedOAuthLifecycle_e2e_test_ts["src/host/generatedOAuthLifecycle.e2e.test.ts"]
module_src_host_hostLifecycle_smoke_test_ts["src/host/hostLifecycle.smoke.test.ts"]
module_src_host_hostOwnership_test_ts["src/host/hostOwnership.test.ts"]
module_src_host_http_authRoutes_test_ts["src/host/http/authRoutes.test.ts"]
@@ -10788,7 +11545,9 @@ Module relationships
module_src_host_layout_layoutGenerator_ts["src/host/layout/layoutGenerator.ts"]
module_src_host_layout_templates_auth_adapter_test_ts["src/host/layout/templates/auth/adapter.test.ts"]
module_src_host_layout_templates_auth_adapter_ts["src/host/layout/templates/auth/adapter.ts"]
+ module_src_host_layout_templates_auth_callback_test_ts["src/host/layout/templates/auth/callback.test.ts"]
module_src_host_layout_templates_auth_callback_ts["src/host/layout/templates/auth/callback.ts"]
+ module_src_host_layout_templates_auth_oauth_test_ts["src/host/layout/templates/auth/oauth.test.ts"]
module_src_host_layout_templates_auth_oauth_ts["src/host/layout/templates/auth/oauth.ts"]
module_src_host_layout_templates_auth_screen_ts["src/host/layout/templates/auth/screen.ts"]
module_src_host_layout_templates_auth_session_ts["src/host/layout/templates/auth/session.ts"]
@@ -10877,6 +11636,8 @@ Module relationships
module_src_projectAuthApi_ts["src/projectAuthApi.ts"]
module_src_projectAuthHealth_test_ts["src/projectAuthHealth.test.ts"]
module_src_projectAuthHealth_ts["src/projectAuthHealth.ts"]
+ module_src_projectAuthRuntimeDiagnostics_test_ts["src/projectAuthRuntimeDiagnostics.test.ts"]
+ module_src_projectAuthRuntimeDiagnostics_ts["src/projectAuthRuntimeDiagnostics.ts"]
module_src_projectIdentity_test_ts["src/projectIdentity.test.ts"]
module_src_projectIdentity_ts["src/projectIdentity.ts"]
module_src_projectSecretApi_test_ts["src/projectSecretApi.test.ts"]
@@ -10884,6 +11645,8 @@ Module relationships
module_src_projectSecretUsage_test_ts["src/projectSecretUsage.test.ts"]
module_src_projectSecretUsage_ts["src/projectSecretUsage.ts"]
module_src_projectWorkspaceContracts_ts["src/projectWorkspaceContracts.ts"]
+ module_src_propertiesAuthoringModel_test_ts["src/propertiesAuthoringModel.test.ts"]
+ module_src_propertiesAuthoringModel_ts["src/propertiesAuthoringModel.ts"]
module_src_root_test_ts["src/root.test.ts"]
module_src_root_ts["src/root.ts"]
module_src_routeUtils_public_test_ts["src/routeUtils.public.test.ts"]
@@ -10924,6 +11687,8 @@ Module relationships
module_src_secretResponseGuard_ts["src/secretResponseGuard.ts"]
module_src_studioAdminRouteModel_test_ts["src/studioAdminRouteModel.test.ts"]
module_src_studioAdminRouteModel_ts["src/studioAdminRouteModel.ts"]
+ module_src_studioRuntimeApi_test_ts["src/studioRuntimeApi.test.ts"]
+ module_src_studioRuntimeApi_ts["src/studioRuntimeApi.ts"]
module_src_studioSelectionModel_knip_test_ts["src/studioSelectionModel.knip.test.ts"]
module_src_studioSelectionModel_test_ts["src/studioSelectionModel.test.ts"]
module_src_studioSelectionModel_ts["src/studioSelectionModel.ts"]
@@ -11058,15 +11823,28 @@ Module relationships
module_src_core_constants_ts module_src_hooks_useTemplateCatalog_ts -->
module_src_templateCatalogContracts_ts module_src_hooks_useWorkspaceActions_ts
--> module_src_core_constants_ts module_src_host_auth_projectAuthHealthService_ts
- --> module_src_host_orchestrator_projectManager_ts
+ --> module_src_host_auth_projectAuthRuntimeDiagnostics_ts
+ module_src_host_auth_projectAuthHealthService_ts -->
+ module_src_host_orchestrator_projectManager_ts
module_src_host_auth_projectAuthHealthService_ts -->
module_src_host_secrets_projectSecretService_ts
module_src_host_auth_projectAuthHealthService_ts -->
- module_src_projectAuthHealth_ts module_src_host_createStudioHost_ts -->
- module_src_host_orchestrator_infraRuntime_ts module_src_host_createStudioHost_ts
- --> module_src_host_orchestrator_moduleManager_ts
+ module_src_projectAuthHealth_ts module_src_host_auth_projectAuthHealthService_ts
+ --> module_src_projectAuthRuntimeDiagnostics_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_test_ts -->
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts -->
+ module_src_host_orchestrator_infraRuntime_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts -->
+ module_src_host_orchestrator_projectPaths_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts -->
+ module_src_projectAuthHealth_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts -->
+ module_src_projectAuthRuntimeDiagnostics_ts module_src_host_createStudioHost_ts
+ --> module_src_host_orchestrator_infraRuntime_ts
module_src_host_createStudioHost_ts -->
- module_src_host_orchestrator_projectManager_ts
+ module_src_host_orchestrator_moduleManager_ts module_src_host_createStudioHost_ts
+ --> module_src_host_orchestrator_projectManager_ts
module_src_host_generatedAdminExpoWeb_smoke_test_ts -->
module_src_host_installedPackageProvenance_ts
module_src_host_generatedAdminExpoWeb_smoke_test_ts -->
@@ -11083,6 +11861,8 @@ Module relationships
module_src_host_orchestrator_projectManager_ts
module_src_host_generatedAuthAdapterRuntime_smoke_test_ts -->
module_src_host_templateRegistry_index_ts
+ module_src_host_generatedOAuthLifecycle_e2e_test_ts -->
+ module_src_host_layout_templates_auth_oauth_ts
module_src_host_hostLifecycle_smoke_test_ts -->
module_src_host_orchestrator_moduleManager_ts
module_src_host_hostLifecycle_smoke_test_ts -->
@@ -11144,10 +11924,14 @@ Module relationships
module_src_host_layout_layoutGenerator_ts --> module_src_studioAdminRouteModel_ts
module_src_host_layout_templates_auth_adapter_test_ts -->
module_src_host_layout_templates_auth_adapter_ts
+ module_src_host_layout_templates_auth_callback_test_ts -->
+ module_src_host_layout_templates_auth_callback_ts
module_src_host_layout_templates_auth_callback_ts -->
module_src_host_layout_templates_utils_routes_ts
module_src_host_layout_templates_auth_callback_ts -->
module_src_host_layout_utils_escapeStringLiteral_ts
+ module_src_host_layout_templates_auth_oauth_test_ts -->
+ module_src_host_layout_templates_auth_oauth_ts
module_src_host_layout_templates_auth_oauth_ts -->
module_src_host_layout_auth_resolveAuthLayoutPlan_ts
module_src_host_layout_templates_auth_oauth_ts -->
@@ -11360,6 +12144,10 @@ Module relationships
module_src_projectAuthApi_ts --> module_src_secretResponseGuard_ts
module_src_projectAuthHealth_test_ts --> module_src_projectAuthHealth_ts
module_src_projectAuthHealth_ts --> module_src_authSettings_ts
+ module_src_projectAuthRuntimeDiagnostics_test_ts -->
+ module_src_projectAuthHealth_ts module_src_projectAuthRuntimeDiagnostics_test_ts
+ --> module_src_projectAuthRuntimeDiagnostics_ts
+ module_src_projectAuthRuntimeDiagnostics_ts --> module_src_projectAuthHealth_ts
module_src_projectIdentity_test_ts --> module_src_projectIdentity_ts
module_src_projectIdentity_test_ts --> module_src_projectWorkspaceContracts_ts
module_src_projectIdentity_ts --> module_src_projectWorkspaceContracts_ts
@@ -11367,6 +12155,7 @@ Module relationships
module_src_projectSecretApi_ts --> module_src_projectSecretUsage_ts
module_src_projectSecretApi_ts --> module_src_secretResponseGuard_ts
module_src_projectSecretUsage_test_ts --> module_src_projectSecretUsage_ts
+ module_src_propertiesAuthoringModel_test_ts --> module_src_index_ts
module_src_routeUtils_public_test_ts --> module_src_routeUtils_ts
module_src_routeUtils_test_ts --> module_src_routeUtils_ts
module_src_routeUtils_ts --> module_src_manifestState_ts
@@ -11410,7 +12199,8 @@ Module relationships
--> module_src_runtimeLocalization_ts module_src_secretResponseGuard_test_ts
--> module_src_secretResponseGuard_ts module_src_studioAdminRouteModel_test_ts
--> module_src_studioAdminRouteModel_ts module_src_studioAdminRouteModel_ts
- --> module_src_index_ts module_src_studioSelectionModel_knip_test_ts -->
+ --> module_src_index_ts module_src_studioRuntimeApi_test_ts -->
+ module_src_studioRuntimeApi_ts module_src_studioSelectionModel_knip_test_ts -->
module_src_studioSelectionModel_ts module_src_studioSelectionModel_test_ts -->
module_src_studioSelectionModel_ts module_src_ui_admin_AnkhAdminPage_tsx -->
module_src_core_StudioContext_ts module_src_ui_admin_AnkhAdminPage_tsx -->
@@ -11470,6 +12260,7 @@ Module relationships
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_projectAuthApi_ts
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_projectAuthHealth_ts
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_projectSecretApi_ts
+ module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_studioRuntimeApi_ts
module_src_ui_admin_pages_AuthAdminPage_tsx -->
module_src_ui_admin_AuthAdminSession_tsx module_src_ui_admin_pages_AuthAdminPage_tsx
--> module_src_ui_admin_pages_adminAuthCredentialFlow_ts
@@ -11483,13 +12274,13 @@ Module relationships
module_src_ui_admin_pages_PropertiesAdminPage_tsx -->
module_src_core_StudioContext_ts module_src_ui_admin_pages_PropertiesAdminPage_tsx
--> module_src_manifestState_ts module_src_ui_admin_pages_PropertiesAdminPage_tsx
- --> module_src_ui_admin_adminPagePrimitives_tsx
+ --> module_src_propertiesAuthoringModel_ts
module_src_ui_admin_pages_PropertiesAdminPage_tsx -->
- module_src_ui_admin_adminPageUtils_ts module_src_ui_admin_pages_SecretsAdminPage_tsx
- --> module_src_projectSecretApi_ts module_src_ui_admin_pages_SecretsAdminPage_tsx
- --> module_src_projectSecretUsage_ts
+ module_src_ui_admin_adminPagePrimitives_tsx
+ module_src_ui_admin_pages_SecretsAdminPage_tsx --> module_src_projectSecretApi_ts
module_src_ui_admin_pages_SecretsAdminPage_tsx -->
- module_src_ui_admin_AuthAdminSession_tsx
+ module_src_projectSecretUsage_ts module_src_ui_admin_pages_SecretsAdminPage_tsx
+ --> module_src_ui_admin_AuthAdminSession_tsx
module_src_ui_admin_pages_SecretsAdminPage_tsx -->
module_src_ui_admin_pages_adminAuthSessionModel_ts
module_src_ui_admin_pages_ThemeAdminPage_test_ts -->
@@ -11564,9 +12355,12 @@ Module relationships
module_src_hooks_useTemplateCatalog_ts["src/hooks/useTemplateCatalog.ts"]
module_src_hooks_useWorkspaceActions_ts["src/hooks/useWorkspaceActions.ts"]
module_src_host_auth_projectAuthHealthService_ts["src/host/auth/projectAuthHealthService.ts"]
+ module_src_host_auth_projectAuthRuntimeDiagnostics_test_ts["src/host/auth/projectAuthRuntimeDiagnostics.test.ts"]
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts["src/host/auth/projectAuthRuntimeDiagnostics.ts"]
module_src_host_createStudioHost_ts["src/host/createStudioHost.ts"]
module_src_host_generatedAdminExpoWeb_smoke_test_ts["src/host/generatedAdminExpoWeb.smoke.test.ts"]
module_src_host_generatedAuthAdapterRuntime_smoke_test_ts["src/host/generatedAuthAdapterRuntime.smoke.test.ts"]
+ module_src_host_generatedOAuthLifecycle_e2e_test_ts["src/host/generatedOAuthLifecycle.e2e.test.ts"]
module_src_host_hostLifecycle_smoke_test_ts["src/host/hostLifecycle.smoke.test.ts"]
module_src_host_hostOwnership_test_ts["src/host/hostOwnership.test.ts"]
module_src_host_http_authRoutes_test_ts["src/host/http/authRoutes.test.ts"]
@@ -11588,7 +12382,9 @@ Module relationships
module_src_host_layout_layoutGenerator_ts["src/host/layout/layoutGenerator.ts"]
module_src_host_layout_templates_auth_adapter_test_ts["src/host/layout/templates/auth/adapter.test.ts"]
module_src_host_layout_templates_auth_adapter_ts["src/host/layout/templates/auth/adapter.ts"]
+ module_src_host_layout_templates_auth_callback_test_ts["src/host/layout/templates/auth/callback.test.ts"]
module_src_host_layout_templates_auth_callback_ts["src/host/layout/templates/auth/callback.ts"]
+ module_src_host_layout_templates_auth_oauth_test_ts["src/host/layout/templates/auth/oauth.test.ts"]
module_src_host_layout_templates_auth_oauth_ts["src/host/layout/templates/auth/oauth.ts"]
module_src_host_layout_templates_auth_screen_ts["src/host/layout/templates/auth/screen.ts"]
module_src_host_layout_templates_auth_session_ts["src/host/layout/templates/auth/session.ts"]
@@ -11677,6 +12473,8 @@ Module relationships
module_src_projectAuthApi_ts["src/projectAuthApi.ts"]
module_src_projectAuthHealth_test_ts["src/projectAuthHealth.test.ts"]
module_src_projectAuthHealth_ts["src/projectAuthHealth.ts"]
+ module_src_projectAuthRuntimeDiagnostics_test_ts["src/projectAuthRuntimeDiagnostics.test.ts"]
+ module_src_projectAuthRuntimeDiagnostics_ts["src/projectAuthRuntimeDiagnostics.ts"]
module_src_projectIdentity_test_ts["src/projectIdentity.test.ts"]
module_src_projectIdentity_ts["src/projectIdentity.ts"]
module_src_projectSecretApi_test_ts["src/projectSecretApi.test.ts"]
@@ -11684,6 +12482,8 @@ Module relationships
module_src_projectSecretUsage_test_ts["src/projectSecretUsage.test.ts"]
module_src_projectSecretUsage_ts["src/projectSecretUsage.ts"]
module_src_projectWorkspaceContracts_ts["src/projectWorkspaceContracts.ts"]
+ module_src_propertiesAuthoringModel_test_ts["src/propertiesAuthoringModel.test.ts"]
+ module_src_propertiesAuthoringModel_ts["src/propertiesAuthoringModel.ts"]
module_src_root_test_ts["src/root.test.ts"]
module_src_root_ts["src/root.ts"]
module_src_routeUtils_public_test_ts["src/routeUtils.public.test.ts"]
@@ -11724,6 +12524,8 @@ Module relationships
module_src_secretResponseGuard_ts["src/secretResponseGuard.ts"]
module_src_studioAdminRouteModel_test_ts["src/studioAdminRouteModel.test.ts"]
module_src_studioAdminRouteModel_ts["src/studioAdminRouteModel.ts"]
+ module_src_studioRuntimeApi_test_ts["src/studioRuntimeApi.test.ts"]
+ module_src_studioRuntimeApi_ts["src/studioRuntimeApi.ts"]
module_src_studioSelectionModel_knip_test_ts["src/studioSelectionModel.knip.test.ts"]
module_src_studioSelectionModel_test_ts["src/studioSelectionModel.test.ts"]
module_src_studioSelectionModel_ts["src/studioSelectionModel.ts"]
@@ -11839,9 +12641,16 @@ Module relationships
module_src_hooks_useTemplateCatalog_ts --> module_src_core_constants_ts
module_src_hooks_useTemplateCatalog_ts --> module_src_templateCatalogContracts_ts
module_src_hooks_useWorkspaceActions_ts --> module_src_core_constants_ts
+ module_src_host_auth_projectAuthHealthService_ts --> module_src_host_auth_projectAuthRuntimeDiagnostics_ts
module_src_host_auth_projectAuthHealthService_ts --> module_src_host_orchestrator_projectManager_ts
module_src_host_auth_projectAuthHealthService_ts --> module_src_host_secrets_projectSecretService_ts
module_src_host_auth_projectAuthHealthService_ts --> module_src_projectAuthHealth_ts
+ module_src_host_auth_projectAuthHealthService_ts --> module_src_projectAuthRuntimeDiagnostics_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_test_ts --> module_src_host_auth_projectAuthRuntimeDiagnostics_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts --> module_src_host_orchestrator_infraRuntime_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts --> module_src_host_orchestrator_projectPaths_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts --> module_src_projectAuthHealth_ts
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts --> module_src_projectAuthRuntimeDiagnostics_ts
module_src_host_createStudioHost_ts --> module_src_host_orchestrator_infraRuntime_ts
module_src_host_createStudioHost_ts --> module_src_host_orchestrator_moduleManager_ts
module_src_host_createStudioHost_ts --> module_src_host_orchestrator_projectManager_ts
@@ -11853,6 +12662,7 @@ Module relationships
module_src_host_generatedAuthAdapterRuntime_smoke_test_ts --> module_src_host_orchestrator_moduleManager_ts
module_src_host_generatedAuthAdapterRuntime_smoke_test_ts --> module_src_host_orchestrator_projectManager_ts
module_src_host_generatedAuthAdapterRuntime_smoke_test_ts --> module_src_host_templateRegistry_index_ts
+ module_src_host_generatedOAuthLifecycle_e2e_test_ts --> module_src_host_layout_templates_auth_oauth_ts
module_src_host_hostLifecycle_smoke_test_ts --> module_src_host_orchestrator_moduleManager_ts
module_src_host_hostLifecycle_smoke_test_ts --> module_src_host_orchestrator_projectManager_ts
module_src_host_hostLifecycle_smoke_test_ts --> module_src_host_templateRegistry_index_ts
@@ -11897,8 +12707,10 @@ Module relationships
module_src_host_layout_layoutGenerator_ts --> module_src_index_ts
module_src_host_layout_layoutGenerator_ts --> module_src_studioAdminRouteModel_ts
module_src_host_layout_templates_auth_adapter_test_ts --> module_src_host_layout_templates_auth_adapter_ts
+ module_src_host_layout_templates_auth_callback_test_ts --> module_src_host_layout_templates_auth_callback_ts
module_src_host_layout_templates_auth_callback_ts --> module_src_host_layout_templates_utils_routes_ts
module_src_host_layout_templates_auth_callback_ts --> module_src_host_layout_utils_escapeStringLiteral_ts
+ module_src_host_layout_templates_auth_oauth_test_ts --> module_src_host_layout_templates_auth_oauth_ts
module_src_host_layout_templates_auth_oauth_ts --> module_src_host_layout_auth_resolveAuthLayoutPlan_ts
module_src_host_layout_templates_auth_oauth_ts --> module_src_host_layout_utils_escapeStringLiteral_ts
module_src_host_layout_templates_auth_screen_ts --> module_src_host_layout_auth_resolveAuthLayoutPlan_ts
@@ -12026,6 +12838,9 @@ Module relationships
module_src_projectAuthApi_ts --> module_src_secretResponseGuard_ts
module_src_projectAuthHealth_test_ts --> module_src_projectAuthHealth_ts
module_src_projectAuthHealth_ts --> module_src_authSettings_ts
+ module_src_projectAuthRuntimeDiagnostics_test_ts --> module_src_projectAuthHealth_ts
+ module_src_projectAuthRuntimeDiagnostics_test_ts --> module_src_projectAuthRuntimeDiagnostics_ts
+ module_src_projectAuthRuntimeDiagnostics_ts --> module_src_projectAuthHealth_ts
module_src_projectIdentity_test_ts --> module_src_projectIdentity_ts
module_src_projectIdentity_test_ts --> module_src_projectWorkspaceContracts_ts
module_src_projectIdentity_ts --> module_src_projectWorkspaceContracts_ts
@@ -12033,6 +12848,7 @@ Module relationships
module_src_projectSecretApi_ts --> module_src_projectSecretUsage_ts
module_src_projectSecretApi_ts --> module_src_secretResponseGuard_ts
module_src_projectSecretUsage_test_ts --> module_src_projectSecretUsage_ts
+ module_src_propertiesAuthoringModel_test_ts --> module_src_index_ts
module_src_routeUtils_public_test_ts --> module_src_routeUtils_ts
module_src_routeUtils_test_ts --> module_src_routeUtils_ts
module_src_routeUtils_ts --> module_src_manifestState_ts
@@ -12061,6 +12877,7 @@ Module relationships
module_src_secretResponseGuard_test_ts --> module_src_secretResponseGuard_ts
module_src_studioAdminRouteModel_test_ts --> module_src_studioAdminRouteModel_ts
module_src_studioAdminRouteModel_ts --> module_src_index_ts
+ module_src_studioRuntimeApi_test_ts --> module_src_studioRuntimeApi_ts
module_src_studioSelectionModel_knip_test_ts --> module_src_studioSelectionModel_ts
module_src_studioSelectionModel_test_ts --> module_src_studioSelectionModel_ts
module_src_ui_admin_AnkhAdminPage_tsx --> module_src_core_StudioContext_ts
@@ -12103,6 +12920,7 @@ Module relationships
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_projectAuthApi_ts
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_projectAuthHealth_ts
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_projectSecretApi_ts
+ module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_studioRuntimeApi_ts
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_ui_admin_AuthAdminSession_tsx
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_ui_admin_pages_adminAuthCredentialFlow_ts
module_src_ui_admin_pages_AuthAdminPage_tsx --> module_src_ui_admin_pages_adminAuthHealthFlow_ts
@@ -12111,8 +12929,8 @@ Module relationships
module_src_ui_admin_pages_OverviewAdminPage_tsx --> module_src_ui_admin_adminPagePrimitives_tsx
module_src_ui_admin_pages_PropertiesAdminPage_tsx --> module_src_core_StudioContext_ts
module_src_ui_admin_pages_PropertiesAdminPage_tsx --> module_src_manifestState_ts
+ module_src_ui_admin_pages_PropertiesAdminPage_tsx --> module_src_propertiesAuthoringModel_ts
module_src_ui_admin_pages_PropertiesAdminPage_tsx --> module_src_ui_admin_adminPagePrimitives_tsx
- module_src_ui_admin_pages_PropertiesAdminPage_tsx --> module_src_ui_admin_adminPageUtils_ts
module_src_ui_admin_pages_SecretsAdminPage_tsx --> module_src_projectSecretApi_ts
module_src_ui_admin_pages_SecretsAdminPage_tsx --> module_src_projectSecretUsage_ts
module_src_ui_admin_pages_SecretsAdminPage_tsx --> module_src_ui_admin_AuthAdminSession_tsx
@@ -12185,9 +13003,12 @@ Export graph
module_src_hooks_useTemplateCatalog_ts["src/hooks/useTemplateCatalog.ts"]
module_src_hooks_useWorkspaceActions_ts["src/hooks/useWorkspaceActions.ts"]
module_src_host_auth_projectAuthHealthService_ts["src/host/auth/projectAuthHealthService.ts"]
+ module_src_host_auth_projectAuthRuntimeDiagnostics_test_ts["src/host/auth/projectAuthRuntimeDiagnostics.test.ts"]
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts["src/host/auth/projectAuthRuntimeDiagnostics.ts"]
module_src_host_createStudioHost_ts["src/host/createStudioHost.ts"]
module_src_host_generatedAdminExpoWeb_smoke_test_ts["src/host/generatedAdminExpoWeb.smoke.test.ts"]
module_src_host_generatedAuthAdapterRuntime_smoke_test_ts["src/host/generatedAuthAdapterRuntime.smoke.test.ts"]
+ module_src_host_generatedOAuthLifecycle_e2e_test_ts["src/host/generatedOAuthLifecycle.e2e.test.ts"]
module_src_host_hostLifecycle_smoke_test_ts["src/host/hostLifecycle.smoke.test.ts"]
module_src_host_hostOwnership_test_ts["src/host/hostOwnership.test.ts"]
module_src_host_http_authRoutes_test_ts["src/host/http/authRoutes.test.ts"]
@@ -12209,7 +13030,9 @@ Export graph
module_src_host_layout_layoutGenerator_ts["src/host/layout/layoutGenerator.ts"]
module_src_host_layout_templates_auth_adapter_test_ts["src/host/layout/templates/auth/adapter.test.ts"]
module_src_host_layout_templates_auth_adapter_ts["src/host/layout/templates/auth/adapter.ts"]
+ module_src_host_layout_templates_auth_callback_test_ts["src/host/layout/templates/auth/callback.test.ts"]
module_src_host_layout_templates_auth_callback_ts["src/host/layout/templates/auth/callback.ts"]
+ module_src_host_layout_templates_auth_oauth_test_ts["src/host/layout/templates/auth/oauth.test.ts"]
module_src_host_layout_templates_auth_oauth_ts["src/host/layout/templates/auth/oauth.ts"]
module_src_host_layout_templates_auth_screen_ts["src/host/layout/templates/auth/screen.ts"]
module_src_host_layout_templates_auth_session_ts["src/host/layout/templates/auth/session.ts"]
@@ -12298,6 +13121,8 @@ Export graph
module_src_projectAuthApi_ts["src/projectAuthApi.ts"]
module_src_projectAuthHealth_test_ts["src/projectAuthHealth.test.ts"]
module_src_projectAuthHealth_ts["src/projectAuthHealth.ts"]
+ module_src_projectAuthRuntimeDiagnostics_test_ts["src/projectAuthRuntimeDiagnostics.test.ts"]
+ module_src_projectAuthRuntimeDiagnostics_ts["src/projectAuthRuntimeDiagnostics.ts"]
module_src_projectIdentity_test_ts["src/projectIdentity.test.ts"]
module_src_projectIdentity_ts["src/projectIdentity.ts"]
module_src_projectSecretApi_test_ts["src/projectSecretApi.test.ts"]
@@ -12305,6 +13130,8 @@ Export graph
module_src_projectSecretUsage_test_ts["src/projectSecretUsage.test.ts"]
module_src_projectSecretUsage_ts["src/projectSecretUsage.ts"]
module_src_projectWorkspaceContracts_ts["src/projectWorkspaceContracts.ts"]
+ module_src_propertiesAuthoringModel_test_ts["src/propertiesAuthoringModel.test.ts"]
+ module_src_propertiesAuthoringModel_ts["src/propertiesAuthoringModel.ts"]
module_src_root_test_ts["src/root.test.ts"]
module_src_root_ts["src/root.ts"]
module_src_routeUtils_public_test_ts["src/routeUtils.public.test.ts"]
@@ -12345,6 +13172,8 @@ Export graph
module_src_secretResponseGuard_ts["src/secretResponseGuard.ts"]
module_src_studioAdminRouteModel_test_ts["src/studioAdminRouteModel.test.ts"]
module_src_studioAdminRouteModel_ts["src/studioAdminRouteModel.ts"]
+ module_src_studioRuntimeApi_test_ts["src/studioRuntimeApi.test.ts"]
+ module_src_studioRuntimeApi_ts["src/studioRuntimeApi.ts"]
module_src_studioSelectionModel_knip_test_ts["src/studioSelectionModel.knip.test.ts"]
module_src_studioSelectionModel_test_ts["src/studioSelectionModel.test.ts"]
module_src_studioSelectionModel_ts["src/studioSelectionModel.ts"]
@@ -12406,6 +13235,10 @@ Export graph
export_createNodeFromCatalogEntry -.-> export_InsertCatalogEntry
export_createNodeFromCatalogEntry -.-> export_StudioComponentMetaRegistry
export_createNodeFromCatalogEntry -.-> export_StudioIdGenerator
+ export_createStudioInstancePropertyPatch["createStudioInstancePropertyPatch"]
+ module_src_propertiesAuthoringModel_ts -->
+ export_createStudioInstancePropertyPatch export_createStudioInstancePropertyPatch
+ -.-> export_StudioInstancePropertyValue
export_deriveProjectId["deriveProjectId"] module_src_projectIdentity_ts
--> export_deriveProjectId export_findNodeById["findNodeById"]
module_src_index_ts --> export_findNodeById
@@ -12536,6 +13369,18 @@ Export graph
export_resolveInsertPlacement -.-> export_PlacementKind
export_resolveInsertPlacement -.-> export_PlacementResolutionResult
export_resolveInsertPlacement -.-> export_StudioComponentMetaRegistry
+ export_resolveStudioInstancePropertyFields["resolveStudioInstancePropertyFields"]
+ module_src_propertiesAuthoringModel_ts -->
+ export_resolveStudioInstancePropertyFields
+ export_resolveStudioInstancePropertyFields -.->
+ export_StudioAuthoringComponentMeta export_resolveStudioInstancePropertyFields
+ -.-> export_StudioInstancePropertyField
+ export_resolveStudioInstancePropertyGroups["resolveStudioInstancePropertyGroups"]
+ module_src_propertiesAuthoringModel_ts -->
+ export_resolveStudioInstancePropertyGroups
+ export_resolveStudioInstancePropertyGroups -.->
+ export_StudioAuthoringComponentMeta export_resolveStudioInstancePropertyGroups
+ -.-> export_StudioInstancePropertyGroup
export_STUDIO_INSERT_RECIPES["STUDIO_INSERT_RECIPES"] module_src_index_ts
--> export_STUDIO_INSERT_RECIPES
export_STUDIO_PACKAGE_BOUNDARY["STUDIO_PACKAGE_BOUNDARY"]
@@ -12557,6 +13402,13 @@ Export graph
--> export_StudioAdminRoutePath
export_StudioAdminStaticRoutePath["StudioAdminStaticRoutePath"]
module_src_index_ts --> export_StudioAdminStaticRoutePath
+ export_StudioAuthoringComponentMeta["StudioAuthoringComponentMeta"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioAuthoringComponentMeta
+ export_StudioAuthoringComponentMeta -.-> export_StudioAuthoringPropSchema
+ export_StudioAuthoringMetaRegistry["StudioAuthoringMetaRegistry"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioAuthoringMetaRegistry
+ export_StudioAuthoringPropSchema["StudioAuthoringPropSchema"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioAuthoringPropSchema
export_StudioCommand["StudioCommand"] module_src_index_ts -->
export_StudioCommand
export_StudioComponentBlueprint["StudioComponentBlueprint"]
@@ -12579,6 +13431,17 @@ Export graph
export_StudioEvent["StudioEvent"] module_src_index_ts -->
export_StudioEvent export_StudioIdGenerator["StudioIdGenerator"]
module_src_index_ts --> export_StudioIdGenerator
+ export_StudioInstancePropertyEditorKind["StudioInstancePropertyEditorKind"]
+ module_src_propertiesAuthoringModel_ts -->
+ export_StudioInstancePropertyEditorKind
+ export_StudioInstancePropertyField["StudioInstancePropertyField"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioInstancePropertyField
+ export_StudioInstancePropertyField -.-> export_StudioInstancePropertyEditorKind
+ export_StudioInstancePropertyGroup["StudioInstancePropertyGroup"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioInstancePropertyGroup
+ export_StudioInstancePropertyGroup -.-> export_StudioInstancePropertyField
+ export_StudioInstancePropertyValue["StudioInstancePropertyValue"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioInstancePropertyValue
export_StudioLocale["StudioLocale"] module_src_index_ts -->
export_StudioLocale export_StudioManifest["StudioManifest"]
module_src_index_ts --> export_StudioManifest
@@ -12683,9 +13546,12 @@ Export graph
module_src_hooks_useTemplateCatalog_ts["src/hooks/useTemplateCatalog.ts"]
module_src_hooks_useWorkspaceActions_ts["src/hooks/useWorkspaceActions.ts"]
module_src_host_auth_projectAuthHealthService_ts["src/host/auth/projectAuthHealthService.ts"]
+ module_src_host_auth_projectAuthRuntimeDiagnostics_test_ts["src/host/auth/projectAuthRuntimeDiagnostics.test.ts"]
+ module_src_host_auth_projectAuthRuntimeDiagnostics_ts["src/host/auth/projectAuthRuntimeDiagnostics.ts"]
module_src_host_createStudioHost_ts["src/host/createStudioHost.ts"]
module_src_host_generatedAdminExpoWeb_smoke_test_ts["src/host/generatedAdminExpoWeb.smoke.test.ts"]
module_src_host_generatedAuthAdapterRuntime_smoke_test_ts["src/host/generatedAuthAdapterRuntime.smoke.test.ts"]
+ module_src_host_generatedOAuthLifecycle_e2e_test_ts["src/host/generatedOAuthLifecycle.e2e.test.ts"]
module_src_host_hostLifecycle_smoke_test_ts["src/host/hostLifecycle.smoke.test.ts"]
module_src_host_hostOwnership_test_ts["src/host/hostOwnership.test.ts"]
module_src_host_http_authRoutes_test_ts["src/host/http/authRoutes.test.ts"]
@@ -12707,7 +13573,9 @@ Export graph
module_src_host_layout_layoutGenerator_ts["src/host/layout/layoutGenerator.ts"]
module_src_host_layout_templates_auth_adapter_test_ts["src/host/layout/templates/auth/adapter.test.ts"]
module_src_host_layout_templates_auth_adapter_ts["src/host/layout/templates/auth/adapter.ts"]
+ module_src_host_layout_templates_auth_callback_test_ts["src/host/layout/templates/auth/callback.test.ts"]
module_src_host_layout_templates_auth_callback_ts["src/host/layout/templates/auth/callback.ts"]
+ module_src_host_layout_templates_auth_oauth_test_ts["src/host/layout/templates/auth/oauth.test.ts"]
module_src_host_layout_templates_auth_oauth_ts["src/host/layout/templates/auth/oauth.ts"]
module_src_host_layout_templates_auth_screen_ts["src/host/layout/templates/auth/screen.ts"]
module_src_host_layout_templates_auth_session_ts["src/host/layout/templates/auth/session.ts"]
@@ -12796,6 +13664,8 @@ Export graph
module_src_projectAuthApi_ts["src/projectAuthApi.ts"]
module_src_projectAuthHealth_test_ts["src/projectAuthHealth.test.ts"]
module_src_projectAuthHealth_ts["src/projectAuthHealth.ts"]
+ module_src_projectAuthRuntimeDiagnostics_test_ts["src/projectAuthRuntimeDiagnostics.test.ts"]
+ module_src_projectAuthRuntimeDiagnostics_ts["src/projectAuthRuntimeDiagnostics.ts"]
module_src_projectIdentity_test_ts["src/projectIdentity.test.ts"]
module_src_projectIdentity_ts["src/projectIdentity.ts"]
module_src_projectSecretApi_test_ts["src/projectSecretApi.test.ts"]
@@ -12803,6 +13673,8 @@ Export graph
module_src_projectSecretUsage_test_ts["src/projectSecretUsage.test.ts"]
module_src_projectSecretUsage_ts["src/projectSecretUsage.ts"]
module_src_projectWorkspaceContracts_ts["src/projectWorkspaceContracts.ts"]
+ module_src_propertiesAuthoringModel_test_ts["src/propertiesAuthoringModel.test.ts"]
+ module_src_propertiesAuthoringModel_ts["src/propertiesAuthoringModel.ts"]
module_src_root_test_ts["src/root.test.ts"]
module_src_root_ts["src/root.ts"]
module_src_routeUtils_public_test_ts["src/routeUtils.public.test.ts"]
@@ -12843,6 +13715,8 @@ Export graph
module_src_secretResponseGuard_ts["src/secretResponseGuard.ts"]
module_src_studioAdminRouteModel_test_ts["src/studioAdminRouteModel.test.ts"]
module_src_studioAdminRouteModel_ts["src/studioAdminRouteModel.ts"]
+ module_src_studioRuntimeApi_test_ts["src/studioRuntimeApi.test.ts"]
+ module_src_studioRuntimeApi_ts["src/studioRuntimeApi.ts"]
module_src_studioSelectionModel_knip_test_ts["src/studioSelectionModel.knip.test.ts"]
module_src_studioSelectionModel_test_ts["src/studioSelectionModel.test.ts"]
module_src_studioSelectionModel_ts["src/studioSelectionModel.ts"]
@@ -12907,6 +13781,9 @@ Export graph
export_createNodeFromCatalogEntry -.-> export_InsertCatalogEntry
export_createNodeFromCatalogEntry -.-> export_StudioComponentMetaRegistry
export_createNodeFromCatalogEntry -.-> export_StudioIdGenerator
+ export_createStudioInstancePropertyPatch["createStudioInstancePropertyPatch"]
+ module_src_propertiesAuthoringModel_ts --> export_createStudioInstancePropertyPatch
+ export_createStudioInstancePropertyPatch -.-> export_StudioInstancePropertyValue
export_deriveProjectId["deriveProjectId"]
module_src_projectIdentity_ts --> export_deriveProjectId
export_findNodeById["findNodeById"]
@@ -13040,6 +13917,14 @@ Export graph
export_resolveInsertPlacement -.-> export_PlacementKind
export_resolveInsertPlacement -.-> export_PlacementResolutionResult
export_resolveInsertPlacement -.-> export_StudioComponentMetaRegistry
+ export_resolveStudioInstancePropertyFields["resolveStudioInstancePropertyFields"]
+ module_src_propertiesAuthoringModel_ts --> export_resolveStudioInstancePropertyFields
+ export_resolveStudioInstancePropertyFields -.-> export_StudioAuthoringComponentMeta
+ export_resolveStudioInstancePropertyFields -.-> export_StudioInstancePropertyField
+ export_resolveStudioInstancePropertyGroups["resolveStudioInstancePropertyGroups"]
+ module_src_propertiesAuthoringModel_ts --> export_resolveStudioInstancePropertyGroups
+ export_resolveStudioInstancePropertyGroups -.-> export_StudioAuthoringComponentMeta
+ export_resolveStudioInstancePropertyGroups -.-> export_StudioInstancePropertyGroup
export_STUDIO_INSERT_RECIPES["STUDIO_INSERT_RECIPES"]
module_src_index_ts --> export_STUDIO_INSERT_RECIPES
export_STUDIO_PACKAGE_BOUNDARY["STUDIO_PACKAGE_BOUNDARY"]
@@ -13061,6 +13946,13 @@ Export graph
module_src_index_ts --> export_StudioAdminRoutePath
export_StudioAdminStaticRoutePath["StudioAdminStaticRoutePath"]
module_src_index_ts --> export_StudioAdminStaticRoutePath
+ export_StudioAuthoringComponentMeta["StudioAuthoringComponentMeta"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioAuthoringComponentMeta
+ export_StudioAuthoringComponentMeta -.-> export_StudioAuthoringPropSchema
+ export_StudioAuthoringMetaRegistry["StudioAuthoringMetaRegistry"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioAuthoringMetaRegistry
+ export_StudioAuthoringPropSchema["StudioAuthoringPropSchema"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioAuthoringPropSchema
export_StudioCommand["StudioCommand"]
module_src_index_ts --> export_StudioCommand
export_StudioComponentBlueprint["StudioComponentBlueprint"]
@@ -13088,6 +13980,16 @@ Export graph
module_src_index_ts --> export_StudioEvent
export_StudioIdGenerator["StudioIdGenerator"]
module_src_index_ts --> export_StudioIdGenerator
+ export_StudioInstancePropertyEditorKind["StudioInstancePropertyEditorKind"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioInstancePropertyEditorKind
+ export_StudioInstancePropertyField["StudioInstancePropertyField"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioInstancePropertyField
+ export_StudioInstancePropertyField -.-> export_StudioInstancePropertyEditorKind
+ export_StudioInstancePropertyGroup["StudioInstancePropertyGroup"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioInstancePropertyGroup
+ export_StudioInstancePropertyGroup -.-> export_StudioInstancePropertyField
+ export_StudioInstancePropertyValue["StudioInstancePropertyValue"]
+ module_src_propertiesAuthoringModel_ts --> export_StudioInstancePropertyValue
export_StudioLocale["StudioLocale"]
module_src_index_ts --> export_StudioLocale
export_StudioManifest["StudioManifest"]
@@ -13288,6 +14190,35 @@ findNodeById sequence
participant participant_findNodeById as findNodeById
participant_findNodeById->>participant_findNodeById: findNodeById()
participant_findNodeById-->>participant_findNodeById: return
+
+
+
+
+ resolveStudioInstancePropertyGroups sequence
+
+ diagrams/sequences/resolve-studio-instance-property-groups.mmd
+
+
+ sequenceDiagram participant participant_resolveStudioInstancePropertyFields as
+ resolveStudioInstancePropertyFields participant
+ participant_resolveStudioInstancePropertyGroups as
+ resolveStudioInstancePropertyGroups
+ participant_resolveStudioInstancePropertyGroups->>participant_resolveStudioInstancePropertyFields:
+ resolveStudioInstancePropertyFields()
+ participant_resolveStudioInstancePropertyFields-->>participant_resolveStudioInstancePropertyGroups:
+ return
+
+
+ View Mermaid source
+
+sequenceDiagram
+ participant participant_resolveStudioInstancePropertyFields as resolveStudioInstancePropertyFields
+ participant participant_resolveStudioInstancePropertyGroups as resolveStudioInstancePropertyGroups
+ participant_resolveStudioInstancePropertyGroups->>participant_resolveStudioInstancePropertyFields: resolveStudioInstancePropertyFields()
+ participant_resolveStudioInstancePropertyFields-->>participant_resolveStudioInstancePropertyGroups: return
@@ -14841,58 +15772,166 @@ isRecord
src/hooks/useTemplateCatalog.ts:7:1
No description available.
-
- isCatalogCategory
- src/hooks/useTemplateCatalog.ts:11:1
+
+ isCatalogCategory
+ src/hooks/useTemplateCatalog.ts:11:1
+ No description available.
+
+
+ parseTemplateCatalog
+ src/hooks/useTemplateCatalog.ts:34:1
+ No description available.
+
+
+ useTemplateCatalog
+ src/hooks/useTemplateCatalog.ts:46:1
+ No description available.
+
+
+
+
+
+ src/hooks/useWorkspaceActions.ts
+
+ isRecord
+ src/hooks/useWorkspaceActions.ts:10:1
+ No description available.
+
+
+ readJson
+ src/hooks/useWorkspaceActions.ts:14:1
+ No description available.
+
+
+ parseInstallWorkspacePackagesResponse
+ src/hooks/useWorkspaceActions.ts:18:1
+ No description available.
+
+
+ useWorkspaceActions
+ src/hooks/useWorkspaceActions.ts:29:1
+ No description available.
+
+
+
+
+
+ src/host/auth/projectAuthHealthService.ts
+
+ resolveAuthRedirectEnvironment
+ src/host/auth/projectAuthHealthService.ts:104:1
+ No description available.
+
+
+
+
-
-
- src/hooks/useWorkspaceActions.ts
-
- isRecord
- src/hooks/useWorkspaceActions.ts:10:1
+
+ splitCommaSeparated
+ src/host/auth/projectAuthRuntimeDiagnostics.ts:234:1
No description available.
-
- readJson
- src/hooks/useWorkspaceActions.ts:14:1
+
+ readSafeStatusValue
+ src/host/auth/projectAuthRuntimeDiagnostics.ts:242:1
No description available.
- parseInstallWorkspacePackagesResponse
- src/hooks/useWorkspaceActions.ts:18:1
+ isExactWebCallbackUrl
+ src/host/auth/projectAuthRuntimeDiagnostics.ts:248:1
No description available.
- useWorkspaceActions
- src/hooks/useWorkspaceActions.ts:29:1
+ exists
+ src/host/auth/projectAuthRuntimeDiagnostics.ts:252:1
No description available.
@@ -15421,6 +16460,104 @@ expectAuthError
+
+
+ src/host/generatedOAuthLifecycle.e2e.test.ts
+
+ runIsolatedScenario
+ src/host/generatedOAuthLifecycle.e2e.test.ts:83:1
+ No description available.
+
+
+ runSuccessfulCallbackScenario
+ src/host/generatedOAuthLifecycle.e2e.test.ts:103:1
+ No description available.
+
+
+ runProviderDenialScenario
+ src/host/generatedOAuthLifecycle.e2e.test.ts:140:1
+ No description available.
+
+
+ createHarness
+ src/host/generatedOAuthLifecycle.e2e.test.ts:171:1
+ No description available.
+
+
+ writeDocument
+ src/host/generatedOAuthLifecycle.e2e.test.ts:203:1
+ No description available.
+
+
+ createGeneratedOAuthSource
+ src/host/generatedOAuthLifecycle.e2e.test.ts:270:1
+ No description available.
+
+
+ readTransportMarker
+ src/host/generatedOAuthLifecycle.e2e.test.ts:291:1
+ No description available.
+
+
+ hasPkceVerifier
+ src/host/generatedOAuthLifecycle.e2e.test.ts:307:1
+ No description available.
+
+
+ waitFor
+ src/host/generatedOAuthLifecycle.e2e.test.ts:311:1
+ No description available.
+
+
+ moduleUrl
+ src/host/generatedOAuthLifecycle.e2e.test.ts:319:1
+ No description available.
+
+
+ isRecord
+ src/host/generatedOAuthLifecycle.e2e.test.ts:323:1
+ No description available.
+
+
+
registerProjectAuthRoutes
data-search="sendProjectAuthHealthResult src/host/http/authRoutes.ts "
>
sendProjectAuthHealthResult
- src/host/http/authRoutes.ts:45:1
+ src/host/http/authRoutes.ts:46:1
No description available.
@@ -16202,6 +17339,24 @@ getAuthOAuthCallbackTsx
+
+
+ src/host/layout/templates/auth/oauth.test.ts
+
+ createOAuthRuntime
+ src/host/layout/templates/auth/oauth.test.ts:5:1
+ No description available.
+
+
+
createRoot
src/index.ts
generateStudioId
- src/index.ts:509:14
+ src/index.ts:513:14
No description available.
cloneWithNewIds
- src/index.ts:516:14
+ src/index.ts:520:14
No description available.
findNodeById
- src/index.ts:533:14
+ src/index.ts:537:14
No description available.
updateNodeInTree
- src/index.ts:545:14
+ src/index.ts:549:14
No description available.
removeNodeFromTree
- src/index.ts:573:14
+ src/index.ts:577:14
No description available.
addNodeToTree
- src/index.ts:591:14
+ src/index.ts:595:14
No description available.
moveNodeInTree
- src/index.ts:624:14
+ src/index.ts:628:14
No description available.
findNodeWithParent
- src/index.ts:660:1
+ src/index.ts:664:1
No description available.
visit
- src/index.ts:665:9
+ src/index.ts:669:9
No description available.
isDescendantNode
- src/index.ts:684:1
+ src/index.ts:688:1
No description available.
removeNodeForMove
- src/index.ts:695:1
+ src/index.ts:699:1
No description available.
canAcceptChild
- src/index.ts:750:1
+ src/index.ts:754:1
No description available.
validateNodePlacement
- src/index.ts:762:1
+ src/index.ts:766:1
No description available.
resolveInsertPlacement
- src/index.ts:817:1
+ src/index.ts:821:1
No description available.
resolveDefaultInsertPlacement
- src/index.ts:878:1
+ src/index.ts:882:1
No description available.
insertChildAtIndex
- src/index.ts:935:1
+ src/index.ts:939:1
No description available.
insertNodeAtPlacement
- src/index.ts:980:1
+ src/index.ts:984:1
No description available.
getAdjustedMovePlacement
- src/index.ts:1019:1
+ src/index.ts:1023:1
No description available.
moveNodeToPlacement
- src/index.ts:1048:1
+ src/index.ts:1052:1
No description available.
getInsertCatalogCategoryLabel
- src/index.ts:1148:1
+ src/index.ts:1152:1
No description available.
resolveCategoryOrder
- src/index.ts:1152:1
+ src/index.ts:1156:1
No description available.
describeInsertRecipeIssue
- src/index.ts:1157:1
+ src/index.ts:1161:1
No description available.
validateInsertRecipe
- src/index.ts:1165:1
+ src/index.ts:1169:1
No description available.
visit
- src/index.ts:1169:9
+ src/index.ts:1173:9
No description available.
createNodeFromRecipe
- src/index.ts:1202:1
+ src/index.ts:1206:1
No description available.
buildNode
- src/index.ts:1207:9
+ src/index.ts:1211:9
No description available.
createNodeFromCatalogEntry
- src/index.ts:1222:1
+ src/index.ts:1226:1
No description available.
createComponentEntry
- src/index.ts:1242:1
+ src/index.ts:1246:1
No description available.
createRecipeEntry
- src/index.ts:1265:1
+ src/index.ts:1269:1
No description available.
buildInsertCatalogEntries
- src/index.ts:1303:1
+ src/index.ts:1307:1
No description available.
resolvePlacementForEntry
- src/index.ts:1329:1
+ src/index.ts:1333:1
No description available.
resolveInsertCatalogEntries
- src/index.ts:1345:1
+ src/index.ts:1349:1
No description available.
isStyleRecord
- src/index.ts:1394:1
+ src/index.ts:1398:1
No description available.
@@ -19567,6 +20722,56 @@ sortDiagnostics
+
+
+
+ src/propertiesAuthoringModel.ts
+
+ resolveStudioInstancePropertyFields
+ src/propertiesAuthoringModel.ts:45:1
+ No description available.
+
+
+ resolveStudioInstancePropertyGroups
+ src/propertiesAuthoringModel.ts:74:1
+ No description available.
+
+
+ createStudioInstancePropertyPatch
+ src/propertiesAuthoringModel.ts:89:1
+ No description available.
+
+
+ resolveEditorKind
+ src/propertiesAuthoringModel.ts:102:1
+ No description available.
+
+
+
resolveStudioLastNonAdminLocation
+
+
+ src/studioRuntimeApi.test.ts
+
+ requestUrl
+ src/studioRuntimeApi.test.ts:54:1
+ No description available.
+
+
+ captureError
+ src/studioRuntimeApi.test.ts:60:1
+ No description available.
+
+
+
+
+
+ src/studioRuntimeApi.ts
+
+ syncStudioRuntime
+ src/studioRuntimeApi.ts:1:1
+ No description available.
+
+
+ readJson
+ src/studioRuntimeApi.ts:26:1
+ No description available.
+
+
+ readErrorMessage
+ src/studioRuntimeApi.ts:34:1
+ No description available.
+
+
+
readString
src/ui/admin/adminPageUtils.ts:5:1
No description available.
-
- formatPrimitive
- src/ui/admin/adminPageUtils.ts:9:1
- No description available.
-
ApisAdminPage
src/ui/admin/pages/AuthAdminPage.tsx
AuthAdminPage
- src/ui/admin/pages/AuthAdminPage.tsx:64:1
+ src/ui/admin/pages/AuthAdminPage.tsx:65:1
No description available.
AuthAdminPage
data-search="PendingCredentialLinkCard src/ui/admin/pages/AuthAdminPage.tsx "
>
PendingCredentialLinkCard
- src/ui/admin/pages/AuthAdminPage.tsx:583:1
+ src/ui/admin/pages/AuthAdminPage.tsx:588:1
No description available.
PendingCredentialLinkCard
data-search="OAuthProviderSetting src/ui/admin/pages/AuthAdminPage.tsx "
>
OAuthProviderSetting
- src/ui/admin/pages/AuthAdminPage.tsx:608:1
+ src/ui/admin/pages/AuthAdminPage.tsx:613:1
No description available.
setEnabled
- src/ui/admin/pages/AuthAdminPage.tsx:642:9
+ src/ui/admin/pages/AuthAdminPage.tsx:647:9
No description available.
setEnabled
data-search="saveCredentials src/ui/admin/pages/AuthAdminPage.tsx "
>
saveCredentials
- src/ui/admin/pages/AuthAdminPage.tsx:668:9
+ src/ui/admin/pages/AuthAdminPage.tsx:673:9
No description available.
saveCredentials
data-search="upsertProvider src/ui/admin/pages/AuthAdminPage.tsx "
>
upsertProvider
- src/ui/admin/pages/AuthAdminPage.tsx:788:1
+ src/ui/admin/pages/AuthAdminPage.tsx:793:1
No description available.
updateFlow
- src/ui/admin/pages/AuthAdminPage.tsx:799:1
+ src/ui/admin/pages/AuthAdminPage.tsx:804:1
No description available.
omitSignUp
- src/ui/admin/pages/AuthAdminPage.tsx:806:1
+ src/ui/admin/pages/AuthAdminPage.tsx:811:1
No description available.
omitProfile
- src/ui/admin/pages/AuthAdminPage.tsx:811:1
+ src/ui/admin/pages/AuthAdminPage.tsx:816:1
No description available.
omitProfile
data-search="createDefaultSettings src/ui/admin/pages/AuthAdminPage.tsx "
>
createDefaultSettings
- src/ui/admin/pages/AuthAdminPage.tsx:816:1
+ src/ui/admin/pages/AuthAdminPage.tsx:821:1
No description available.
createDefaultSettings
data-search="createDefaultOAuth src/ui/admin/pages/AuthAdminPage.tsx "
>
createDefaultOAuth
- src/ui/admin/pages/AuthAdminPage.tsx:826:1
+ src/ui/admin/pages/AuthAdminPage.tsx:831:1
No description available.
createDefaultOAuth
data-search="createFallbackManifest src/ui/admin/pages/AuthAdminPage.tsx "
>
createFallbackManifest
- src/ui/admin/pages/AuthAdminPage.tsx:834:1
+ src/ui/admin/pages/AuthAdminPage.tsx:839:1
No description available.
splitList
- src/ui/admin/pages/AuthAdminPage.tsx:852:1
+ src/ui/admin/pages/AuthAdminPage.tsx:857:1
No description available.
toMessage
- src/ui/admin/pages/AuthAdminPage.tsx:863:1
+ src/ui/admin/pages/AuthAdminPage.tsx:868:1
No description available.
toMessage
data-search="formatAuthAdminWriteBusyReason src/ui/admin/pages/AuthAdminPage.tsx "
>
formatAuthAdminWriteBusyReason
- src/ui/admin/pages/AuthAdminPage.tsx:868:1
+ src/ui/admin/pages/AuthAdminPage.tsx:873:1
No description available.
formatAuthAdminWriteBusyReason
data-search="AuthHealthCard src/ui/admin/pages/AuthAdminPage.tsx "
>
AuthHealthCard
- src/ui/admin/pages/AuthAdminPage.tsx:886:1
+ src/ui/admin/pages/AuthAdminPage.tsx:891:1
No description available.
AuthHealthCard
data-search="formatHealthStatus src/ui/admin/pages/AuthAdminPage.tsx "
>
formatHealthStatus
- src/ui/admin/pages/AuthAdminPage.tsx:946:1
+ src/ui/admin/pages/AuthAdminPage.tsx:951:1
No description available.
formatHealthStatus
data-search="formatProviderHealthStatus src/ui/admin/pages/AuthAdminPage.tsx "
>
formatProviderHealthStatus
- src/ui/admin/pages/AuthAdminPage.tsx:953:1
+ src/ui/admin/pages/AuthAdminPage.tsx:958:1
No description available.
formatProviderHealthStatus
data-search="healthStatusColor src/ui/admin/pages/AuthAdminPage.tsx "
>
healthStatusColor
- src/ui/admin/pages/AuthAdminPage.tsx:961:1
+ src/ui/admin/pages/AuthAdminPage.tsx:966:1
No description available.
healthStatusColor
data-search="diagnosticSeverityColor src/ui/admin/pages/AuthAdminPage.tsx "
>
diagnosticSeverityColor
- src/ui/admin/pages/AuthAdminPage.tsx:968:1
+ src/ui/admin/pages/AuthAdminPage.tsx:973:1
No description available.
Card
- src/ui/admin/pages/AuthAdminPage.tsx:974:1
+ src/ui/admin/pages/AuthAdminPage.tsx:979:1
No description available.
Field
- src/ui/admin/pages/AuthAdminPage.tsx:989:1
+ src/ui/admin/pages/AuthAdminPage.tsx:994:1
No description available.
RouteField
- src/ui/admin/pages/AuthAdminPage.tsx:1000:1
+ src/ui/admin/pages/AuthAdminPage.tsx:1005:1
No description available.
Input
- src/ui/admin/pages/AuthAdminPage.tsx:1012:1
+ src/ui/admin/pages/AuthAdminPage.tsx:1017:1
No description available.
SwitchSetting
- src/ui/admin/pages/AuthAdminPage.tsx:1031:1
+ src/ui/admin/pages/AuthAdminPage.tsx:1036:1
No description available.
Choice
- src/ui/admin/pages/AuthAdminPage.tsx:1050:1
+ src/ui/admin/pages/AuthAdminPage.tsx:1055:1
No description available.
KeyValue
- src/ui/admin/pages/AuthAdminPage.tsx:1074:1
+ src/ui/admin/pages/AuthAdminPage.tsx:1079:1
No description available.
PrimaryButton
- src/ui/admin/pages/AuthAdminPage.tsx:1085:1
+ src/ui/admin/pages/AuthAdminPage.tsx:1090:1
No description available.
PrimaryButton
data-search="SecondaryButton src/ui/admin/pages/AuthAdminPage.tsx "
>
SecondaryButton
- src/ui/admin/pages/AuthAdminPage.tsx:1108:1
+ src/ui/admin/pages/AuthAdminPage.tsx:1113:1
No description available.
Message
- src/ui/admin/pages/AuthAdminPage.tsx:1120:1
+ src/ui/admin/pages/AuthAdminPage.tsx:1125:1
No description available.
@@ -21750,15 +23034,84 @@ src/ui/admin/pages/PropertiesAdminPage.tsx
data-search="PropertiesAdminPage src/ui/admin/pages/PropertiesAdminPage.tsx "
>
PropertiesAdminPage
- src/ui/admin/pages/PropertiesAdminPage.tsx:10:1
+ src/ui/admin/pages/PropertiesAdminPage.tsx:16:1
+ No description available.
+
+
+ ResolvedProperties
+ src/ui/admin/pages/PropertiesAdminPage.tsx:41:1
+ No description available.
+
+
+ updateProperty
+ src/ui/admin/pages/PropertiesAdminPage.tsx:45:9
+ No description available.
+
+
+ InstancePropertyEditor
+ src/ui/admin/pages/PropertiesAdminPage.tsx:78:1
+ No description available.
+
+
+ NumberPropertyInput
+ src/ui/admin/pages/PropertiesAdminPage.tsx:103:1
+ No description available.
+
+
+ commit
+ src/ui/admin/pages/PropertiesAdminPage.tsx:116:9
+ No description available.
+
+
+ BooleanPropertyInput
+ src/ui/admin/pages/PropertiesAdminPage.tsx:152:1
+ No description available.
+
+
+ ChoicePropertyInput
+ src/ui/admin/pages/PropertiesAdminPage.tsx:171:1
+ No description available.
+
+
+ UnavailableNode
+ src/ui/admin/pages/PropertiesAdminPage.tsx:197:1
+ No description available.
+
+
+ NoInstanceProperties
+ src/ui/admin/pages/PropertiesAdminPage.tsx:207:1
No description available.
- NodeProps
- src/ui/admin/pages/PropertiesAdminPage.tsx:53:1
+ toInputText
+ src/ui/admin/pages/PropertiesAdminPage.tsx:217:1
No description available.
diff --git a/paradox/paradox.json b/paradox/paradox.json
index 14544204..8a23b7c0 100644
--- a/paradox/paradox.json
+++ b/paradox/paradox.json
@@ -12,7 +12,7 @@
{
"id": "npm",
"label": "npm",
- "value": "v0.11.4",
+ "value": "v0.11.11",
"color": "cb3837"
},
{
@@ -578,12 +578,37 @@
"path": "src/host/auth/projectAuthHealthService.ts",
"isEntrypoint": false,
"dependencies": [
+ "src/host/auth/projectAuthRuntimeDiagnostics.ts",
"src/host/orchestrator/projectManager.ts",
"src/host/secrets/projectSecretService.ts",
- "src/projectAuthHealth.ts"
+ "src/projectAuthHealth.ts",
+ "src/projectAuthRuntimeDiagnostics.ts"
],
"exports": ["ProjectAuthHealthResult", "ProjectAuthHealthService"]
},
+ {
+ "path": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts",
+ "isEntrypoint": false,
+ "dependencies": ["src/host/auth/projectAuthRuntimeDiagnostics.ts"],
+ "exports": []
+ },
+ {
+ "path": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "isEntrypoint": false,
+ "dependencies": [
+ "src/host/orchestrator/infraRuntime.ts",
+ "src/host/orchestrator/projectPaths.ts",
+ "src/projectAuthHealth.ts",
+ "src/projectAuthRuntimeDiagnostics.ts"
+ ],
+ "exports": [
+ "observeProjectAuthRuntimeDiagnostics",
+ "ParsedProjectAuthRuntimeStatus",
+ "parseProjectAuthRuntimeStatus",
+ "ProjectAuthRedirectRuntime",
+ "resolveProjectAuthRedirectRuntime"
+ ]
+ },
{
"path": "src/host/createStudioHost.ts",
"isEntrypoint": false,
@@ -616,6 +641,12 @@
],
"exports": []
},
+ {
+ "path": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "isEntrypoint": false,
+ "dependencies": ["src/host/layout/templates/auth/oauth.ts"],
+ "exports": []
+ },
{
"path": "src/host/hostLifecycle.smoke.test.ts",
"isEntrypoint": false,
@@ -827,6 +858,12 @@
"dependencies": [],
"exports": ["getAuthAdapterTs"]
},
+ {
+ "path": "src/host/layout/templates/auth/callback.test.ts",
+ "isEntrypoint": false,
+ "dependencies": ["src/host/layout/templates/auth/callback.ts"],
+ "exports": []
+ },
{
"path": "src/host/layout/templates/auth/callback.ts",
"isEntrypoint": false,
@@ -836,6 +873,12 @@
],
"exports": ["getAuthOAuthCallbackTsx"]
},
+ {
+ "path": "src/host/layout/templates/auth/oauth.test.ts",
+ "isEntrypoint": false,
+ "dependencies": ["src/host/layout/templates/auth/oauth.ts"],
+ "exports": []
+ },
{
"path": "src/host/layout/templates/auth/oauth.ts",
"isEntrypoint": false,
@@ -1407,6 +1450,7 @@
"canAcceptChild",
"cloneWithNewIds",
"createNodeFromCatalogEntry",
+ "createStudioInstancePropertyPatch",
"deriveProjectId",
"findNodeById",
"generateStudioId",
@@ -1454,6 +1498,8 @@
"resolveDefaultInsertPlacement",
"resolveInsertCatalogEntries",
"resolveInsertPlacement",
+ "resolveStudioInstancePropertyFields",
+ "resolveStudioInstancePropertyGroups",
"STUDIO_INSERT_RECIPES",
"STUDIO_PACKAGE_BOUNDARY",
"STUDIO_PACKAGE_NAME",
@@ -1464,6 +1510,9 @@
"StudioAdminRouteId",
"StudioAdminRoutePath",
"StudioAdminStaticRoutePath",
+ "StudioAuthoringComponentMeta",
+ "StudioAuthoringMetaRegistry",
+ "StudioAuthoringPropSchema",
"StudioCommand",
"StudioComponentBlueprint",
"StudioComponentMeta",
@@ -1471,6 +1520,10 @@
"StudioContextValue",
"StudioEvent",
"StudioIdGenerator",
+ "StudioInstancePropertyEditorKind",
+ "StudioInstancePropertyField",
+ "StudioInstancePropertyGroup",
+ "StudioInstancePropertyValue",
"StudioLocale",
"StudioManifest",
"StudioMode",
@@ -1718,6 +1771,22 @@
"ProjectOAuthProviderHealthStatus"
]
},
+ {
+ "path": "src/projectAuthRuntimeDiagnostics.test.ts",
+ "isEntrypoint": false,
+ "dependencies": ["src/projectAuthHealth.ts", "src/projectAuthRuntimeDiagnostics.ts"],
+ "exports": []
+ },
+ {
+ "path": "src/projectAuthRuntimeDiagnostics.ts",
+ "isEntrypoint": false,
+ "dependencies": ["src/projectAuthHealth.ts"],
+ "exports": [
+ "applyProjectAuthRuntimeDiagnostics",
+ "ProjectAuthRuntimeDiagnostics",
+ "ProjectAuthRuntimeRolloutStatus"
+ ]
+ },
{
"path": "src/projectIdentity.test.ts",
"isEntrypoint": false,
@@ -1793,6 +1862,29 @@
"StudioProjectSummary"
]
},
+ {
+ "path": "src/propertiesAuthoringModel.test.ts",
+ "isEntrypoint": false,
+ "dependencies": ["src/index.ts"],
+ "exports": []
+ },
+ {
+ "path": "src/propertiesAuthoringModel.ts",
+ "isEntrypoint": false,
+ "dependencies": [],
+ "exports": [
+ "createStudioInstancePropertyPatch",
+ "resolveStudioInstancePropertyFields",
+ "resolveStudioInstancePropertyGroups",
+ "StudioAuthoringComponentMeta",
+ "StudioAuthoringMetaRegistry",
+ "StudioAuthoringPropSchema",
+ "StudioInstancePropertyEditorKind",
+ "StudioInstancePropertyField",
+ "StudioInstancePropertyGroup",
+ "StudioInstancePropertyValue"
+ ]
+ },
{
"path": "src/root.test.ts",
"isEntrypoint": false,
@@ -1819,6 +1911,7 @@
"CreateCategoryTemplatesScreen",
"createNodeFromCatalogEntry",
"CreateProjectFromTemplateScreen",
+ "createStudioInstancePropertyPatch",
"deriveProjectId",
"findNodeById",
"findProjectSecretUsages",
@@ -1872,6 +1965,8 @@
"resolveDefaultInsertPlacement",
"resolveInsertCatalogEntries",
"resolveInsertPlacement",
+ "resolveStudioInstancePropertyFields",
+ "resolveStudioInstancePropertyGroups",
"STUDIO_INSERT_RECIPES",
"STUDIO_PACKAGE_BOUNDARY",
"STUDIO_PACKAGE_NAME",
@@ -1883,6 +1978,9 @@
"StudioAdminRoutePath",
"StudioAdminStaticRoutePath",
"StudioApp",
+ "StudioAuthoringComponentMeta",
+ "StudioAuthoringMetaRegistry",
+ "StudioAuthoringPropSchema",
"StudioCommand",
"StudioComponentBlueprint",
"StudioComponentMeta",
@@ -1890,6 +1988,10 @@
"StudioContextValue",
"StudioEvent",
"StudioIdGenerator",
+ "StudioInstancePropertyEditorKind",
+ "StudioInstancePropertyField",
+ "StudioInstancePropertyGroup",
+ "StudioInstancePropertyValue",
"StudioLocale",
"StudioManifest",
"StudioMode",
@@ -2325,6 +2427,18 @@
"StudioAdminRouteRenderState"
]
},
+ {
+ "path": "src/studioRuntimeApi.test.ts",
+ "isEntrypoint": false,
+ "dependencies": ["src/studioRuntimeApi.ts"],
+ "exports": []
+ },
+ {
+ "path": "src/studioRuntimeApi.ts",
+ "isEntrypoint": false,
+ "dependencies": [],
+ "exports": ["syncStudioRuntime"]
+ },
{
"path": "src/studioSelectionModel.knip.test.ts",
"isEntrypoint": false,
@@ -2380,7 +2494,7 @@
"path": "src/ui/admin/adminPageUtils.ts",
"isEntrypoint": false,
"dependencies": [],
- "exports": ["formatPrimitive", "readRecord", "readString"]
+ "exports": ["readRecord", "readString"]
},
{
"path": "src/ui/admin/AnkhAdminPage.test.ts",
@@ -2544,6 +2658,7 @@
"src/projectAuthApi.ts",
"src/projectAuthHealth.ts",
"src/projectSecretApi.ts",
+ "src/studioRuntimeApi.ts",
"src/ui/admin/AuthAdminSession.tsx",
"src/ui/admin/pages/adminAuthCredentialFlow.ts",
"src/ui/admin/pages/adminAuthHealthFlow.ts",
@@ -2569,8 +2684,8 @@
"dependencies": [
"src/core/StudioContext.ts",
"src/manifestState.ts",
- "src/ui/admin/adminPagePrimitives.tsx",
- "src/ui/admin/adminPageUtils.ts"
+ "src/propertiesAuthoringModel.ts",
+ "src/ui/admin/adminPagePrimitives.tsx"
],
"exports": ["PropertiesAdminPage"]
},
@@ -2691,7 +2806,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 369,
+ "line": 373,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -2709,7 +2824,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 279,
+ "line": 283,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -2763,7 +2878,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 591,
+ "line": 595,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -2795,7 +2910,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1303,
+ "line": 1307,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -2827,7 +2942,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 750,
+ "line": 754,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -2859,7 +2974,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 516,
+ "line": 520,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -2897,7 +3012,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1222,
+ "line": 1226,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -2932,6 +3047,50 @@
"members": [],
"structuredRows": []
},
+ {
+ "name": "createStudioInstancePropertyPatch",
+ "description": null,
+ "isReadme": false,
+ "examples": [],
+ "kind": "function",
+ "modulePath": "src/propertiesAuthoringModel.ts",
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 89,
+ "column": 1
+ },
+ "exportPaths": ["src/index.ts"],
+ "relatedSymbols": ["StudioInstancePropertyValue"],
+ "signatures": [
+ {
+ "label": "(node: UiNode, propertyName: string, value: StudioInstancePropertyValue | undefined) => Readonly>",
+ "parameters": [
+ {
+ "name": "node",
+ "type": "UiNode",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "propertyName",
+ "type": "string",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "value",
+ "type": "StudioInstancePropertyValue | undefined",
+ "required": true,
+ "description": null
+ }
+ ],
+ "returnType": "Readonly>",
+ "returnDescription": null
+ }
+ ],
+ "members": [],
+ "structuredRows": []
+ },
{
"name": "deriveProjectId",
"description": null,
@@ -2973,7 +3132,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 533,
+ "line": 537,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -3011,7 +3170,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 509,
+ "line": 513,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -3043,7 +3202,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1148,
+ "line": 1152,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3075,7 +3234,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 257,
+ "line": 261,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3168,7 +3327,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 239,
+ "line": 243,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3208,7 +3367,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 216,
+ "line": 220,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3226,7 +3385,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 267,
+ "line": 271,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3244,7 +3403,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 245,
+ "line": 249,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3331,7 +3490,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 213,
+ "line": 217,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3349,7 +3508,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 214,
+ "line": 218,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3367,7 +3526,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 262,
+ "line": 266,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3461,7 +3620,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 980,
+ "line": 984,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3493,7 +3652,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 923,
+ "line": 927,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3540,7 +3699,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 930,
+ "line": 934,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3573,7 +3732,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 224,
+ "line": 228,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3627,7 +3786,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 232,
+ "line": 236,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3674,7 +3833,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 219,
+ "line": 223,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3707,7 +3866,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 287,
+ "line": 291,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3754,7 +3913,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 624,
+ "line": 628,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -3798,7 +3957,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1048,
+ "line": 1052,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3830,7 +3989,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1007,
+ "line": 1011,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3877,7 +4036,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1014,
+ "line": 1018,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3910,7 +4069,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 175,
+ "line": 179,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3957,7 +4116,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 182,
+ "line": 186,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -3975,7 +4134,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 194,
+ "line": 198,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4008,7 +4167,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 173,
+ "line": 177,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4026,7 +4185,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 206,
+ "line": 210,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4044,7 +4203,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 199,
+ "line": 203,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4520,7 +4679,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 573,
+ "line": 577,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -4558,7 +4717,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 878,
+ "line": 882,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4590,7 +4749,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1345,
+ "line": 1349,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4622,7 +4781,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 817,
+ "line": 821,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4649,6 +4808,82 @@
"members": [],
"structuredRows": []
},
+ {
+ "name": "resolveStudioInstancePropertyFields",
+ "description": null,
+ "isReadme": false,
+ "examples": [],
+ "kind": "function",
+ "modulePath": "src/propertiesAuthoringModel.ts",
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 45,
+ "column": 1
+ },
+ "exportPaths": ["src/index.ts"],
+ "relatedSymbols": ["StudioAuthoringComponentMeta", "StudioInstancePropertyField"],
+ "signatures": [
+ {
+ "label": "(node: UiNode, registry: Readonly>) => readonly StudioInstancePropertyField[]",
+ "parameters": [
+ {
+ "name": "node",
+ "type": "UiNode",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "registry",
+ "type": "Readonly>",
+ "required": true,
+ "description": null
+ }
+ ],
+ "returnType": "readonly StudioInstancePropertyField[]",
+ "returnDescription": null
+ }
+ ],
+ "members": [],
+ "structuredRows": []
+ },
+ {
+ "name": "resolveStudioInstancePropertyGroups",
+ "description": null,
+ "isReadme": false,
+ "examples": [],
+ "kind": "function",
+ "modulePath": "src/propertiesAuthoringModel.ts",
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 74,
+ "column": 1
+ },
+ "exportPaths": ["src/index.ts"],
+ "relatedSymbols": ["StudioAuthoringComponentMeta", "StudioInstancePropertyGroup"],
+ "signatures": [
+ {
+ "label": "(node: UiNode, registry: Readonly>) => readonly StudioInstancePropertyGroup[]",
+ "parameters": [
+ {
+ "name": "node",
+ "type": "UiNode",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "registry",
+ "type": "Readonly>",
+ "required": true,
+ "description": null
+ }
+ ],
+ "returnType": "readonly StudioInstancePropertyGroup[]",
+ "returnDescription": null
+ }
+ ],
+ "members": [],
+ "structuredRows": []
+ },
{
"name": "STUDIO_INSERT_RECIPES",
"description": null,
@@ -4658,7 +4893,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1115,
+ "line": 1119,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -4701,7 +4936,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 57,
+ "line": 58,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -4719,7 +4954,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 49,
+ "line": 50,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -4737,7 +4972,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 85,
+ "line": 86,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -4755,7 +4990,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 271,
+ "line": 275,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4795,7 +5030,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 269,
+ "line": 273,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4813,7 +5048,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 277,
+ "line": 281,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4831,7 +5066,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 117,
+ "line": 121,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4849,7 +5084,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 140,
+ "line": 144,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4867,7 +5102,58 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 129,
+ "line": 133,
+ "column": 1
+ },
+ "exportPaths": ["src/index.ts"],
+ "relatedSymbols": [],
+ "signatures": [],
+ "members": [],
+ "structuredRows": []
+ },
+ {
+ "name": "StudioAuthoringComponentMeta",
+ "description": null,
+ "isReadme": false,
+ "examples": [],
+ "kind": "type",
+ "modulePath": "src/propertiesAuthoringModel.ts",
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 14,
+ "column": 1
+ },
+ "exportPaths": ["src/index.ts"],
+ "relatedSymbols": ["StudioAuthoringPropSchema"],
+ "signatures": [],
+ "members": [
+ {
+ "name": "name",
+ "kind": "property",
+ "type": "string",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "props",
+ "kind": "property",
+ "type": "Readonly>",
+ "required": true,
+ "description": null
+ }
+ ],
+ "structuredRows": []
+ },
+ {
+ "name": "StudioAuthoringMetaRegistry",
+ "description": null,
+ "isReadme": false,
+ "examples": [],
+ "kind": "unknown",
+ "modulePath": "src/propertiesAuthoringModel.ts",
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 19,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4876,6 +5162,67 @@
"members": [],
"structuredRows": []
},
+ {
+ "name": "StudioAuthoringPropSchema",
+ "description": null,
+ "isReadme": false,
+ "examples": [],
+ "kind": "type",
+ "modulePath": "src/propertiesAuthoringModel.ts",
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 3,
+ "column": 1
+ },
+ "exportPaths": ["src/index.ts"],
+ "relatedSymbols": [],
+ "signatures": [],
+ "members": [
+ {
+ "name": "authoring",
+ "kind": "property",
+ "type": "{ readonly authority: string; } | undefined",
+ "required": false,
+ "description": null
+ },
+ {
+ "name": "category",
+ "kind": "property",
+ "type": "string",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "default",
+ "kind": "property",
+ "type": "unknown",
+ "required": false,
+ "description": null
+ },
+ {
+ "name": "enum",
+ "kind": "property",
+ "type": "readonly (string | number)[] | undefined",
+ "required": false,
+ "description": null
+ },
+ {
+ "name": "label",
+ "kind": "property",
+ "type": "string | undefined",
+ "required": false,
+ "description": null
+ },
+ {
+ "name": "type",
+ "kind": "property",
+ "type": "string",
+ "required": true,
+ "description": null
+ }
+ ],
+ "structuredRows": []
+ },
{
"name": "StudioCommand",
"description": null,
@@ -4885,7 +5232,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 312,
+ "line": 316,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4903,7 +5250,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 296,
+ "line": 300,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4936,7 +5283,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 301,
+ "line": 305,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -4983,7 +5330,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 308,
+ "line": 312,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5001,7 +5348,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 328,
+ "line": 332,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5397,7 +5744,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 321,
+ "line": 325,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5415,7 +5762,158 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 310,
+ "line": 314,
+ "column": 1
+ },
+ "exportPaths": ["src/index.ts"],
+ "relatedSymbols": [],
+ "signatures": [],
+ "members": [],
+ "structuredRows": []
+ },
+ {
+ "name": "StudioInstancePropertyEditorKind",
+ "description": null,
+ "isReadme": false,
+ "examples": [],
+ "kind": "unknown",
+ "modulePath": "src/propertiesAuthoringModel.ts",
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 23,
+ "column": 1
+ },
+ "exportPaths": ["src/index.ts"],
+ "relatedSymbols": [],
+ "signatures": [],
+ "members": [],
+ "structuredRows": []
+ },
+ {
+ "name": "StudioInstancePropertyField",
+ "description": null,
+ "isReadme": false,
+ "examples": [],
+ "kind": "type",
+ "modulePath": "src/propertiesAuthoringModel.ts",
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 26,
+ "column": 1
+ },
+ "exportPaths": ["src/index.ts"],
+ "relatedSymbols": ["StudioInstancePropertyEditorKind"],
+ "signatures": [],
+ "members": [
+ {
+ "name": "category",
+ "kind": "property",
+ "type": "string",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "defaultValue",
+ "kind": "property",
+ "type": "unknown",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "editor",
+ "kind": "property",
+ "type": "StudioInstancePropertyEditorKind",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "isExplicit",
+ "kind": "property",
+ "type": "boolean",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "label",
+ "kind": "property",
+ "type": "string",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "name",
+ "kind": "property",
+ "type": "string",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "options",
+ "kind": "property",
+ "type": "readonly (string | number)[]",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "schemaType",
+ "kind": "property",
+ "type": "string",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "value",
+ "kind": "property",
+ "type": "unknown",
+ "required": true,
+ "description": null
+ }
+ ],
+ "structuredRows": []
+ },
+ {
+ "name": "StudioInstancePropertyGroup",
+ "description": null,
+ "isReadme": false,
+ "examples": [],
+ "kind": "type",
+ "modulePath": "src/propertiesAuthoringModel.ts",
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 38,
+ "column": 1
+ },
+ "exportPaths": ["src/index.ts"],
+ "relatedSymbols": ["StudioInstancePropertyField"],
+ "signatures": [],
+ "members": [
+ {
+ "name": "category",
+ "kind": "property",
+ "type": "string",
+ "required": true,
+ "description": null
+ },
+ {
+ "name": "fields",
+ "kind": "property",
+ "type": "readonly StudioInstancePropertyField[]",
+ "required": true,
+ "description": null
+ }
+ ],
+ "structuredRows": []
+ },
+ {
+ "name": "StudioInstancePropertyValue",
+ "description": null,
+ "isReadme": false,
+ "examples": [],
+ "kind": "unknown",
+ "modulePath": "src/propertiesAuthoringModel.ts",
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 43,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5433,7 +5931,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 112,
+ "line": 116,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5451,7 +5949,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 142,
+ "line": 146,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5469,7 +5967,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 114,
+ "line": 118,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5487,7 +5985,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 111,
+ "line": 115,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5505,7 +6003,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 109,
+ "line": 113,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5523,7 +6021,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 51,
+ "line": 52,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5563,7 +6061,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 116,
+ "line": 120,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5581,7 +6079,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 107,
+ "line": 111,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5688,7 +6186,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 105,
+ "line": 109,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5706,7 +6204,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 115,
+ "line": 119,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5724,7 +6222,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 110,
+ "line": 114,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5742,7 +6240,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 153,
+ "line": 157,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5796,7 +6294,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 108,
+ "line": 112,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -5814,7 +6312,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 161,
+ "line": 165,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -6062,7 +6560,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 148,
+ "line": 152,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -6080,7 +6578,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 461,
+ "line": 465,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -6098,7 +6596,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 545,
+ "line": 549,
"column": 14
},
"exportPaths": ["src/index.ts"],
@@ -6142,7 +6640,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1165,
+ "line": 1169,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -6180,7 +6678,7 @@
"modulePath": "src/index.ts",
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 762,
+ "line": 766,
"column": 1
},
"exportPaths": ["src/index.ts"],
@@ -8069,6 +8567,105 @@
"column": 1
}
},
+ {
+ "name": "resolveAuthRedirectEnvironment",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/auth/projectAuthHealthService.ts",
+ "line": 104,
+ "column": 1
+ }
+ },
+ {
+ "name": "observeProjectAuthRuntimeDiagnostics",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "line": 37,
+ "column": 1
+ }
+ },
+ {
+ "name": "resolveProjectAuthRedirectRuntime",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "line": 129,
+ "column": 1
+ }
+ },
+ {
+ "name": "parseProjectAuthRuntimeStatus",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "line": 166,
+ "column": 1
+ }
+ },
+ {
+ "name": "readSafeGeneratedInfraEnvironment",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "line": 185,
+ "column": 1
+ }
+ },
+ {
+ "name": "resolveOrigin",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "line": 214,
+ "column": 1
+ }
+ },
+ {
+ "name": "parsePort",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "line": 227,
+ "column": 1
+ }
+ },
+ {
+ "name": "splitCommaSeparated",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "line": 234,
+ "column": 1
+ }
+ },
+ {
+ "name": "readSafeStatusValue",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "line": 242,
+ "column": 1
+ }
+ },
+ {
+ "name": "isExactWebCallbackUrl",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "line": 248,
+ "column": 1
+ }
+ },
+ {
+ "name": "exists",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "line": 252,
+ "column": 1
+ }
+ },
{
"name": "createStudioHost",
"description": null,
@@ -8609,6 +9206,105 @@
"column": 1
}
},
+ {
+ "name": "runIsolatedScenario",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "line": 83,
+ "column": 1
+ }
+ },
+ {
+ "name": "runSuccessfulCallbackScenario",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "line": 103,
+ "column": 1
+ }
+ },
+ {
+ "name": "runProviderDenialScenario",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "line": 140,
+ "column": 1
+ }
+ },
+ {
+ "name": "createHarness",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "line": 171,
+ "column": 1
+ }
+ },
+ {
+ "name": "writeDocument",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "line": 203,
+ "column": 1
+ }
+ },
+ {
+ "name": "createGeneratedOAuthSource",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "line": 270,
+ "column": 1
+ }
+ },
+ {
+ "name": "readTransportMarker",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "line": 291,
+ "column": 1
+ }
+ },
+ {
+ "name": "hasPkceVerifier",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "line": 307,
+ "column": 1
+ }
+ },
+ {
+ "name": "waitFor",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "line": 311,
+ "column": 1
+ }
+ },
+ {
+ "name": "moduleUrl",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "line": 319,
+ "column": 1
+ }
+ },
+ {
+ "name": "isRecord",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "line": 323,
+ "column": 1
+ }
+ },
{
"name": "collectSourceFiles",
"description": null,
@@ -8632,7 +9328,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/host/http/authRoutes.ts",
- "line": 45,
+ "line": 46,
"column": 1
}
},
@@ -9347,6 +10043,15 @@
"column": 1
}
},
+ {
+ "name": "createOAuthRuntime",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/host/layout/templates/auth/oauth.test.ts",
+ "line": 5,
+ "column": 1
+ }
+ },
{
"name": "getAuthOAuthRuntimeTs",
"description": null,
@@ -11449,7 +12154,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 509,
+ "line": 513,
"column": 14
}
},
@@ -11458,7 +12163,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 516,
+ "line": 520,
"column": 14
}
},
@@ -11467,7 +12172,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 533,
+ "line": 537,
"column": 14
}
},
@@ -11476,7 +12181,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 545,
+ "line": 549,
"column": 14
}
},
@@ -11485,7 +12190,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 573,
+ "line": 577,
"column": 14
}
},
@@ -11494,7 +12199,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 591,
+ "line": 595,
"column": 14
}
},
@@ -11503,7 +12208,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 624,
+ "line": 628,
"column": 14
}
},
@@ -11512,7 +12217,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 660,
+ "line": 664,
"column": 1
}
},
@@ -11521,7 +12226,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 665,
+ "line": 669,
"column": 9
}
},
@@ -11530,7 +12235,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 684,
+ "line": 688,
"column": 1
}
},
@@ -11539,7 +12244,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 695,
+ "line": 699,
"column": 1
}
},
@@ -11548,7 +12253,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 750,
+ "line": 754,
"column": 1
}
},
@@ -11557,7 +12262,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 762,
+ "line": 766,
"column": 1
}
},
@@ -11566,7 +12271,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 817,
+ "line": 821,
"column": 1
}
},
@@ -11575,7 +12280,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 878,
+ "line": 882,
"column": 1
}
},
@@ -11584,7 +12289,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 935,
+ "line": 939,
"column": 1
}
},
@@ -11593,7 +12298,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 980,
+ "line": 984,
"column": 1
}
},
@@ -11602,7 +12307,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1019,
+ "line": 1023,
"column": 1
}
},
@@ -11611,7 +12316,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1048,
+ "line": 1052,
"column": 1
}
},
@@ -11620,7 +12325,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1148,
+ "line": 1152,
"column": 1
}
},
@@ -11629,7 +12334,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1152,
+ "line": 1156,
"column": 1
}
},
@@ -11638,7 +12343,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1157,
+ "line": 1161,
"column": 1
}
},
@@ -11647,7 +12352,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1165,
+ "line": 1169,
"column": 1
}
},
@@ -11656,7 +12361,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1169,
+ "line": 1173,
"column": 9
}
},
@@ -11665,7 +12370,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1202,
+ "line": 1206,
"column": 1
}
},
@@ -11674,7 +12379,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1207,
+ "line": 1211,
"column": 9
}
},
@@ -11683,7 +12388,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1222,
+ "line": 1226,
"column": 1
}
},
@@ -11692,7 +12397,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1242,
+ "line": 1246,
"column": 1
}
},
@@ -11701,7 +12406,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1265,
+ "line": 1269,
"column": 1
}
},
@@ -11710,7 +12415,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1303,
+ "line": 1307,
"column": 1
}
},
@@ -11719,7 +12424,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1329,
+ "line": 1333,
"column": 1
}
},
@@ -11728,7 +12433,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1345,
+ "line": 1349,
"column": 1
}
},
@@ -11737,7 +12442,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/index.ts",
- "line": 1394,
+ "line": 1398,
"column": 1
}
},
@@ -12848,6 +13553,51 @@
"column": 1
}
},
+ {
+ "name": "applyProjectAuthRuntimeDiagnostics",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/projectAuthRuntimeDiagnostics.ts",
+ "line": 19,
+ "column": 1
+ }
+ },
+ {
+ "name": "resolveRolloutDiagnostic",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/projectAuthRuntimeDiagnostics.ts",
+ "line": 53,
+ "column": 1
+ }
+ },
+ {
+ "name": "resolveHealthStatus",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/projectAuthRuntimeDiagnostics.ts",
+ "line": 86,
+ "column": 1
+ }
+ },
+ {
+ "name": "sortDiagnostics",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/projectAuthRuntimeDiagnostics.ts",
+ "line": 94,
+ "column": 1
+ }
+ },
+ {
+ "name": "uniqueDiagnostics",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/projectAuthRuntimeDiagnostics.ts",
+ "line": 112,
+ "column": 1
+ }
+ },
{
"name": "deriveProjectId",
"description": null,
@@ -13154,6 +13904,42 @@
"column": 1
}
},
+ {
+ "name": "resolveStudioInstancePropertyFields",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 45,
+ "column": 1
+ }
+ },
+ {
+ "name": "resolveStudioInstancePropertyGroups",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 74,
+ "column": 1
+ }
+ },
+ {
+ "name": "createStudioInstancePropertyPatch",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 89,
+ "column": 1
+ }
+ },
+ {
+ "name": "resolveEditorKind",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/propertiesAuthoringModel.ts",
+ "line": 102,
+ "column": 1
+ }
+ },
{
"name": "buildRoutes",
"description": null,
@@ -14180,6 +14966,51 @@
"column": 1
}
},
+ {
+ "name": "requestUrl",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/studioRuntimeApi.test.ts",
+ "line": 54,
+ "column": 1
+ }
+ },
+ {
+ "name": "captureError",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/studioRuntimeApi.test.ts",
+ "line": 60,
+ "column": 1
+ }
+ },
+ {
+ "name": "syncStudioRuntime",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/studioRuntimeApi.ts",
+ "line": 1,
+ "column": 1
+ }
+ },
+ {
+ "name": "readJson",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/studioRuntimeApi.ts",
+ "line": 26,
+ "column": 1
+ }
+ },
+ {
+ "name": "readErrorMessage",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/studioRuntimeApi.ts",
+ "line": 34,
+ "column": 1
+ }
+ },
{
"name": "containsUiNode",
"description": null,
@@ -14315,15 +15146,6 @@
"column": 1
}
},
- {
- "name": "formatPrimitive",
- "description": null,
- "sourceLocation": {
- "filePath": "src/ui/admin/adminPageUtils.ts",
- "line": 9,
- "column": 1
- }
- },
{
"name": "AnkhAdminPage",
"description": null,
@@ -14743,7 +15565,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 64,
+ "line": 65,
"column": 1
}
},
@@ -14752,7 +15574,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 583,
+ "line": 588,
"column": 1
}
},
@@ -14761,7 +15583,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 608,
+ "line": 613,
"column": 1
}
},
@@ -14770,7 +15592,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 642,
+ "line": 647,
"column": 9
}
},
@@ -14779,7 +15601,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 668,
+ "line": 673,
"column": 9
}
},
@@ -14788,7 +15610,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 788,
+ "line": 793,
"column": 1
}
},
@@ -14797,7 +15619,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 799,
+ "line": 804,
"column": 1
}
},
@@ -14806,7 +15628,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 806,
+ "line": 811,
"column": 1
}
},
@@ -14815,7 +15637,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 811,
+ "line": 816,
"column": 1
}
},
@@ -14824,7 +15646,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 816,
+ "line": 821,
"column": 1
}
},
@@ -14833,7 +15655,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 826,
+ "line": 831,
"column": 1
}
},
@@ -14842,7 +15664,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 834,
+ "line": 839,
"column": 1
}
},
@@ -14851,7 +15673,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 852,
+ "line": 857,
"column": 1
}
},
@@ -14860,7 +15682,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 863,
+ "line": 868,
"column": 1
}
},
@@ -14869,7 +15691,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 868,
+ "line": 873,
"column": 1
}
},
@@ -14878,7 +15700,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 886,
+ "line": 891,
"column": 1
}
},
@@ -14887,7 +15709,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 946,
+ "line": 951,
"column": 1
}
},
@@ -14896,7 +15718,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 953,
+ "line": 958,
"column": 1
}
},
@@ -14905,7 +15727,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 961,
+ "line": 966,
"column": 1
}
},
@@ -14914,7 +15736,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 968,
+ "line": 973,
"column": 1
}
},
@@ -14923,7 +15745,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 974,
+ "line": 979,
"column": 1
}
},
@@ -14932,7 +15754,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 989,
+ "line": 994,
"column": 1
}
},
@@ -14941,7 +15763,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 1000,
+ "line": 1005,
"column": 1
}
},
@@ -14950,7 +15772,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 1012,
+ "line": 1017,
"column": 1
}
},
@@ -14959,7 +15781,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 1031,
+ "line": 1036,
"column": 1
}
},
@@ -14968,7 +15790,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 1050,
+ "line": 1055,
"column": 1
}
},
@@ -14977,7 +15799,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 1074,
+ "line": 1079,
"column": 1
}
},
@@ -14986,7 +15808,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 1085,
+ "line": 1090,
"column": 1
}
},
@@ -14995,7 +15817,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 1108,
+ "line": 1113,
"column": 1
}
},
@@ -15004,7 +15826,7 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/AuthAdminPage.tsx",
- "line": 1120,
+ "line": 1125,
"column": 1
}
},
@@ -15022,16 +15844,97 @@
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
- "line": 10,
+ "line": 16,
"column": 1
}
},
{
- "name": "NodeProps",
+ "name": "ResolvedProperties",
"description": null,
"sourceLocation": {
"filePath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
- "line": 53,
+ "line": 41,
+ "column": 1
+ }
+ },
+ {
+ "name": "updateProperty",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "line": 45,
+ "column": 9
+ }
+ },
+ {
+ "name": "InstancePropertyEditor",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "line": 78,
+ "column": 1
+ }
+ },
+ {
+ "name": "NumberPropertyInput",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "line": 103,
+ "column": 1
+ }
+ },
+ {
+ "name": "commit",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "line": 116,
+ "column": 9
+ }
+ },
+ {
+ "name": "BooleanPropertyInput",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "line": 152,
+ "column": 1
+ }
+ },
+ {
+ "name": "ChoicePropertyInput",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "line": 171,
+ "column": 1
+ }
+ },
+ {
+ "name": "UnavailableNode",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "line": 197,
+ "column": 1
+ }
+ },
+ {
+ "name": "NoInstanceProperties",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "line": 207,
+ "column": 1
+ }
+ },
+ {
+ "name": "toInputText",
+ "description": null,
+ "sourceLocation": {
+ "filePath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "line": 217,
"column": 1
}
},
@@ -15374,6 +16277,14 @@
"description": null,
"isReadme": false
},
+ {
+ "kind": "export",
+ "name": "createStudioInstancePropertyPatch",
+ "sourcePath": "src/propertiesAuthoringModel.ts",
+ "symbolName": "createStudioInstancePropertyPatch",
+ "description": null,
+ "isReadme": false
+ },
{
"kind": "export",
"name": "deriveProjectId",
@@ -15462,6 +16373,22 @@
"description": null,
"isReadme": false
},
+ {
+ "kind": "export",
+ "name": "resolveStudioInstancePropertyFields",
+ "sourcePath": "src/propertiesAuthoringModel.ts",
+ "symbolName": "resolveStudioInstancePropertyFields",
+ "description": null,
+ "isReadme": false
+ },
+ {
+ "kind": "export",
+ "name": "resolveStudioInstancePropertyGroups",
+ "sourcePath": "src/propertiesAuthoringModel.ts",
+ "symbolName": "resolveStudioInstancePropertyGroups",
+ "description": null,
+ "isReadme": false
+ },
{
"kind": "export",
"name": "updateNodeInTree",
@@ -15587,6 +16514,11 @@
"toPath": "src/projectWorkspaceContracts.ts",
"sourcePath": "src/index.ts"
},
+ {
+ "fromPath": "src/index.ts",
+ "toPath": "src/propertiesAuthoringModel.ts",
+ "sourcePath": "src/index.ts"
+ },
{
"fromPath": "src/index.ts",
"toPath": "src/templateCatalogContracts.ts",
@@ -15722,6 +16654,21 @@
"toPath": "src/authSettings.ts",
"sourcePath": "src/projectAuthHealth.ts"
},
+ {
+ "fromPath": "src/projectAuthRuntimeDiagnostics.test.ts",
+ "toPath": "src/projectAuthHealth.ts",
+ "sourcePath": "src/projectAuthRuntimeDiagnostics.test.ts"
+ },
+ {
+ "fromPath": "src/projectAuthRuntimeDiagnostics.test.ts",
+ "toPath": "src/projectAuthRuntimeDiagnostics.ts",
+ "sourcePath": "src/projectAuthRuntimeDiagnostics.test.ts"
+ },
+ {
+ "fromPath": "src/projectAuthRuntimeDiagnostics.ts",
+ "toPath": "src/projectAuthHealth.ts",
+ "sourcePath": "src/projectAuthRuntimeDiagnostics.ts"
+ },
{
"fromPath": "src/projectIdentity.test.ts",
"toPath": "src/projectIdentity.ts",
@@ -15757,6 +16704,11 @@
"toPath": "src/projectSecretUsage.ts",
"sourcePath": "src/projectSecretUsage.test.ts"
},
+ {
+ "fromPath": "src/propertiesAuthoringModel.test.ts",
+ "toPath": "src/index.ts",
+ "sourcePath": "src/propertiesAuthoringModel.test.ts"
+ },
{
"fromPath": "src/root.ts",
"toPath": "src/app/index.ts",
@@ -15857,6 +16809,11 @@
"toPath": "src/index.ts",
"sourcePath": "src/studioAdminRouteModel.ts"
},
+ {
+ "fromPath": "src/studioRuntimeApi.test.ts",
+ "toPath": "src/studioRuntimeApi.ts",
+ "sourcePath": "src/studioRuntimeApi.test.ts"
+ },
{
"fromPath": "src/studioSelectionModel.knip.test.ts",
"toPath": "src/studioSelectionModel.ts",
@@ -16247,6 +17204,11 @@
"toPath": "src/host/templateRegistry/index.ts",
"sourcePath": "src/host/generatedAuthAdapterRuntime.smoke.test.ts"
},
+ {
+ "fromPath": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "toPath": "src/host/layout/templates/auth/oauth.ts",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
{
"fromPath": "src/host/hostLifecycle.smoke.test.ts",
"toPath": "src/host/orchestrator/moduleManager.ts",
@@ -16652,6 +17614,11 @@
"toPath": "src/projectAuthHealth.ts",
"sourcePath": "src/host/auth/projectAuthHealthService.ts"
},
+ {
+ "fromPath": "src/host/auth/projectAuthHealthService.ts",
+ "toPath": "src/projectAuthRuntimeDiagnostics.ts",
+ "sourcePath": "src/host/auth/projectAuthHealthService.ts"
+ },
{
"fromPath": "src/host/auth/projectAuthHealthService.ts",
"toPath": "src/host/orchestrator/projectManager.ts",
@@ -16662,6 +17629,36 @@
"toPath": "src/host/secrets/projectSecretService.ts",
"sourcePath": "src/host/auth/projectAuthHealthService.ts"
},
+ {
+ "fromPath": "src/host/auth/projectAuthHealthService.ts",
+ "toPath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "sourcePath": "src/host/auth/projectAuthHealthService.ts"
+ },
+ {
+ "fromPath": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts",
+ "toPath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts"
+ },
+ {
+ "fromPath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "toPath": "src/projectAuthHealth.ts",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromPath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "toPath": "src/projectAuthRuntimeDiagnostics.ts",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromPath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "toPath": "src/host/orchestrator/infraRuntime.ts",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromPath": "src/host/auth/projectAuthRuntimeDiagnostics.ts",
+ "toPath": "src/host/orchestrator/projectPaths.ts",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
{
"fromPath": "src/host/http/authRoutes.test.ts",
"toPath": "src/host/orchestrator/projectManager.ts",
@@ -17512,6 +18509,11 @@
"toPath": "src/projectSecretApi.ts",
"sourcePath": "src/ui/admin/pages/AuthAdminPage.tsx"
},
+ {
+ "fromPath": "src/ui/admin/pages/AuthAdminPage.tsx",
+ "toPath": "src/studioRuntimeApi.ts",
+ "sourcePath": "src/ui/admin/pages/AuthAdminPage.tsx"
+ },
{
"fromPath": "src/ui/admin/pages/AuthAdminPage.tsx",
"toPath": "src/ui/admin/AuthAdminSession.tsx",
@@ -17554,12 +18556,12 @@
},
{
"fromPath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
- "toPath": "src/ui/admin/adminPagePrimitives.tsx",
+ "toPath": "src/propertiesAuthoringModel.ts",
"sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
},
{
"fromPath": "src/ui/admin/pages/PropertiesAdminPage.tsx",
- "toPath": "src/ui/admin/adminPageUtils.ts",
+ "toPath": "src/ui/admin/adminPagePrimitives.tsx",
"sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
},
{
@@ -17617,6 +18619,11 @@
"toPath": "src/host/layout/templates/auth/adapter.ts",
"sourcePath": "src/host/layout/templates/auth/adapter.test.ts"
},
+ {
+ "fromPath": "src/host/layout/templates/auth/callback.test.ts",
+ "toPath": "src/host/layout/templates/auth/callback.ts",
+ "sourcePath": "src/host/layout/templates/auth/callback.test.ts"
+ },
{
"fromPath": "src/host/layout/templates/auth/callback.ts",
"toPath": "src/host/layout/utils/escapeStringLiteral.ts",
@@ -17627,6 +18634,11 @@
"toPath": "src/host/layout/templates/utils/routes.ts",
"sourcePath": "src/host/layout/templates/auth/callback.ts"
},
+ {
+ "fromPath": "src/host/layout/templates/auth/oauth.test.ts",
+ "toPath": "src/host/layout/templates/auth/oauth.ts",
+ "sourcePath": "src/host/layout/templates/auth/oauth.test.ts"
+ },
{
"fromPath": "src/host/layout/templates/auth/oauth.ts",
"toPath": "src/host/layout/auth/resolveAuthLayoutPlan.ts",
@@ -21083,6 +22095,54 @@
"callExpression": "resolveProviderStatus",
"sourcePath": "src/projectAuthHealth.ts"
},
+ {
+ "fromSymbol": "src/projectAuthRuntimeDiagnostics.test.ts",
+ "toSymbol": "describe",
+ "callExpression": "describe",
+ "sourcePath": "src/projectAuthRuntimeDiagnostics.test.ts"
+ },
+ {
+ "fromSymbol": "src/projectAuthRuntimeDiagnostics.test.ts",
+ "toSymbol": "test",
+ "callExpression": "test",
+ "sourcePath": "src/projectAuthRuntimeDiagnostics.test.ts"
+ },
+ {
+ "fromSymbol": "src/projectAuthRuntimeDiagnostics.test.ts",
+ "toSymbol": "applyProjectAuthRuntimeDiagnostics",
+ "callExpression": "applyProjectAuthRuntimeDiagnostics",
+ "sourcePath": "src/projectAuthRuntimeDiagnostics.test.ts"
+ },
+ {
+ "fromSymbol": "src/projectAuthRuntimeDiagnostics.test.ts",
+ "toSymbol": "expect",
+ "callExpression": "expect",
+ "sourcePath": "src/projectAuthRuntimeDiagnostics.test.ts"
+ },
+ {
+ "fromSymbol": "applyProjectAuthRuntimeDiagnostics",
+ "toSymbol": "resolveRolloutDiagnostic",
+ "callExpression": "resolveRolloutDiagnostic",
+ "sourcePath": "src/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "applyProjectAuthRuntimeDiagnostics",
+ "toSymbol": "sortDiagnostics",
+ "callExpression": "sortDiagnostics",
+ "sourcePath": "src/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "applyProjectAuthRuntimeDiagnostics",
+ "toSymbol": "uniqueDiagnostics",
+ "callExpression": "uniqueDiagnostics",
+ "sourcePath": "src/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "applyProjectAuthRuntimeDiagnostics",
+ "toSymbol": "resolveHealthStatus",
+ "callExpression": "resolveHealthStatus",
+ "sourcePath": "src/projectAuthRuntimeDiagnostics.ts"
+ },
{
"fromSymbol": "src/projectIdentity.test.ts",
"toSymbol": "test",
@@ -21545,6 +22605,54 @@
"callExpression": "titleCase",
"sourcePath": "src/projectSecretUsage.ts"
},
+ {
+ "fromSymbol": "src/propertiesAuthoringModel.test.ts",
+ "toSymbol": "describe",
+ "callExpression": "describe",
+ "sourcePath": "src/propertiesAuthoringModel.test.ts"
+ },
+ {
+ "fromSymbol": "src/propertiesAuthoringModel.test.ts",
+ "toSymbol": "test",
+ "callExpression": "test",
+ "sourcePath": "src/propertiesAuthoringModel.test.ts"
+ },
+ {
+ "fromSymbol": "src/propertiesAuthoringModel.test.ts",
+ "toSymbol": "resolveStudioInstancePropertyFields",
+ "callExpression": "resolveStudioInstancePropertyFields",
+ "sourcePath": "src/propertiesAuthoringModel.test.ts"
+ },
+ {
+ "fromSymbol": "src/propertiesAuthoringModel.test.ts",
+ "toSymbol": "expect",
+ "callExpression": "expect",
+ "sourcePath": "src/propertiesAuthoringModel.test.ts"
+ },
+ {
+ "fromSymbol": "src/propertiesAuthoringModel.test.ts",
+ "toSymbol": "resolveStudioInstancePropertyGroups",
+ "callExpression": "resolveStudioInstancePropertyGroups",
+ "sourcePath": "src/propertiesAuthoringModel.test.ts"
+ },
+ {
+ "fromSymbol": "src/propertiesAuthoringModel.test.ts",
+ "toSymbol": "createStudioInstancePropertyPatch",
+ "callExpression": "createStudioInstancePropertyPatch",
+ "sourcePath": "src/propertiesAuthoringModel.test.ts"
+ },
+ {
+ "fromSymbol": "src/propertiesAuthoringModel.ts",
+ "toSymbol": "resolveEditorKind",
+ "callExpression": "resolveEditorKind",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "resolveStudioInstancePropertyGroups",
+ "toSymbol": "resolveStudioInstancePropertyFields",
+ "callExpression": "resolveStudioInstancePropertyFields",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
{
"fromSymbol": "src/root.test.ts",
"toSymbol": "test",
@@ -22187,6 +23295,66 @@
"callExpression": "resolveStudioNavigableLocation",
"sourcePath": "src/studioAdminRouteModel.ts"
},
+ {
+ "fromSymbol": "src/studioRuntimeApi.test.ts",
+ "toSymbol": "afterEach",
+ "callExpression": "afterEach",
+ "sourcePath": "src/studioRuntimeApi.test.ts"
+ },
+ {
+ "fromSymbol": "src/studioRuntimeApi.test.ts",
+ "toSymbol": "test",
+ "callExpression": "test",
+ "sourcePath": "src/studioRuntimeApi.test.ts"
+ },
+ {
+ "fromSymbol": "src/studioRuntimeApi.test.ts",
+ "toSymbol": "mock",
+ "callExpression": "mock",
+ "sourcePath": "src/studioRuntimeApi.test.ts"
+ },
+ {
+ "fromSymbol": "src/studioRuntimeApi.test.ts",
+ "toSymbol": "requestUrl",
+ "callExpression": "requestUrl",
+ "sourcePath": "src/studioRuntimeApi.test.ts"
+ },
+ {
+ "fromSymbol": "src/studioRuntimeApi.test.ts",
+ "toSymbol": "syncStudioRuntime",
+ "callExpression": "syncStudioRuntime",
+ "sourcePath": "src/studioRuntimeApi.test.ts"
+ },
+ {
+ "fromSymbol": "src/studioRuntimeApi.test.ts",
+ "toSymbol": "expect",
+ "callExpression": "expect",
+ "sourcePath": "src/studioRuntimeApi.test.ts"
+ },
+ {
+ "fromSymbol": "src/studioRuntimeApi.test.ts",
+ "toSymbol": "captureError",
+ "callExpression": "captureError",
+ "sourcePath": "src/studioRuntimeApi.test.ts"
+ },
+ {
+ "fromSymbol": "captureError",
+ "toSymbol": "action",
+ "callExpression": "action",
+ "sourcePath": "src/studioRuntimeApi.test.ts"
+ },
+ {
+ "fromSymbol": "syncStudioRuntime",
+ "toSymbol": "readJson",
+ "callExpression": "readJson",
+ "sourcePath": "src/studioRuntimeApi.ts"
+ },
+ {
+ "fromSymbol": "syncStudioRuntime",
+ "toSymbol": "readErrorMessage",
+ "callExpression": "readErrorMessage",
+ "sourcePath": "src/studioRuntimeApi.ts"
+ },
{
"fromSymbol": "src/studioSelectionModel.knip.test.ts",
"toSymbol": "describe",
@@ -25313,6 +26481,246 @@
"callExpression": "loadedBabel.transformAsync",
"sourcePath": "src/host/generatedAuthAdapterRuntime.smoke.test.ts"
},
+ {
+ "fromSymbol": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "toSymbol": "afterEach",
+ "callExpression": "afterEach",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "toSymbol": "rm",
+ "callExpression": "rm",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "toSymbol": "describe",
+ "callExpression": "describe",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "toSymbol": "it",
+ "callExpression": "it",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "toSymbol": "runSuccessfulCallbackScenario",
+ "callExpression": "runSuccessfulCallbackScenario",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "toSymbol": "runProviderDenialScenario",
+ "callExpression": "runProviderDenialScenario",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/generatedOAuthLifecycle.e2e.test.ts",
+ "toSymbol": "runIsolatedScenario",
+ "callExpression": "runIsolatedScenario",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runIsolatedScenario",
+ "toSymbol": "fileURLToPath",
+ "callExpression": "fileURLToPath",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runSuccessfulCallbackScenario",
+ "toSymbol": "createHarness",
+ "callExpression": "createHarness",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runSuccessfulCallbackScenario",
+ "toSymbol": "importDocument",
+ "callExpression": "harness.importDocument",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runSuccessfulCallbackScenario",
+ "toSymbol": "startOAuthAuthorization",
+ "callExpression": "startDocument.startOAuthAuthorization",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runSuccessfulCallbackScenario",
+ "toSymbol": "waitFor",
+ "callExpression": "waitFor",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runSuccessfulCallbackScenario",
+ "toSymbol": "readTransportMarker",
+ "callExpression": "readTransportMarker",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runSuccessfulCallbackScenario",
+ "toSymbol": "expect",
+ "callExpression": "expect",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runSuccessfulCallbackScenario",
+ "toSymbol": "hasPkceVerifier",
+ "callExpression": "hasPkceVerifier",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runSuccessfulCallbackScenario",
+ "toSymbol": "completeOAuthCallback",
+ "callExpression": "callbackDocument.completeOAuthCallback",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runSuccessfulCallbackScenario",
+ "toSymbol": "completeOAuthCallback",
+ "callExpression": "reloadedCallbackDocument.completeOAuthCallback",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runProviderDenialScenario",
+ "toSymbol": "createHarness",
+ "callExpression": "createHarness",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runProviderDenialScenario",
+ "toSymbol": "importDocument",
+ "callExpression": "harness.importDocument",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runProviderDenialScenario",
+ "toSymbol": "startOAuthAuthorization",
+ "callExpression": "startDocument.startOAuthAuthorization",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runProviderDenialScenario",
+ "toSymbol": "waitFor",
+ "callExpression": "waitFor",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runProviderDenialScenario",
+ "toSymbol": "readTransportMarker",
+ "callExpression": "readTransportMarker",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runProviderDenialScenario",
+ "toSymbol": "expect",
+ "callExpression": "expect",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runProviderDenialScenario",
+ "toSymbol": "hasPkceVerifier",
+ "callExpression": "hasPkceVerifier",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runProviderDenialScenario",
+ "toSymbol": "completeOAuthCallback",
+ "callExpression": "callbackDocument.completeOAuthCallback",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "runProviderDenialScenario",
+ "toSymbol": "startOAuthAuthorization",
+ "callExpression": "restartDocument.startOAuthAuthorization",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "createHarness",
+ "toSymbol": "mkdtemp",
+ "callExpression": "mkdtemp",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "createHarness",
+ "toSymbol": "tmpdir",
+ "callExpression": "tmpdir",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "createHarness",
+ "toSymbol": "symlink",
+ "callExpression": "symlink",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "createHarness",
+ "toSymbol": "writeFile",
+ "callExpression": "writeFile",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "createHarness",
+ "toSymbol": "moduleUrl",
+ "callExpression": "moduleUrl",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "importDocument",
+ "toSymbol": "writeDocument",
+ "callExpression": "writeDocument",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "importDocument",
+ "toSymbol": "moduleUrl",
+ "callExpression": "moduleUrl",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "writeDocument",
+ "toSymbol": "mkdir",
+ "callExpression": "mkdir",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "writeDocument",
+ "toSymbol": "writeFile",
+ "callExpression": "writeFile",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "writeDocument",
+ "toSymbol": "createGeneratedOAuthSource",
+ "callExpression": "createGeneratedOAuthSource",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "createGeneratedOAuthSource",
+ "toSymbol": "getAuthOAuthRuntimeTs",
+ "callExpression": "getAuthOAuthRuntimeTs",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "readTransportMarker",
+ "toSymbol": "isRecord",
+ "callExpression": "isRecord",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "waitFor",
+ "toSymbol": "predicate",
+ "callExpression": "predicate",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
+ {
+ "fromSymbol": "moduleUrl",
+ "toSymbol": "pathToFileURL",
+ "callExpression": "pathToFileURL",
+ "sourcePath": "src/host/generatedOAuthLifecycle.e2e.test.ts"
+ },
{
"fromSymbol": "collectSourceFiles",
"toSymbol": "readdir",
@@ -27989,6 +29397,30 @@
"callExpression": "analyzeProjectAuthHealth",
"sourcePath": "src/host/auth/projectAuthHealthService.ts"
},
+ {
+ "fromSymbol": "get",
+ "toSymbol": "getInfrastructureStatus",
+ "callExpression": "this.projectManager.getInfrastructureStatus",
+ "sourcePath": "src/host/auth/projectAuthHealthService.ts"
+ },
+ {
+ "fromSymbol": "get",
+ "toSymbol": "observeProjectAuthRuntimeDiagnostics",
+ "callExpression": "observeProjectAuthRuntimeDiagnostics",
+ "sourcePath": "src/host/auth/projectAuthHealthService.ts"
+ },
+ {
+ "fromSymbol": "get",
+ "toSymbol": "resolveAuthRedirectEnvironment",
+ "callExpression": "resolveAuthRedirectEnvironment",
+ "sourcePath": "src/host/auth/projectAuthHealthService.ts"
+ },
+ {
+ "fromSymbol": "get",
+ "toSymbol": "applyProjectAuthRuntimeDiagnostics",
+ "callExpression": "applyProjectAuthRuntimeDiagnostics",
+ "sourcePath": "src/host/auth/projectAuthHealthService.ts"
+ },
{
"fromSymbol": "readEditableManifest",
"toSymbol": "getStudioManifest",
@@ -28001,6 +29433,102 @@
"callExpression": "this.projectManager.getProjectManifest",
"sourcePath": "src/host/auth/projectAuthHealthService.ts"
},
+ {
+ "fromSymbol": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts",
+ "toSymbol": "describe",
+ "callExpression": "describe",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts",
+ "toSymbol": "test",
+ "callExpression": "test",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts",
+ "toSymbol": "resolveProjectAuthRedirectRuntime",
+ "callExpression": "resolveProjectAuthRedirectRuntime",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts",
+ "toSymbol": "expect",
+ "callExpression": "expect",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts",
+ "toSymbol": "parseProjectAuthRuntimeStatus",
+ "callExpression": "parseProjectAuthRuntimeStatus",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.test.ts"
+ },
+ {
+ "fromSymbol": "observeProjectAuthRuntimeDiagnostics",
+ "toSymbol": "readSafeGeneratedInfraEnvironment",
+ "callExpression": "readSafeGeneratedInfraEnvironment",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "observeProjectAuthRuntimeDiagnostics",
+ "toSymbol": "resolveProjectAuthRedirectRuntime",
+ "callExpression": "resolveProjectAuthRedirectRuntime",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "observeProjectAuthRuntimeDiagnostics",
+ "toSymbol": "runProjectInfraScriptCapture",
+ "callExpression": "runProjectInfraScriptCapture",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "observeProjectAuthRuntimeDiagnostics",
+ "toSymbol": "parseProjectAuthRuntimeStatus",
+ "callExpression": "parseProjectAuthRuntimeStatus",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "resolveProjectAuthRedirectRuntime",
+ "toSymbol": "resolveOrigin",
+ "callExpression": "resolveOrigin",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "resolveProjectAuthRedirectRuntime",
+ "toSymbol": "resolveAuthRedirectConfiguration",
+ "callExpression": "resolveAuthRedirectConfiguration",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "resolveProjectAuthRedirectRuntime",
+ "toSymbol": "splitCommaSeparated",
+ "callExpression": "splitCommaSeparated",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "parseProjectAuthRuntimeStatus",
+ "toSymbol": "readSafeStatusValue",
+ "callExpression": "readSafeStatusValue",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "readSafeGeneratedInfraEnvironment",
+ "toSymbol": "getProjectPath",
+ "callExpression": "getProjectPath",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "readSafeGeneratedInfraEnvironment",
+ "toSymbol": "exists",
+ "callExpression": "exists",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
+ {
+ "fromSymbol": "resolveOrigin",
+ "toSymbol": "parsePort",
+ "callExpression": "parsePort",
+ "sourcePath": "src/host/auth/projectAuthRuntimeDiagnostics.ts"
+ },
{
"fromSymbol": "src/host/http/authRoutes.test.ts",
"toSymbol": "describe",
@@ -34145,6 +35673,12 @@
"callExpression": "flushManifest",
"sourcePath": "src/ui/admin/pages/AuthAdminPage.tsx"
},
+ {
+ "fromSymbol": "src/ui/admin/pages/AuthAdminPage.tsx",
+ "toSymbol": "syncStudioRuntime",
+ "callExpression": "syncStudioRuntime",
+ "sourcePath": "src/ui/admin/pages/AuthAdminPage.tsx"
+ },
{
"fromSymbol": "src/ui/admin/pages/AuthAdminPage.tsx",
"toSymbol": "setMessage",
@@ -34488,15 +36022,81 @@
"sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
},
{
- "fromSymbol": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "fromSymbol": "ResolvedProperties",
+ "toSymbol": "useStudio",
+ "callExpression": "useStudio",
+ "sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
+ },
+ {
+ "fromSymbol": "ResolvedProperties",
+ "toSymbol": "resolveStudioInstancePropertyGroups",
+ "callExpression": "resolveStudioInstancePropertyGroups",
+ "sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
+ },
+ {
+ "fromSymbol": "updateProperty",
"toSymbol": "updateNode",
"callExpression": "studio.updateNode",
"sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
},
+ {
+ "fromSymbol": "updateProperty",
+ "toSymbol": "createStudioInstancePropertyPatch",
+ "callExpression": "createStudioInstancePropertyPatch",
+ "sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
+ },
{
"fromSymbol": "src/ui/admin/pages/PropertiesAdminPage.tsx",
- "toSymbol": "formatPrimitive",
- "callExpression": "formatPrimitive",
+ "toSymbol": "updateProperty",
+ "callExpression": "updateProperty",
+ "sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
+ },
+ {
+ "fromSymbol": "InstancePropertyEditor",
+ "toSymbol": "toInputText",
+ "callExpression": "toInputText",
+ "sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
+ },
+ {
+ "fromSymbol": "NumberPropertyInput",
+ "toSymbol": "toInputText",
+ "callExpression": "toInputText",
+ "sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
+ },
+ {
+ "fromSymbol": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "toSymbol": "setDraft",
+ "callExpression": "setDraft",
+ "sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
+ },
+ {
+ "fromSymbol": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "toSymbol": "toInputText",
+ "callExpression": "toInputText",
+ "sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
+ },
+ {
+ "fromSymbol": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "toSymbol": "setError",
+ "callExpression": "setError",
+ "sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
+ },
+ {
+ "fromSymbol": "commit",
+ "toSymbol": "setError",
+ "callExpression": "setError",
+ "sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
+ },
+ {
+ "fromSymbol": "commit",
+ "toSymbol": "onChange",
+ "callExpression": "onChange",
+ "sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
+ },
+ {
+ "fromSymbol": "src/ui/admin/pages/PropertiesAdminPage.tsx",
+ "toSymbol": "onChange",
+ "callExpression": "onChange",
"sourcePath": "src/ui/admin/pages/PropertiesAdminPage.tsx"
},
{
@@ -34979,6 +36579,24 @@
"callExpression": "expect",
"sourcePath": "src/host/layout/templates/auth/adapter.test.ts"
},
+ {
+ "fromSymbol": "src/host/layout/templates/auth/callback.test.ts",
+ "toSymbol": "test",
+ "callExpression": "test",
+ "sourcePath": "src/host/layout/templates/auth/callback.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/layout/templates/auth/callback.test.ts",
+ "toSymbol": "getAuthOAuthCallbackTsx",
+ "callExpression": "getAuthOAuthCallbackTsx",
+ "sourcePath": "src/host/layout/templates/auth/callback.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/layout/templates/auth/callback.test.ts",
+ "toSymbol": "expect",
+ "callExpression": "expect",
+ "sourcePath": "src/host/layout/templates/auth/callback.test.ts"
+ },
{
"fromSymbol": "getAuthOAuthCallbackTsx",
"toSymbol": "escapeStringLiteral",
@@ -34991,6 +36609,30 @@
"callExpression": "routeNameToGroupedHref",
"sourcePath": "src/host/layout/templates/auth/callback.ts"
},
+ {
+ "fromSymbol": "createOAuthRuntime",
+ "toSymbol": "getAuthOAuthRuntimeTs",
+ "callExpression": "getAuthOAuthRuntimeTs",
+ "sourcePath": "src/host/layout/templates/auth/oauth.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/layout/templates/auth/oauth.test.ts",
+ "toSymbol": "test",
+ "callExpression": "test",
+ "sourcePath": "src/host/layout/templates/auth/oauth.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/layout/templates/auth/oauth.test.ts",
+ "toSymbol": "createOAuthRuntime",
+ "callExpression": "createOAuthRuntime",
+ "sourcePath": "src/host/layout/templates/auth/oauth.test.ts"
+ },
+ {
+ "fromSymbol": "src/host/layout/templates/auth/oauth.test.ts",
+ "toSymbol": "expect",
+ "callExpression": "expect",
+ "sourcePath": "src/host/layout/templates/auth/oauth.test.ts"
+ },
{
"fromSymbol": "getAuthOAuthRuntimeTs",
"toSymbol": "escapeStringLiteral",
@@ -35543,6 +37185,81 @@
"fromSymbol": "MoveNodeToPlacementResult",
"toType": "UiNode",
"sourcePath": "src/index.ts"
+ },
+ {
+ "fromSymbol": "resolveStudioInstancePropertyFields",
+ "toType": "Readonly",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "resolveStudioInstancePropertyFields",
+ "toType": "StudioAuthoringComponentMeta",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "resolveStudioInstancePropertyFields",
+ "toType": "StudioInstancePropertyField",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "resolveStudioInstancePropertyFields",
+ "toType": "UiNode",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "resolveStudioInstancePropertyGroups",
+ "toType": "Readonly",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "resolveStudioInstancePropertyGroups",
+ "toType": "StudioAuthoringComponentMeta",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "resolveStudioInstancePropertyGroups",
+ "toType": "StudioInstancePropertyGroup",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "resolveStudioInstancePropertyGroups",
+ "toType": "UiNode",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "createStudioInstancePropertyPatch",
+ "toType": "Readonly",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "createStudioInstancePropertyPatch",
+ "toType": "StudioInstancePropertyValue",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "createStudioInstancePropertyPatch",
+ "toType": "UiNode",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "StudioAuthoringComponentMeta",
+ "toType": "Readonly",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "StudioAuthoringComponentMeta",
+ "toType": "StudioAuthoringPropSchema",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "StudioInstancePropertyField",
+ "toType": "StudioInstancePropertyEditorKind",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
+ },
+ {
+ "fromSymbol": "StudioInstancePropertyGroup",
+ "toType": "StudioInstancePropertyField",
+ "sourcePath": "src/propertiesAuthoringModel.ts"
}
],
"componentComposition": []
diff --git a/src/index.ts b/src/index.ts
index 0dfd255f..a2a3c498 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -39,6 +39,7 @@ export type {
ProjectSortKey,
StudioProjectSummary,
} from './projectWorkspaceContracts';
+export * from './propertiesAuthoringModel';
export type {
TemplateCatalog,
TemplateCatalogCategory,
@@ -92,6 +93,9 @@ export const STUDIO_PUBLIC_CONTRACTS = [
'StudioCommand',
'StudioEvent',
'StudioComponentMetaRegistry',
+ 'StudioInstancePropertyField',
+ 'resolveStudioInstancePropertyGroups',
+ 'createStudioInstancePropertyPatch',
'ProjectAuthHealth',
'ProjectSecretUsageSummary',
'StudioAdminRouteId',
diff --git a/src/propertiesAuthoringModel.test.ts b/src/propertiesAuthoringModel.test.ts
new file mode 100644
index 00000000..5dffe1f9
--- /dev/null
+++ b/src/propertiesAuthoringModel.test.ts
@@ -0,0 +1,169 @@
+import type { UiNode } from '@ankhorage/contracts';
+import { ZORA_COMPONENT_META } from '@ankhorage/zora/metadata';
+import { describe, expect, test } from 'bun:test';
+
+import {
+ createStudioInstancePropertyPatch,
+ resolveStudioInstancePropertyFields,
+ resolveStudioInstancePropertyGroups,
+ type StudioAuthoringMetaRegistry,
+} from './index';
+
+const registry: StudioAuthoringMetaRegistry = {
+ Button: {
+ name: 'Button',
+ props: {
+ children: {
+ type: 'string',
+ category: 'Content',
+ label: 'Label',
+ default: 'Continue',
+ authoring: { authority: 'instance' },
+ },
+ variant: {
+ type: 'enum',
+ category: 'Style',
+ enum: ['solid', 'outline'],
+ authoring: { authority: 'theme' },
+ },
+ internalState: {
+ type: 'string',
+ category: 'Internal',
+ },
+ },
+ },
+ Text: {
+ name: 'Text',
+ props: {
+ text: {
+ type: 'string',
+ category: 'Content',
+ authoring: { authority: 'instance' },
+ },
+ numberOfLines: {
+ type: 'number',
+ category: 'Layout',
+ label: 'Line clamp',
+ authoring: { authority: 'instance' },
+ },
+ },
+ },
+};
+
+describe('instance Properties authoring model', () => {
+ test('exposes only instance-authorable fields', () => {
+ const node: UiNode = {
+ id: 'button',
+ type: 'Button',
+ props: { children: 'Save', variant: 'outline', internalState: 'busy' },
+ };
+
+ const fields = resolveStudioInstancePropertyFields(node, registry);
+
+ expect(fields).toEqual([
+ {
+ name: 'children',
+ label: 'Label',
+ category: 'Content',
+ schemaType: 'string',
+ editor: 'text',
+ options: [],
+ value: 'Save',
+ defaultValue: 'Continue',
+ isExplicit: true,
+ },
+ ]);
+ });
+
+ test('uses metadata defaults without persisting them as explicit node values', () => {
+ const node: UiNode = { id: 'button', type: 'Button', props: {} };
+
+ expect(resolveStudioInstancePropertyFields(node, registry)[0]).toMatchObject({
+ name: 'children',
+ value: 'Continue',
+ isExplicit: false,
+ });
+ });
+
+ test('preserves metadata order while grouping fields', () => {
+ const node: UiNode = {
+ id: 'text',
+ type: 'Text',
+ props: { text: 'Hello', numberOfLines: 2 },
+ };
+
+ expect(resolveStudioInstancePropertyGroups(node, registry)).toEqual([
+ {
+ category: 'Content',
+ fields: [expect.objectContaining({ name: 'text', editor: 'text' })],
+ },
+ {
+ category: 'Layout',
+ fields: [expect.objectContaining({ name: 'numberOfLines', editor: 'number' })],
+ },
+ ]);
+ });
+
+ test('returns no fields for unknown components', () => {
+ const node: UiNode = { id: 'unknown', type: 'Unknown', props: { title: 'Hidden' } };
+
+ expect(resolveStudioInstancePropertyFields(node, registry)).toEqual([]);
+ });
+
+ test('updates one prop without mutating siblings', () => {
+ const node: UiNode = {
+ id: 'button',
+ type: 'Button',
+ props: { children: 'Save', trackingId: 'checkout' },
+ };
+
+ expect(createStudioInstancePropertyPatch(node, 'children', 'Continue')).toEqual({
+ props: { trackingId: 'checkout', children: 'Continue' },
+ });
+ expect(node.props).toEqual({ children: 'Save', trackingId: 'checkout' });
+ });
+
+ test('removes an optional prop when the editor clears it', () => {
+ const node: UiNode = {
+ id: 'text',
+ type: 'Text',
+ props: { text: 'Hello', numberOfLines: 2 },
+ };
+
+ expect(createStudioInstancePropertyPatch(node, 'numberOfLines', undefined)).toEqual({
+ props: { text: 'Hello' },
+ });
+ });
+
+ test('consumes released ZORA Heading metadata without exposing theme presentation', () => {
+ const node: UiNode = {
+ id: 'heading',
+ type: 'Heading',
+ props: {
+ text: 'Overview',
+ level: 3,
+ size: 'h1',
+ color: 'accent',
+ numberOfLines: 2,
+ },
+ };
+
+ const fields = resolveStudioInstancePropertyFields(node, ZORA_COMPONENT_META);
+
+ expect(fields.map((field) => field.name)).toEqual([
+ 'text',
+ 'i18nKey',
+ 'level',
+ 'numberOfLines',
+ ]);
+ expect(fields.find((field) => field.name === 'level')).toMatchObject({
+ editor: 'choice',
+ options: [1, 2, 3, 4, 5, 6],
+ value: 3,
+ defaultValue: 2,
+ isExplicit: true,
+ });
+ expect(fields.some((field) => field.name === 'size')).toBe(false);
+ expect(fields.some((field) => field.name === 'color')).toBe(false);
+ });
+});
diff --git a/src/propertiesAuthoringModel.ts b/src/propertiesAuthoringModel.ts
new file mode 100644
index 00000000..6f599cc3
--- /dev/null
+++ b/src/propertiesAuthoringModel.ts
@@ -0,0 +1,108 @@
+import type { UiNode } from '@ankhorage/contracts';
+
+export interface StudioAuthoringPropSchema {
+ readonly type: string;
+ readonly category: string;
+ readonly label?: string;
+ readonly enum?: readonly (string | number)[];
+ readonly default?: unknown;
+ readonly authoring?: {
+ readonly authority: string;
+ };
+}
+
+export interface StudioAuthoringComponentMeta {
+ readonly name: string;
+ readonly props: Readonly>;
+}
+
+export type StudioAuthoringMetaRegistry = Readonly<
+ Record
+>;
+
+export type StudioInstancePropertyEditorKind =
+ 'text' | 'number' | 'boolean' | 'choice' | 'unsupported';
+
+export interface StudioInstancePropertyField {
+ readonly name: string;
+ readonly label: string;
+ readonly category: string;
+ readonly schemaType: string;
+ readonly editor: StudioInstancePropertyEditorKind;
+ readonly options: readonly (string | number)[];
+ readonly value: unknown;
+ readonly defaultValue: unknown;
+ readonly isExplicit: boolean;
+}
+
+export interface StudioInstancePropertyGroup {
+ readonly category: string;
+ readonly fields: readonly StudioInstancePropertyField[];
+}
+
+export type StudioInstancePropertyValue = string | number | boolean;
+
+export function resolveStudioInstancePropertyFields(
+ node: UiNode,
+ registry: StudioAuthoringMetaRegistry,
+): readonly StudioInstancePropertyField[] {
+ const componentMeta = new Map(Object.entries(registry)).get(node.type);
+ if (!componentMeta) return [];
+
+ const propValues = new Map(Object.entries(node.props ?? {}));
+
+ return Object.entries(componentMeta.props).flatMap(([name, schema]) => {
+ if (schema.authoring?.authority !== 'instance') return [];
+
+ const isExplicit = propValues.has(name);
+ return [
+ {
+ name,
+ label: schema.label ?? name,
+ category: schema.category,
+ schemaType: schema.type,
+ editor: resolveEditorKind(schema),
+ options: schema.enum ?? [],
+ value: isExplicit ? propValues.get(name) : schema.default,
+ defaultValue: schema.default,
+ isExplicit,
+ },
+ ];
+ });
+}
+
+export function resolveStudioInstancePropertyGroups(
+ node: UiNode,
+ registry: StudioAuthoringMetaRegistry,
+): readonly StudioInstancePropertyGroup[] {
+ const groups = new Map();
+
+ for (const field of resolveStudioInstancePropertyFields(node, registry)) {
+ const current = groups.get(field.category) ?? [];
+ current.push(field);
+ groups.set(field.category, current);
+ }
+
+ return Array.from(groups, ([category, fields]) => ({ category, fields }));
+}
+
+export function createStudioInstancePropertyPatch(
+ node: UiNode,
+ propertyName: string,
+ value: StudioInstancePropertyValue | undefined,
+): Readonly> {
+ const entries = Object.entries(node.props ?? {}).filter(([name]) => name !== propertyName);
+ if (value !== undefined) {
+ entries.push([propertyName, value]);
+ }
+
+ return { props: Object.fromEntries(entries) };
+}
+
+function resolveEditorKind(schema: StudioAuthoringPropSchema): StudioInstancePropertyEditorKind {
+ if (schema.type === 'string') return 'text';
+ if (schema.type === 'number') return 'number';
+ if (schema.type === 'boolean') return 'boolean';
+ if (schema.type === 'enum' && (schema.enum?.length ?? 0) > 0) return 'choice';
+ return 'unsupported';
+}
diff --git a/src/ui/admin/adminPageUtils.ts b/src/ui/admin/adminPageUtils.ts
index 394e37af..12e24efd 100644
--- a/src/ui/admin/adminPageUtils.ts
+++ b/src/ui/admin/adminPageUtils.ts
@@ -5,9 +5,3 @@ export function readRecord(value: unknown): Record {
export function readString(value: unknown): string | null {
return typeof value === 'string' ? value : null;
}
-
-export function formatPrimitive(value: unknown): string {
- if (typeof value === 'string') return value;
- if (typeof value === 'number' || typeof value === 'boolean') return String(value);
- return JSON.stringify(value);
-}
diff --git a/src/ui/admin/pages/PropertiesAdminPage.test.ts b/src/ui/admin/pages/PropertiesAdminPage.test.ts
index 517d076c..e068c453 100644
--- a/src/ui/admin/pages/PropertiesAdminPage.test.ts
+++ b/src/ui/admin/pages/PropertiesAdminPage.test.ts
@@ -13,3 +13,19 @@ test('resolves properties nodes across the manifest and activates the owning scr
expect(source).toContain('findNodeInManifest');
expect(source).toContain('setActiveScreenId');
});
+
+test('consumes canonical ZORA metadata instead of dumping arbitrary node props', () => {
+ expect(source).toContain('ZORA_COMPONENT_META');
+ expect(source).toContain('resolveStudioInstancePropertyGroups');
+ expect(source).toContain('createStudioInstancePropertyPatch');
+ expect(source).not.toContain('Object.entries(node.props');
+});
+
+test('keeps node alias as read-only identity instead of an authorable property', () => {
+ expect(source).toContain(' {
+ expect(source).toContain('Visual design properties are theme-owned');
+});
diff --git a/src/ui/admin/pages/PropertiesAdminPage.tsx b/src/ui/admin/pages/PropertiesAdminPage.tsx
index 4c09e06b..a9ae256c 100644
--- a/src/ui/admin/pages/PropertiesAdminPage.tsx
+++ b/src/ui/admin/pages/PropertiesAdminPage.tsx
@@ -1,11 +1,17 @@
import type { UiNode } from '@ankhorage/contracts';
-import { Card, Text } from '@ankhorage/zora';
+import { Card, Text, ZORA_COMPONENT_META } from '@ankhorage/zora';
import React from 'react';
+import { Pressable, StyleSheet, View } from 'react-native';
import { useStudio } from '../../../core/StudioContext';
import { findNodeInManifest, findScreenIdForNode } from '../../../manifestState';
+import {
+ createStudioInstancePropertyPatch,
+ resolveStudioInstancePropertyGroups,
+ type StudioInstancePropertyField,
+ type StudioInstancePropertyValue,
+} from '../../../propertiesAuthoringModel';
import { AdminHeader, AdminScroll, Field, Input, KeyValue } from '../adminPagePrimitives';
-import { formatPrimitive } from '../adminPageUtils';
export function PropertiesAdminPage({ nodeId }: { readonly nodeId: string | null }) {
const studio = useStudio();
@@ -25,46 +31,222 @@ export function PropertiesAdminPage({ nodeId }: { readonly nodeId: string | null
- {node ? (
-
-
-
-
- studio.updateNode(node.id, { alias })}
- />
-
-
-
- ) : (
-
-
- The requested node could not be resolved in the active Studio screen.
-
-
- )}
+ {node ? : }
);
}
-function NodeProps({ node }: { readonly node: UiNode }) {
- const entries = Object.entries(node.props ?? {});
- if (entries.length === 0) {
- return (
-
- This node has no editable primitive props.
-
- );
- }
+function ResolvedProperties({ node }: { readonly node: UiNode }) {
+ const studio = useStudio();
+ const componentMeta = new Map(Object.entries(ZORA_COMPONENT_META)).get(node.type);
+ const groups = resolveStudioInstancePropertyGroups(node, ZORA_COMPONENT_META);
+ const updateProperty = (propertyName: string, value: StudioInstancePropertyValue | undefined) => {
+ studio.updateNode(node.id, createStudioInstancePropertyPatch(node, propertyName, value));
+ };
return (
<>
- {entries.map(([key, value]) => (
-
+
+
+
+ {node.alias ? : null}
+
+ {groups.map((group) => (
+
+
+ {group.fields.map((field) => (
+ updateProperty(field.name, value)}
+ />
+ ))}
+
+
))}
+ {groups.length === 0 ? : null}
+
+ Visual design properties are theme-owned and intentionally unavailable as per-instance
+ overrides.
+
+ >
+ );
+}
+
+function InstancePropertyEditor(props: {
+ readonly field: StudioInstancePropertyField;
+ readonly onChange: (value: StudioInstancePropertyValue | undefined) => void;
+}) {
+ const { field, onChange } = props;
+
+ return (
+
+ {field.editor === 'text' ? (
+
+ ) : null}
+ {field.editor === 'number' ? : null}
+ {field.editor === 'boolean' ? (
+
+ ) : null}
+ {field.editor === 'choice' ? : null}
+ {field.editor === 'unsupported' ? (
+
+ This instance property requires a dedicated editor that is not available yet.
+
+ ) : null}
+
+ );
+}
+
+function NumberPropertyInput(props: {
+ readonly field: StudioInstancePropertyField;
+ readonly onChange: (value: number | undefined) => void;
+}) {
+ const { field, onChange } = props;
+ const [draft, setDraft] = React.useState(toInputText(field.value));
+ const [error, setError] = React.useState(null);
+
+ React.useEffect(() => {
+ setDraft(toInputText(field.value));
+ setError(null);
+ }, [field.name, field.value]);
+
+ const commit = () => {
+ const normalized = draft.trim();
+ if (!normalized) {
+ setError(null);
+ onChange(undefined);
+ return;
+ }
+
+ const value = Number(normalized);
+ if (!Number.isFinite(value)) {
+ setError('Enter a valid number.');
+ return;
+ }
+
+ setError(null);
+ onChange(value);
+ };
+
+ return (
+ <>
+
+ {error ? (
+
+ {error}
+
+ ) : null}
>
);
}
+
+function BooleanPropertyInput(props: {
+ readonly field: StudioInstancePropertyField;
+ readonly onChange: (value: boolean) => void;
+}) {
+ const { field, onChange } = props;
+ const checked = field.value === true;
+
+ return (
+ onChange(!checked)}
+ style={[styles.toggle, checked ? styles.choiceSelected : null]}
+ >
+ {checked ? 'On' : 'Off'}
+
+ );
+}
+
+function ChoicePropertyInput(props: {
+ readonly field: StudioInstancePropertyField;
+ readonly onChange: (value: string | number) => void;
+}) {
+ const { field, onChange } = props;
+
+ return (
+
+ {field.options.map((option) => {
+ const selected = field.value === option;
+ return (
+ onChange(option)}
+ style={[styles.choice, selected ? styles.choiceSelected : null]}
+ >
+ {String(option)}
+
+ );
+ })}
+
+ );
+}
+
+function UnavailableNode() {
+ return (
+
+
+ The requested node could not be resolved in the current project manifest.
+
+
+ );
+}
+
+function NoInstanceProperties() {
+ return (
+
+
+ This component exposes no properties for per-instance authoring.
+
+
+ );
+}
+
+function toInputText(value: unknown): string {
+ return typeof value === 'string' || typeof value === 'number' ? String(value) : '';
+}
+
+const styles = StyleSheet.create({
+ fieldStack: {
+ gap: 14,
+ },
+ choiceRow: {
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: 8,
+ },
+ choice: {
+ minHeight: 40,
+ justifyContent: 'center',
+ borderWidth: 1,
+ borderRadius: 8,
+ borderColor: 'transparent',
+ paddingHorizontal: 12,
+ paddingVertical: 8,
+ },
+ choiceSelected: {
+ borderColor: '#4f46e5',
+ },
+ toggle: {
+ minHeight: 44,
+ alignSelf: 'flex-start',
+ justifyContent: 'center',
+ borderWidth: 1,
+ borderRadius: 8,
+ borderColor: 'transparent',
+ paddingHorizontal: 16,
+ paddingVertical: 8,
+ },
+});