/** * This file is part of the NocoBase (R) project. * Copyright (c) 2020-2024 NocoBase Co., Ltd. * Authors: NocoBase Team. * * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ import type { ResourcerContext } from '@nocobase/resourcer'; import { type FlowModelNodeSnapshot } from '../repository'; import { type AnalyzeTemplateMode, type AnalyzedTemplate, type ResolvePathPolicy } from '../template/variable-expression'; import type { JSONValue } from '../template/resolver'; import { type RecordBindingPlan } from './record-bindings'; import { type RecordSlotPolicies } from './record-slot-policy'; type AuthorizationResultBase = { contextParams: Readonly>; flowModelUid?: string; policy: ResolvePathPolicy; recordSlotPolicies: RecordSlotPolicies; }; export type AuthorizationResult = AuthorizationResultBase & ({ allowed: true; analysis: AnalyzedTemplate; bindingPlan: RecordBindingPlan; } | { allowed: false; analysis?: AnalyzedTemplate; }); export type TemplateAnalysisResult = { ok: true; analysis: AnalyzedTemplate; } | { ok: false; errorType: string; }; export declare function analyzeVariableTemplateSafely(template: unknown, options?: Readonly<{ mode?: AnalyzeTemplateMode; }>): TemplateAnalysisResult; export declare function clearVariableAllowListCache(app?: object): object; export declare function hasRecordContextParams(value: unknown): boolean; export declare function sanitizeContextParams(value?: Record): Record; export declare function resolveFlowModelNodeFromRequestRd(ctx: ResourcerContext, rd?: string | number): Promise; export declare function authorizeVariablesResolve(ctx: ResourcerContext, options: { contractRd?: string | number; contextParams?: Record; rd?: string | number; template: JSONValue; }): Promise; export {};