@inf-monkeys-tech/monkeys 1.0.66 → 1.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/contracts/declarative-control-http.d.ts +1448 -0
- package/lib/contracts/declarative-control-http.d.ts.map +1 -1
- package/lib/contracts/declarative-control.d.ts +764 -3
- package/lib/contracts/declarative-control.d.ts.map +1 -1
- package/lib/contracts/declarative-control.js +27 -5
- package/lib/contracts/declarative-control.js.map +1 -1
- package/lib/contracts/tenant.d.ts +69 -0
- package/lib/contracts/tenant.d.ts.map +1 -1
- package/lib/contracts/tenant.js +279 -93
- package/lib/contracts/tenant.js.map +1 -1
- package/lib/esm/contracts/index.mjs +144 -50
- package/lib/esm/contracts/index.mjs.map +1 -1
- package/lib/esm/index.mjs +221 -50
- package/lib/esm/index.mjs.map +1 -1
- package/lib/esm/runtime/index.mjs +220 -50
- package/lib/esm/runtime/index.mjs.map +1 -1
- package/lib/esm/schemas/index.mjs +144 -50
- package/lib/esm/schemas/index.mjs.map +1 -1
- package/lib/json-schema/navigation-release.schema.json +582 -0
- package/lib/json-schema/navigation-runtime-bundle.schema.json +588 -1
- package/lib/json-schema/page-release.schema.json +9 -1
- package/lib/json-schema/page-runtime-bundle.schema.json +9 -1
- package/lib/json-schema/tenant-product-config.schema.json +73 -0
- package/lib/json-schema/tenant-runtime-config.schema.json +73 -0
- package/lib/json-schema/workbench-release.schema.json +9 -1
- package/lib/json-schema/workbench-runtime-bundle.schema.json +18 -2
- package/lib/runtime/declarative-control-compiler.d.ts.map +1 -1
- package/lib/runtime/declarative-control-compiler.js +27 -0
- package/lib/runtime/declarative-control-compiler.js.map +1 -1
- package/lib/runtime/index.d.ts +1 -0
- package/lib/runtime/index.d.ts.map +1 -1
- package/lib/runtime/index.js +1 -0
- package/lib/runtime/index.js.map +1 -1
- package/lib/runtime/menu-compiler.d.ts +19 -1
- package/lib/runtime/menu-compiler.d.ts.map +1 -1
- package/lib/runtime/menu-compiler.js +34 -0
- package/lib/runtime/menu-compiler.js.map +1 -1
- package/lib/runtime/navigation-availability.d.ts +6 -0
- package/lib/runtime/navigation-availability.d.ts.map +1 -0
- package/lib/runtime/navigation-availability.js +17 -0
- package/lib/runtime/navigation-availability.js.map +1 -0
- package/lib/schemas/index.d.ts +310 -1
- package/lib/schemas/index.d.ts.map +1 -1
- package/lib/schemas/index.js +5 -4
- package/lib/schemas/index.js.map +1 -1
- package/package.json +1 -1
- package/test/fixtures/navigation-three-roots-topology.json +275 -0
|
@@ -9496,18 +9496,21 @@ var RouteClaimSchema = RouteClaimBaseSchema.safeExtend({
|
|
|
9496
9496
|
}).strict();
|
|
9497
9497
|
var DeclarativeRouteClaimSchema = RouteClaimSchema;
|
|
9498
9498
|
var LegacyDeclarativeRouteClaimSchema = LegacyRouteClaimSchema;
|
|
9499
|
-
var
|
|
9499
|
+
var LegacyCompiledRouteMatcherSchema = z9.object({
|
|
9500
9500
|
caseSensitive: z9.boolean(),
|
|
9501
9501
|
trailingSlash: z9.enum(["preserve", "remove", "require"]),
|
|
9502
9502
|
parameters: z9.array(RouteSpaceParameterSchema)
|
|
9503
9503
|
}).strict();
|
|
9504
|
+
var CompiledRouteMatcherSchema = LegacyCompiledRouteMatcherSchema.safeExtend({
|
|
9505
|
+
surface: ProductSurfaceSchema
|
|
9506
|
+
}).strict();
|
|
9504
9507
|
var CompiledRouteClaimSchema = RouteClaimSchema.safeExtend({
|
|
9505
9508
|
normalizedPath: RoutePathTemplateSchema,
|
|
9506
9509
|
matcher: CompiledRouteMatcherSchema
|
|
9507
9510
|
}).strict();
|
|
9508
9511
|
var LegacyCompiledRouteClaimSchema = LegacyRouteClaimSchema.safeExtend({
|
|
9509
9512
|
normalizedPath: RoutePathTemplateSchema,
|
|
9510
|
-
matcher:
|
|
9513
|
+
matcher: LegacyCompiledRouteMatcherSchema
|
|
9511
9514
|
}).strict();
|
|
9512
9515
|
var validateDeclaredRouteSurfaces = (supportedSurfaces, routeClaims, context) => {
|
|
9513
9516
|
if (uniqueArray(supportedSurfaces, (surface) => surface)) {
|
|
@@ -10073,6 +10076,12 @@ var ResolvedNavigationTargetSchema = z9.object({
|
|
|
10073
10076
|
targetRevisionRef: RevisionRefSchema,
|
|
10074
10077
|
releaseRevisionRef: RevisionRefSchema.optional()
|
|
10075
10078
|
}).strict();
|
|
10079
|
+
var UnavailableNavigationTargetSchema = z9.object({
|
|
10080
|
+
nodeId: ContractIdentifierSchema,
|
|
10081
|
+
stableTargetRef: StableRefSchema.refine((reference) => reference.kind === "page", "Only missing Pages can be isolated."),
|
|
10082
|
+
reason: z9.literal("page-missing"),
|
|
10083
|
+
accessPolicy: AccessPolicySchema.nullable()
|
|
10084
|
+
}).strict();
|
|
10076
10085
|
var NavigationReleaseSchema = z9.object({
|
|
10077
10086
|
contract: z9.literal("NavigationRelease"),
|
|
10078
10087
|
...ReleaseBaseShape,
|
|
@@ -10082,13 +10091,17 @@ var NavigationReleaseSchema = z9.object({
|
|
|
10082
10091
|
surface: ProductSurfaceSchema,
|
|
10083
10092
|
placement: ContractIdentifierSchema
|
|
10084
10093
|
}).strict(),
|
|
10085
|
-
resolvedTargets: z9.array(ResolvedNavigationTargetSchema)
|
|
10094
|
+
resolvedTargets: z9.array(ResolvedNavigationTargetSchema),
|
|
10095
|
+
unavailableTargets: z9.array(UnavailableNavigationTargetSchema).optional()
|
|
10086
10096
|
}).strict().superRefine((value, context) => {
|
|
10087
10097
|
validateDependencySnapshot(value.dependencySnapshot, context);
|
|
10088
10098
|
validateReleaseExpectedHead(value, "navigation-release", context);
|
|
10089
10099
|
if (value.navigationRevisionRef.kind !== "navigation") context.addIssue({ code: "custom", path: ["navigationRevisionRef", "kind"], message: "Expected a navigation revision." });
|
|
10090
10100
|
if (value.target.environmentRef.kind !== "environment") context.addIssue({ code: "custom", path: ["target", "environmentRef", "kind"], message: "Navigation release target requires an environment reference." });
|
|
10091
10101
|
if (uniqueArray(value.resolvedTargets, (target) => target.nodeId)) context.addIssue({ code: "custom", path: ["resolvedTargets"], message: "Resolved Navigation node IDs must be unique." });
|
|
10102
|
+
if (uniqueArray([...value.resolvedTargets, ...value.unavailableTargets ?? []], (target) => target.nodeId)) {
|
|
10103
|
+
context.addIssue({ code: "custom", path: ["unavailableTargets"], message: "Navigation target resolutions must have unique node IDs." });
|
|
10104
|
+
}
|
|
10092
10105
|
});
|
|
10093
10106
|
var RuntimeDiagnosticSchema = z9.object({
|
|
10094
10107
|
code: ContractIdentifierSchema,
|
|
@@ -10176,7 +10189,8 @@ var CompiledNavigationDomainCommandTargetSchema = ResolvedNavigationTargetSchema
|
|
|
10176
10189
|
var CompiledNavigationResolvedTargetSchema = z9.discriminatedUnion("kind", [
|
|
10177
10190
|
CompiledNavigationTargetSchema,
|
|
10178
10191
|
CompiledNavigationRegisteredMenuActionTargetSchema,
|
|
10179
|
-
CompiledNavigationDomainCommandTargetSchema
|
|
10192
|
+
CompiledNavigationDomainCommandTargetSchema,
|
|
10193
|
+
UnavailableNavigationTargetSchema.omit({ reason: true }).extend({ kind: z9.literal("unavailable") }).strict()
|
|
10180
10194
|
]);
|
|
10181
10195
|
var CompiledNavigationGroupNodeSchema = NavigationGroupNodeSchema.extend({
|
|
10182
10196
|
ancestorAccessPolicies: z9.array(AccessPolicySchema)
|
|
@@ -10184,7 +10198,14 @@ var CompiledNavigationGroupNodeSchema = NavigationGroupNodeSchema.extend({
|
|
|
10184
10198
|
var CompiledNavigationTargetNodeSchema = NavigationTargetNodeSchema.extend({
|
|
10185
10199
|
ancestorAccessPolicies: z9.array(AccessPolicySchema),
|
|
10186
10200
|
resolvedTarget: CompiledNavigationResolvedTargetSchema
|
|
10187
|
-
}).strict()
|
|
10201
|
+
}).strict().superRefine((node, context) => {
|
|
10202
|
+
if (node.resolvedTarget.nodeId !== node.nodeId || stableRefIdentity(node.resolvedTarget.stableTargetRef) !== stableRefIdentity(node.targetRef)) {
|
|
10203
|
+
context.addIssue({ code: "custom", path: ["resolvedTarget"], message: "Resolved target identity must match the source node." });
|
|
10204
|
+
}
|
|
10205
|
+
if (node.resolvedTarget.kind === "unavailable" && (node.disabled !== true || Object.keys(node.parameterMapping).length > 0)) {
|
|
10206
|
+
context.addIssue({ code: "custom", path: ["resolvedTarget"], message: "Unavailable targets must be disabled and contain no executable input." });
|
|
10207
|
+
}
|
|
10208
|
+
});
|
|
10188
10209
|
var CompiledNavigationSeparatorNodeSchema = NavigationSeparatorNodeSchema.extend({
|
|
10189
10210
|
ancestorAccessPolicies: z9.array(AccessPolicySchema)
|
|
10190
10211
|
}).strict();
|
|
@@ -11000,6 +11021,7 @@ var compileRouteClaims = (input) => {
|
|
|
11000
11021
|
...claim,
|
|
11001
11022
|
normalizedPath,
|
|
11002
11023
|
matcher: {
|
|
11024
|
+
surface: claim.surface,
|
|
11003
11025
|
caseSensitive: routeSpace.caseSensitive,
|
|
11004
11026
|
trailingSlash: routeSpace.trailingSlash,
|
|
11005
11027
|
parameters: routeSpace.parameters
|
|
@@ -11403,7 +11425,14 @@ var compileNavigationRuntimeBundle = (input) => {
|
|
|
11403
11425
|
assertUniqueRegistryKeys(targetRegistry.map((registration) => stableRefKey(registration.stableTargetRef)), "targetRegistry");
|
|
11404
11426
|
const targetsByStableRef = new Map(targetRegistry.map((registration) => [stableRefKey(registration.stableTargetRef), registration]));
|
|
11405
11427
|
const releasedByNodeId = new Map(release.resolvedTargets.map((target) => [target.nodeId, target]));
|
|
11428
|
+
const unavailableByNodeId = new Map((release.unavailableTargets ?? []).map((target) => [target.nodeId, target]));
|
|
11406
11429
|
const nodesById = new Map(navigation.nodes.map((node) => [node.nodeId, node]));
|
|
11430
|
+
for (const target of release.unavailableTargets ?? []) {
|
|
11431
|
+
const node = nodesById.get(target.nodeId);
|
|
11432
|
+
if (node?.kind !== "target" || !sameStableRef(node.targetRef, target.stableTargetRef)) {
|
|
11433
|
+
throw new DeclarativeControlCompilationError("NAV_TARGET_UNRELEASED", "release.unavailableTargets", "An unavailable target must identify its source Page node exactly.");
|
|
11434
|
+
}
|
|
11435
|
+
}
|
|
11407
11436
|
const nodes = orderedNavigationNodes(navigation).map((node, index) => {
|
|
11408
11437
|
const ancestors = [];
|
|
11409
11438
|
let parentId = node.parentNodeId;
|
|
@@ -11418,6 +11447,25 @@ var compileNavigationRuntimeBundle = (input) => {
|
|
|
11418
11447
|
}
|
|
11419
11448
|
const registration = targetsByStableRef.get(stableRefKey(node.targetRef));
|
|
11420
11449
|
const released = releasedByNodeId.get(node.nodeId);
|
|
11450
|
+
const unavailable = unavailableByNodeId.get(node.nodeId);
|
|
11451
|
+
if (!registration && unavailable && node.targetRef.kind === "page" && sameStableRef(unavailable.stableTargetRef, node.targetRef)) {
|
|
11452
|
+
assertTenantCompatible(node.targetRef, scope, `nodes[${index}].targetRef`);
|
|
11453
|
+
if (unavailable.accessPolicy && !accessPolicyChainImplies([...ancestors, node.audience], unavailable.accessPolicy)) {
|
|
11454
|
+
throw new DeclarativeControlCompilationError("AUDIENCE_WIDER_THAN_TARGET", `nodes[${index}].audience`, "Effective Navigation audience is wider than the last verified target audience.");
|
|
11455
|
+
}
|
|
11456
|
+
return {
|
|
11457
|
+
...node,
|
|
11458
|
+
disabled: true,
|
|
11459
|
+
parameterMapping: {},
|
|
11460
|
+
ancestorAccessPolicies: ancestors,
|
|
11461
|
+
resolvedTarget: {
|
|
11462
|
+
kind: "unavailable",
|
|
11463
|
+
nodeId: node.nodeId,
|
|
11464
|
+
stableTargetRef: node.targetRef,
|
|
11465
|
+
accessPolicy: unavailable.accessPolicy
|
|
11466
|
+
}
|
|
11467
|
+
};
|
|
11468
|
+
}
|
|
11421
11469
|
if (!registration || !released || !sameStableRef(registration.stableTargetRef, stableFromRevision(registration.targetRevisionRef)) || !sameStableRef(registration.stableTargetRef, released.stableTargetRef) || !sameRevisionRef(registration.targetRevisionRef, released.targetRevisionRef) || registration.kind === "route" && (Boolean(registration.releaseRevisionRef) !== Boolean(released.releaseRevisionRef) || registration.releaseRevisionRef && released.releaseRevisionRef && !sameRevisionRef(registration.releaseRevisionRef, released.releaseRevisionRef))) {
|
|
11422
11470
|
throw new DeclarativeControlCompilationError("NAV_TARGET_UNRELEASED", `nodes[${index}].targetRef`, "Navigation target is not resolved to the exact active release recorded by NavigationRelease.");
|
|
11423
11471
|
}
|
|
@@ -11547,6 +11595,16 @@ var resolveWorkbenchEntry = (input) => {
|
|
|
11547
11595
|
return { status: "forbidden", workbenchId: "" };
|
|
11548
11596
|
};
|
|
11549
11597
|
|
|
11598
|
+
// src/runtime/navigation-availability.ts
|
|
11599
|
+
var NAVIGATION_UNAVAILABLE_CAPABILITY_HEADER = "x-monkeys-navigation-capabilities";
|
|
11600
|
+
var NAVIGATION_UNAVAILABLE_CAPABILITY = "unavailable-pages-v1";
|
|
11601
|
+
function projectNavigationCompatibility(bundle, supportsUnavailable) {
|
|
11602
|
+
if (supportsUnavailable || !bundle.nodes.some((node) => node.kind === "target" && node.resolvedTarget.kind === "unavailable")) return bundle;
|
|
11603
|
+
const { contentHash: _hash, ...unsigned } = bundle;
|
|
11604
|
+
const nodes = bundle.nodes.filter((node) => node.kind !== "target" || node.resolvedTarget.kind !== "unavailable");
|
|
11605
|
+
return NavigationRuntimeBundleSchema.parse({ ...unsigned, nodes, contentHash: canonicalContentHash({ ...unsigned, nodes }) });
|
|
11606
|
+
}
|
|
11607
|
+
|
|
11550
11608
|
// src/runtime/menu-compiler.ts
|
|
11551
11609
|
var MenuCompilationError = class extends Error {
|
|
11552
11610
|
constructor(code, path, message) {
|
|
@@ -11819,6 +11877,13 @@ var compileMenuRuntimeBundle = (input) => {
|
|
|
11819
11877
|
const contributionProviders = input.contributionProviders.map((registration) => MenuContributionProviderRegistrationSchema.parse(registration));
|
|
11820
11878
|
const inputValidators = input.inputValidators ?? /* @__PURE__ */ new Map();
|
|
11821
11879
|
const knownPermissions = new Set(input.permissionCodes.map((permission) => ContractIdentifierSchema.parse(permission)));
|
|
11880
|
+
const completeApplications = new Set(input.missingPagePolicy?.completeApplicationIds.map((id) => ContractIdentifierSchema.parse(id)) ?? []);
|
|
11881
|
+
const unavailableAccess = input.missingPagePolicy ? MenuAccessRequirementSchema.parse(input.missingPagePolicy.unavailableAccess) : void 0;
|
|
11882
|
+
if (unavailableAccess) {
|
|
11883
|
+
validatePermissionCodes(unavailableAccess.permissionAllOf, knownPermissions, "missingPagePolicy.unavailableAccess.permissionAllOf");
|
|
11884
|
+
validatePermissionCodes(unavailableAccess.permissionAnyOf, knownPermissions, "missingPagePolicy.unavailableAccess.permissionAnyOf");
|
|
11885
|
+
}
|
|
11886
|
+
const diagnostics = [];
|
|
11822
11887
|
pages.forEach((registration, index) => {
|
|
11823
11888
|
if (!registration.page.visibility.productContexts.some((context) => context === registration.applicationId)) {
|
|
11824
11889
|
throw new MenuCompilationError(
|
|
@@ -11883,6 +11948,35 @@ var compileMenuRuntimeBundle = (input) => {
|
|
|
11883
11948
|
if (node.behavior.kind === "navigate") {
|
|
11884
11949
|
const registration = pagesByKey.get(pageKey(node.behavior.page));
|
|
11885
11950
|
if (!registration) {
|
|
11951
|
+
if (unavailableAccess && completeApplications.has(node.behavior.page.applicationId)) {
|
|
11952
|
+
const activationId2 = resolveMenuActivationId(node.behavior.page, node.behavior.activationId);
|
|
11953
|
+
const identity2 = targetKey(node.behavior.page, activationId2);
|
|
11954
|
+
const signature2 = stableSerialize2({ ...node.behavior, activationId: activationId2 });
|
|
11955
|
+
const previous = targetSourceSignatures.get(identity2);
|
|
11956
|
+
if (previous !== void 0 && previous !== signature2) {
|
|
11957
|
+
throw new MenuCompilationError("conflicting-navigation-target", `${nodePath}.behavior`, "Missing navigation target has conflicting behavior or input.");
|
|
11958
|
+
}
|
|
11959
|
+
targetSourceSignatures.set(identity2, signature2);
|
|
11960
|
+
if (definition.applicationId === applicationId) {
|
|
11961
|
+
diagnostics.push({
|
|
11962
|
+
code: "missing-page",
|
|
11963
|
+
severity: "warning",
|
|
11964
|
+
applicationId: definition.applicationId,
|
|
11965
|
+
surface: definition.surface,
|
|
11966
|
+
menuId: definition.menuId,
|
|
11967
|
+
nodeId: node.nodeId,
|
|
11968
|
+
page: node.behavior.page,
|
|
11969
|
+
path: `${nodePath}.behavior.page`
|
|
11970
|
+
});
|
|
11971
|
+
}
|
|
11972
|
+
const { requiredPermission: requiredPermission3, behavior: _behavior3, ...presentation3 } = node;
|
|
11973
|
+
return CompiledMenuItemNodeSchema.parse({
|
|
11974
|
+
...presentation3,
|
|
11975
|
+
disabled: true,
|
|
11976
|
+
behavior: { kind: "navigate", page: node.behavior.page, activationId: activationId2 },
|
|
11977
|
+
access: { ...unavailableAccess, requiredPermission: requiredPermission3 }
|
|
11978
|
+
});
|
|
11979
|
+
}
|
|
11886
11980
|
throw new MenuCompilationError(
|
|
11887
11981
|
"unknown-page",
|
|
11888
11982
|
`${nodePath}.behavior.page`,
|
|
@@ -12045,6 +12139,7 @@ var compileMenuRuntimeBundle = (input) => {
|
|
|
12045
12139
|
};
|
|
12046
12140
|
return Object.freeze({
|
|
12047
12141
|
document: deepFreeze2(document),
|
|
12142
|
+
diagnostics: deepFreeze2(diagnostics),
|
|
12048
12143
|
menusByKey,
|
|
12049
12144
|
navigationTargetsByKey: documentTargetsByKey,
|
|
12050
12145
|
serverInputByTargetKey,
|
|
@@ -14757,11 +14852,7 @@ var DesignTokenInlineSourceSchema = z12.object({
|
|
|
14757
14852
|
type: z12.literal("inline"),
|
|
14758
14853
|
document: ThemeTokensSchema
|
|
14759
14854
|
}).strict();
|
|
14760
|
-
var DesignTokenSourceSchema = z12.discriminatedUnion("type", [
|
|
14761
|
-
DesignTokenFileSourceSchema,
|
|
14762
|
-
DesignTokenUrlSourceSchema,
|
|
14763
|
-
DesignTokenInlineSourceSchema
|
|
14764
|
-
]);
|
|
14855
|
+
var DesignTokenSourceSchema = z12.discriminatedUnion("type", [DesignTokenFileSourceSchema, DesignTokenUrlSourceSchema, DesignTokenInlineSourceSchema]);
|
|
14765
14856
|
var TenantDesignTokensConfigSchema = z12.object({
|
|
14766
14857
|
/** Ordered tenant overrides. The backend always applies the product default first. */
|
|
14767
14858
|
tokenSources: z12.array(DesignTokenSourceSchema)
|
|
@@ -14783,14 +14874,8 @@ var TenantDataBindingSchema = z12.discriminatedUnion("kind", [
|
|
|
14783
14874
|
domainRef: ContractIdentifierSchema.optional()
|
|
14784
14875
|
}).strict()
|
|
14785
14876
|
]);
|
|
14786
|
-
var TenantAuthBindingsSchema = z12.record(
|
|
14787
|
-
|
|
14788
|
-
TenantAuthBindingSchema
|
|
14789
|
-
);
|
|
14790
|
-
var TenantDataBindingsSchema = z12.record(
|
|
14791
|
-
ContractIdentifierSchema,
|
|
14792
|
-
TenantDataBindingSchema
|
|
14793
|
-
);
|
|
14877
|
+
var TenantAuthBindingsSchema = z12.record(ContractIdentifierSchema, TenantAuthBindingSchema);
|
|
14878
|
+
var TenantDataBindingsSchema = z12.record(ContractIdentifierSchema, TenantDataBindingSchema);
|
|
14794
14879
|
var TenantTrendRadarSourceSchema = z12.object({
|
|
14795
14880
|
ontologyId: ContractIdentifierSchema,
|
|
14796
14881
|
viewId: ContractIdentifierSchema
|
|
@@ -14855,11 +14940,7 @@ var CurrentUserMenuActionItemSchema = z12.object({
|
|
|
14855
14940
|
ref: z12.enum(CURRENT_USER_MENU_ACTION_REFS),
|
|
14856
14941
|
tone: z12.enum(["default", "danger"]).optional()
|
|
14857
14942
|
}).strict();
|
|
14858
|
-
var CurrentUserMenuItemSchema = z12.discriminatedUnion("kind", [
|
|
14859
|
-
CurrentUserMenuNavigationItemSchema,
|
|
14860
|
-
CurrentUserMenuControlItemSchema,
|
|
14861
|
-
CurrentUserMenuActionItemSchema
|
|
14862
|
-
]);
|
|
14943
|
+
var CurrentUserMenuItemSchema = z12.discriminatedUnion("kind", [CurrentUserMenuNavigationItemSchema, CurrentUserMenuControlItemSchema, CurrentUserMenuActionItemSchema]);
|
|
14863
14944
|
var CurrentUserMenuSectionSchema = z12.object({
|
|
14864
14945
|
id: CurrentUserMenuIdentifierSchema,
|
|
14865
14946
|
label: CurrentUserMenuDisplayTextSchema.optional(),
|
|
@@ -14915,11 +14996,7 @@ var LegacyCurrentUserMenuProfileSchema = z12.array(z12.enum(LEGACY_CURRENT_USER_
|
|
|
14915
14996
|
seen.add(item);
|
|
14916
14997
|
});
|
|
14917
14998
|
});
|
|
14918
|
-
var CurrentUserMenuProfileSchema = z12.union([
|
|
14919
|
-
z12.literal("*"),
|
|
14920
|
-
LegacyCurrentUserMenuProfileSchema,
|
|
14921
|
-
CurrentUserMenuConfigSchema
|
|
14922
|
-
]);
|
|
14999
|
+
var CurrentUserMenuProfileSchema = z12.union([z12.literal("*"), LegacyCurrentUserMenuProfileSchema, CurrentUserMenuConfigSchema]);
|
|
14923
15000
|
var ThemeHeadbarSchema = z12.object({
|
|
14924
15001
|
theme: z12.enum(["card", "glassy", "ghost"]).optional(),
|
|
14925
15002
|
navPosition: z12.enum(["left", "center", "right"]).optional(),
|
|
@@ -15028,7 +15105,10 @@ var TenantWorkbenchPageGroupSchema = z12.object({
|
|
|
15028
15105
|
var TenantWorkbenchConfigSchema = z12.object({
|
|
15029
15106
|
pages: z12.array(TenantWorkbenchPageEnvelopeSchema),
|
|
15030
15107
|
pageGroups: z12.array(TenantWorkbenchPageGroupSchema),
|
|
15031
|
-
catalog: z12.object({
|
|
15108
|
+
catalog: z12.object({
|
|
15109
|
+
enabled: z12.boolean().optional(),
|
|
15110
|
+
defaultEntry: z12.boolean().optional()
|
|
15111
|
+
}).strict().optional(),
|
|
15032
15112
|
quickSwitcherMaxItems: z12.number().int().nonnegative().optional(),
|
|
15033
15113
|
defaultOrder: z12.object({
|
|
15034
15114
|
groups: z12.array(ContractIdentifierSchema),
|
|
@@ -15069,11 +15149,19 @@ var TenantWorkbenchConfigSchema = z12.object({
|
|
|
15069
15149
|
const pageIds = pages.map(({ definition }) => definition.pageId);
|
|
15070
15150
|
const pageIdSet = new Set(pageIds);
|
|
15071
15151
|
if (pageIdSet.size !== pageIds.length) {
|
|
15072
|
-
context.addIssue({
|
|
15152
|
+
context.addIssue({
|
|
15153
|
+
code: "custom",
|
|
15154
|
+
path: ["pages"],
|
|
15155
|
+
message: "Tenant workbench page ids must be unique."
|
|
15156
|
+
});
|
|
15073
15157
|
}
|
|
15074
15158
|
const groupIds = pageGroups.map(({ id }) => id);
|
|
15075
15159
|
if (new Set(groupIds).size !== groupIds.length) {
|
|
15076
|
-
context.addIssue({
|
|
15160
|
+
context.addIssue({
|
|
15161
|
+
code: "custom",
|
|
15162
|
+
path: ["pageGroups"],
|
|
15163
|
+
message: "Tenant workbench page group ids must be unique."
|
|
15164
|
+
});
|
|
15077
15165
|
}
|
|
15078
15166
|
pageGroups.forEach((group, groupIndex) => {
|
|
15079
15167
|
group.pageIds.forEach((pageId, pageIndex) => {
|
|
@@ -15088,7 +15176,10 @@ var TenantWorkbenchConfigSchema = z12.object({
|
|
|
15088
15176
|
});
|
|
15089
15177
|
});
|
|
15090
15178
|
var LoginPageSchema = z12.object({
|
|
15091
|
-
background: z12.object({
|
|
15179
|
+
background: z12.object({
|
|
15180
|
+
imageUrl: z12.string().optional(),
|
|
15181
|
+
gradient: z12.string().optional()
|
|
15182
|
+
}).strict().optional(),
|
|
15092
15183
|
logo: z12.object({
|
|
15093
15184
|
url: z12.string().optional(),
|
|
15094
15185
|
lightUrl: z12.string().optional(),
|
|
@@ -15169,10 +15260,16 @@ var TenantApplicationConfigSchema = z12.object({
|
|
|
15169
15260
|
toast: z12.object({
|
|
15170
15261
|
position: z12.enum(["top-right", "top-left", "bottom-right", "bottom-left", "top-center", "bottom-center"])
|
|
15171
15262
|
}).strict().optional(),
|
|
15172
|
-
icons: z12.object({
|
|
15263
|
+
icons: z12.object({
|
|
15264
|
+
error: CustomIconSchema.optional(),
|
|
15265
|
+
empty: CustomIconSchema.optional()
|
|
15266
|
+
}).strict().optional(),
|
|
15173
15267
|
views: z12.object({
|
|
15174
15268
|
form: z12.object({
|
|
15175
|
-
toast: z12.object({
|
|
15269
|
+
toast: z12.object({
|
|
15270
|
+
afterCreate: z12.boolean(),
|
|
15271
|
+
afterDelete: z12.boolean()
|
|
15272
|
+
}).strict(),
|
|
15176
15273
|
progress: z12.enum(["estimate", "infinite"]),
|
|
15177
15274
|
onlyResult: z12.boolean(),
|
|
15178
15275
|
tabular: z12.object({ theme: z12.enum(["default", "tentiary", "primary"]) }).strict()
|
|
@@ -15193,10 +15290,7 @@ var TenantApplicationConfigSchema = z12.object({
|
|
|
15193
15290
|
}).strict().optional(),
|
|
15194
15291
|
modules: z12.object({
|
|
15195
15292
|
monkeysSpaceSidebar: z12.union([z12.literal("*"), z12.array(ContractIdentifierSchema)]).optional(),
|
|
15196
|
-
monkeysSpaceHeadbar: z12.union([
|
|
15197
|
-
z12.literal("*"),
|
|
15198
|
-
z12.array(TenantHeadbarModuleItemSchema)
|
|
15199
|
-
]).optional(),
|
|
15293
|
+
monkeysSpaceHeadbar: z12.union([z12.literal("*"), z12.array(TenantHeadbarModuleItemSchema)]).optional(),
|
|
15200
15294
|
settingsSidebar: z12.union([z12.literal("*"), z12.array(ContractIdentifierSchema)]).optional()
|
|
15201
15295
|
}).strict().optional(),
|
|
15202
15296
|
headbar: ThemeHeadbarSchema.optional(),
|
|
@@ -15223,7 +15317,10 @@ var TenantApplicationConfigSchema = z12.object({
|
|
|
15223
15317
|
workbenchSidebarViewType: z12.boolean().optional(),
|
|
15224
15318
|
workbenchSidebarFormViewEmbed: z12.boolean().optional(),
|
|
15225
15319
|
workbenchSidebarModernMode: z12.boolean().optional(),
|
|
15226
|
-
ugc: z12.object({
|
|
15320
|
+
ugc: z12.object({
|
|
15321
|
+
onItemClick: z12.boolean(),
|
|
15322
|
+
subtitle: z12.boolean().optional()
|
|
15323
|
+
}).strict().optional(),
|
|
15227
15324
|
uniImagePreview: z12.boolean().optional(),
|
|
15228
15325
|
imagePreviewStyle: z12.union([z12.literal(false), z12.enum(["simple", "normal", "uni"])]).optional(),
|
|
15229
15326
|
teamAsUser: z12.boolean().optional(),
|
|
@@ -15281,7 +15378,10 @@ var TenantApplicationConfigSchema = z12.object({
|
|
|
15281
15378
|
landingPage: TenantLandingPageConfigSchema.optional(),
|
|
15282
15379
|
auth: z12.object({
|
|
15283
15380
|
enabled: z12.array(ContractIdentifierSchema).default([]),
|
|
15284
|
-
oidc: z12.object({
|
|
15381
|
+
oidc: z12.object({
|
|
15382
|
+
buttonText: z12.string().optional(),
|
|
15383
|
+
autoSignin: z12.boolean().optional()
|
|
15384
|
+
}).strict().optional(),
|
|
15285
15385
|
password: z12.object({
|
|
15286
15386
|
registrationEnabled: z12.boolean().optional(),
|
|
15287
15387
|
disableAutoRegister: z12.boolean().optional()
|
|
@@ -15319,6 +15419,18 @@ var TenantApplicationConfigSchema = z12.object({
|
|
|
15319
15419
|
fieldMap: z12.record(z12.string(), z12.string()).optional(),
|
|
15320
15420
|
columnIds: z12.record(z12.string(), z12.string()).optional()
|
|
15321
15421
|
}).strict().optional(),
|
|
15422
|
+
homeShortcutBackground: z12.object({
|
|
15423
|
+
ontologyId: ContractIdentifierSchema,
|
|
15424
|
+
viewId: ContractIdentifierSchema.optional(),
|
|
15425
|
+
viewType: z12.enum(["filter", "container", "share_link"]).optional(),
|
|
15426
|
+
teamId: ContractIdentifierSchema.optional(),
|
|
15427
|
+
teamOnly: z12.boolean().optional(),
|
|
15428
|
+
pageSize: z12.number().int().positive().optional(),
|
|
15429
|
+
sortBy: z12.enum(["pin_order", "asset_id", "updated_timestamp"]).optional(),
|
|
15430
|
+
sortOrder: z12.enum(["asc", "desc"]).optional(),
|
|
15431
|
+
fieldMap: z12.record(z12.string(), z12.string()).optional(),
|
|
15432
|
+
columnIds: z12.record(z12.string(), z12.string()).optional()
|
|
15433
|
+
}).strict().optional(),
|
|
15322
15434
|
homeTrendAssistant: z12.object({
|
|
15323
15435
|
ontologyId: ContractIdentifierSchema.optional(),
|
|
15324
15436
|
viewId: ContractIdentifierSchema.optional(),
|
|
@@ -15326,8 +15438,16 @@ var TenantApplicationConfigSchema = z12.object({
|
|
|
15326
15438
|
viewName: z12.string().optional(),
|
|
15327
15439
|
teamId: ContractIdentifierSchema.optional(),
|
|
15328
15440
|
designOptionsWorkflowId: ContractIdentifierSchema.optional(),
|
|
15329
|
-
tep: z12.object({
|
|
15330
|
-
|
|
15441
|
+
tep: z12.object({
|
|
15442
|
+
baseUrl: z12.string().optional(),
|
|
15443
|
+
timeoutMs: z12.number().int().positive().optional()
|
|
15444
|
+
}).strict().optional(),
|
|
15445
|
+
runtime: z12.object({
|
|
15446
|
+
appId: ContractIdentifierSchema,
|
|
15447
|
+
tepBaseUrlConfigured: z12.boolean(),
|
|
15448
|
+
tepAuthorizationConfigured: z12.boolean(),
|
|
15449
|
+
tepCookieConfigured: z12.boolean()
|
|
15450
|
+
}).strict().optional()
|
|
15331
15451
|
}).strict().optional(),
|
|
15332
15452
|
staticTrendReport: z12.object({
|
|
15333
15453
|
ontologyId: ContractIdentifierSchema,
|
|
@@ -15336,20 +15456,67 @@ var TenantApplicationConfigSchema = z12.object({
|
|
|
15336
15456
|
}).strict().optional(),
|
|
15337
15457
|
trendRadar: TenantTrendRadarSourcesSchema.optional(),
|
|
15338
15458
|
sharing: z12.object({
|
|
15339
|
-
silentViewLinks: z12.object({
|
|
15340
|
-
|
|
15459
|
+
silentViewLinks: z12.object({
|
|
15460
|
+
enabled: z12.boolean().optional(),
|
|
15461
|
+
placement: z12.object({
|
|
15462
|
+
mode: z12.enum(["sourceOntology", "ontology"]).optional(),
|
|
15463
|
+
ontologyId: ContractIdentifierSchema.optional(),
|
|
15464
|
+
parentId: ContractIdentifierSchema.optional(),
|
|
15465
|
+
navId: ContractIdentifierSchema.optional()
|
|
15466
|
+
}).strict().optional()
|
|
15467
|
+
}).strict().optional(),
|
|
15468
|
+
shareAccess: z12.object({
|
|
15469
|
+
publicLinksEnabled: z12.boolean().optional(),
|
|
15470
|
+
passwordGateEnabled: z12.boolean().optional(),
|
|
15471
|
+
passwordAccessTtlSeconds: z12.number().int().positive().optional(),
|
|
15472
|
+
defaultViewTreeDelivery: z12.enum(["manual", "auto"]).optional()
|
|
15473
|
+
}).strict().optional(),
|
|
15341
15474
|
shareDialog: z12.object({
|
|
15342
|
-
audience: z12.object({
|
|
15343
|
-
|
|
15344
|
-
|
|
15475
|
+
audience: z12.object({
|
|
15476
|
+
enabled: z12.boolean().optional(),
|
|
15477
|
+
allowed: z12.array(z12.enum(["user", "team", "public"])).optional(),
|
|
15478
|
+
default: z12.enum(["user", "team", "public"]).optional()
|
|
15479
|
+
}).strict().optional(),
|
|
15480
|
+
accessLevel: z12.object({
|
|
15481
|
+
enabled: z12.boolean().optional(),
|
|
15482
|
+
allowed: z12.array(z12.enum(["read", "write"])).optional(),
|
|
15483
|
+
default: z12.enum(["read", "write"]).optional()
|
|
15484
|
+
}).strict().optional(),
|
|
15485
|
+
viewTreeDelivery: z12.object({
|
|
15486
|
+
enabled: z12.boolean().optional(),
|
|
15487
|
+
allowed: z12.array(z12.enum(["manual", "auto"])).optional(),
|
|
15488
|
+
default: z12.enum(["manual", "auto"]).optional()
|
|
15489
|
+
}).strict().optional()
|
|
15345
15490
|
}).strict().optional()
|
|
15346
15491
|
}).strict().optional()
|
|
15347
15492
|
}).strict().optional(),
|
|
15348
15493
|
kernelRuntime: z12.object({
|
|
15349
15494
|
integrations: z12.object({
|
|
15350
|
-
harbor: z12.object({
|
|
15351
|
-
|
|
15352
|
-
|
|
15495
|
+
harbor: z12.object({
|
|
15496
|
+
endpoint: z12.string().optional(),
|
|
15497
|
+
projectScopes: z12.array(z12.string()).optional(),
|
|
15498
|
+
authMode: z12.string().optional(),
|
|
15499
|
+
principal: z12.string().optional(),
|
|
15500
|
+
autoSync: z12.boolean().optional(),
|
|
15501
|
+
proxyUrl: z12.string().optional()
|
|
15502
|
+
}).strict().optional(),
|
|
15503
|
+
gitlab: z12.object({
|
|
15504
|
+
baseUrl: z12.string().optional(),
|
|
15505
|
+
groupScopes: z12.array(z12.string()).optional(),
|
|
15506
|
+
tokenMode: z12.string().optional(),
|
|
15507
|
+
deployProjectPath: z12.string().optional(),
|
|
15508
|
+
deploymentReportsEnabled: z12.boolean().optional(),
|
|
15509
|
+
proxyUrl: z12.string().optional()
|
|
15510
|
+
}).strict().optional(),
|
|
15511
|
+
kubernetes: z12.object({
|
|
15512
|
+
accessMode: z12.string().optional(),
|
|
15513
|
+
clusterAlias: z12.string().optional(),
|
|
15514
|
+
agentProjectPath: z12.string().optional(),
|
|
15515
|
+
agentName: z12.string().optional(),
|
|
15516
|
+
namespaceScopes: z12.array(z12.string()).optional(),
|
|
15517
|
+
rolloutObserverEnabled: z12.boolean().optional(),
|
|
15518
|
+
proxyUrl: z12.string().optional()
|
|
15519
|
+
}).strict().optional()
|
|
15353
15520
|
}).strict().optional()
|
|
15354
15521
|
}).strict().optional(),
|
|
15355
15522
|
data: z12.object({}).strict().optional(),
|
|
@@ -15776,6 +15943,8 @@ export {
|
|
|
15776
15943
|
DeclarativeControlCompilationError,
|
|
15777
15944
|
MONKEYS_REQUIRED_THEME_TOKEN_PATHS,
|
|
15778
15945
|
MenuCompilationError,
|
|
15946
|
+
NAVIGATION_UNAVAILABLE_CAPABILITY,
|
|
15947
|
+
NAVIGATION_UNAVAILABLE_CAPABILITY_HEADER,
|
|
15779
15948
|
ThemeTokenValidationError,
|
|
15780
15949
|
accessPolicyChainImplies,
|
|
15781
15950
|
applyViewRuntimeBindings,
|
|
@@ -15820,6 +15989,7 @@ export {
|
|
|
15820
15989
|
mergeThemeTokenDocuments,
|
|
15821
15990
|
parseApplicationHandoff,
|
|
15822
15991
|
projectAgentSessionEvents,
|
|
15992
|
+
projectNavigationCompatibility,
|
|
15823
15993
|
publishOpenApiToolCapabilityManifests,
|
|
15824
15994
|
readApplicationHandoffFromUrl,
|
|
15825
15995
|
readMenuActivationFromSearch,
|