@lokalise/maestro-expert-tenant-lib 3.2.0 → 3.2.2
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/dist/index.cjs +7 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +58 -56
- package/dist/index.d.ts +58 -56
- package/dist/index.mjs +7 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -205,6 +205,13 @@ var LayoutTranslator = class {
|
|
|
205
205
|
}
|
|
206
206
|
return void 0;
|
|
207
207
|
}
|
|
208
|
+
getTemplateGateLevel(frontendLayout) {
|
|
209
|
+
const template = this.findTemplate(frontendLayout);
|
|
210
|
+
if (!template) {
|
|
211
|
+
return void 0;
|
|
212
|
+
}
|
|
213
|
+
return template.gateLevel;
|
|
214
|
+
}
|
|
208
215
|
buildLayoutSettings(frontendLayout) {
|
|
209
216
|
return frontendLayout.reduce(
|
|
210
217
|
(acc, frontendStep) => {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../index.ts","../src/apiContract/schemas.ts","../src/workflow/LayoutTranslator.ts","../src/workflow/steps/scheduledTriggerStep.ts","../src/workflow/steps/aiMtTranslationStep.ts","../src/workflow/messages.ts","../src/workflow/steps/applyTmStep.ts","../src/workflow/steps/translateTaskStep.ts","../src/workflow/steps/reviewTaskStep.ts","../src/workflow/steps/clearTranslationsStep.ts","../src/workflow/steps/endStep.ts","../src/workflow/steps.ts","../src/templates/resources/clear-translations-mt-ai-review-task.template.ts","../src/templates/resources/clear-translations-mt-ai-task.template.ts","../src/templates/resources/clear-translations-tm-mt-ai-review-task.template.ts","../src/templates/resources/clear-translations-tm-mt-ai-task.template.ts","../src/templates/resources/clear-translations-tm-templates.ts","../src/templates/resources/clear-translations-tm-translate-review-task-template.ts","../src/templates/resources/clear-translations-tm-translate-task-template.ts","../src/templates/resources/review-task.template.ts","../src/templates/resources/review-translate-review-task.template.ts","../src/templates/resources/review-translate-task.template.ts","../src/templates/resources/translate-and-review-task.template.ts","../src/templates/resources/translate-review-review-task.template.ts","../src/templates/resources/translate-task.template.ts","../src/templates/schemas.ts"],"sourcesContent":["export * from './src/apiContract/schemas.js'\nexport * from './src/workflow/steps.js'\nexport * from './src/workflow/messages.js'\nexport { TEMPLATES, TemplateId } from './src/templates/schemas.js'\nexport { Template, FrontendLayout, FrontendLayoutStep } from './src/templates/types.js'\nexport { LayoutTranslator } from './src/workflow/LayoutTranslator.js'\n","import { COMMON_ERROR_RESPONSE_SCHEMA } from '@lokalise/api-common'\nimport z from 'zod'\nimport { TEMPLATE_IDS } from '../templates/schemas.js'\nimport {\n AI_MT_TRANSLATION_STEP_FORM_SCHEMA,\n AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA,\n APPLY_TM_STEP_FORM_SCHEMA,\n APPLY_TM_STEP_SETTINGS_SCHEMA,\n CLEAR_TRANSLATIONS_STEP_FORM_SCHEMA,\n CLEAR_TRANSLATIONS_STEP_SETTINGS_SCHEMA,\n END_STEP_FORM_SCHEMA,\n END_STEP_SETTINGS_SCHEMA,\n REVIEW_TASK_STEP_FORM_SCHEMA,\n REVIEW_TASK_STEP_SETTINGS_SCHEMA,\n SCHEDULED_TRIGGER_STEP_FORM_SCHEMA,\n SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA,\n STEP_TYPES,\n TRANSLATE_TASK_STEP_FORM_SCHEMA,\n TRANSLATE_TASK_STEP_SETTINGS_SCHEMA,\n} from '../workflow/steps.js'\n\n// COMMON SCHEMAS\nconst MAX_STEP_ID_LENGTH = 100\nconst DATETIME = z.string().datetime()\nconst WORKFLOW_ID = z.string().max(36)\nconst TEMPLATE_ID = z.enum(TEMPLATE_IDS).describe('Template identifier')\nexport const GROUP_ID = z\n .string()\n .regex(/^expert_[^_\\s]+_[^_\\s]+$/, 'Invalid group ID format')\n .max(255)\n .describe(\n 'Group identifier composed by the tenant ID, followed by the owner ID, followed by the project ID. Underscores are used as separators (e.g. `expert_123_98616399660d3c2456abc5.66984240`)',\n )\n\nexport const METADATA_FIELDS = z\n .enum(['targetLanguageIds', 'error'])\n .describe('Metadata fields that can be included in the response')\n\nexport const TRIGGER_TYPE = z.enum(['Manual', 'Scheduled', 'Automated']).describe('Trigger type')\n\nexport const WORKFLOW_STATUS = z\n .enum(['Draft', 'Live', 'Archived', 'Paused', 'Canceled'])\n .describe('Workflow status')\n\nexport const API_ERROR = COMMON_ERROR_RESPONSE_SCHEMA\n\nexport const WORKFLOW_PARAMS = z\n .object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n })\n .describe('URL parameters for getting a workflow')\nexport type WorkflowParams = z.infer<typeof WORKFLOW_PARAMS>\n\nexport const UNSPECIFIED_WORKFLOW_PARAMS = z\n .object({\n groupId: GROUP_ID,\n })\n .describe('URL parameters without workflowId')\nexport type UnspecifiedWorkflowParams = z.infer<typeof UNSPECIFIED_WORKFLOW_PARAMS>\n\n// GET WORKFLOW\nexport const GET_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const WORKFLOW = z\n .object({\n id: WORKFLOW_ID,\n version: z.number(),\n status: WORKFLOW_STATUS,\n title: z.string(),\n triggerType: TRIGGER_TYPE,\n targetLanguageIds: z.array(z.string()).optional().nullable(),\n error: COMMON_ERROR_RESPONSE_SCHEMA.optional().nullable(),\n createdAt: DATETIME,\n updatedAt: z.optional(DATETIME).nullable(),\n publishedAt: z.optional(DATETIME).nullable(),\n triggeredAt: z.optional(DATETIME).nullable(),\n metadata: z.optional(z.record(z.unknown())).nullable(),\n })\n .describe('Workflow. Used in the list of workflows')\n\nexport const WORKFLOW_EXTENDED_STEP_SCHEMA = z.discriminatedUnion('type', [\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: SCHEDULED_TRIGGER_STEP_FORM_SCHEMA,\n triggerType: SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA.shape.triggerType,\n }),\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: TRANSLATE_TASK_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: TRANSLATE_TASK_STEP_FORM_SCHEMA,\n taskType: TRANSLATE_TASK_STEP_SETTINGS_SCHEMA.shape.taskType,\n }),\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: REVIEW_TASK_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: REVIEW_TASK_STEP_FORM_SCHEMA,\n taskType: REVIEW_TASK_STEP_SETTINGS_SCHEMA.shape.taskType,\n }),\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: APPLY_TM_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: APPLY_TM_STEP_FORM_SCHEMA,\n }),\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: CLEAR_TRANSLATIONS_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: CLEAR_TRANSLATIONS_STEP_FORM_SCHEMA,\n }),\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: AI_MT_TRANSLATION_STEP_FORM_SCHEMA,\n taskType: AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA.shape.taskType,\n }),\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: END_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: END_STEP_FORM_SCHEMA,\n }),\n])\n\nexport const WORKFLOW_EXTENDED_SCHEMA = z\n .array(WORKFLOW_EXTENDED_STEP_SCHEMA)\n .describe('Workflow FrontendLayout')\n\nexport const WORKFLOW_EXTENDED = z\n .object({\n id: WORKFLOW_ID,\n groupId: GROUP_ID,\n version: z.number(),\n status: WORKFLOW_STATUS,\n title: z.string(),\n schema: WORKFLOW_EXTENDED_SCHEMA,\n error: COMMON_ERROR_RESPONSE_SCHEMA.optional().nullable(),\n createdAt: DATETIME,\n updatedAt: z.optional(DATETIME),\n publishedAt: z.optional(DATETIME),\n triggeredAt: z.optional(DATETIME).nullable(),\n })\n .describe('Workflow. Response for getting a workflow or creating a new one')\n\nexport const WORKFLOW_EXTENDED_SCHEMA_SIMPLIFIED = z\n .array(\n z.object({\n id: z.string().max(100),\n type: z.enum(STEP_TYPES),\n values: z.record(z.string(), z.unknown()),\n triggerType: z.optional(TRIGGER_TYPE),\n taskType: z.optional(z.enum(['translation', 'review'])),\n }),\n )\n .describe(\n 'Simplified schema for the response to be able to return default values to the frontend',\n )\n\nexport const WORKFLOW_EXTENDED_SIMPLIFIED = z\n .object({\n id: WORKFLOW_ID,\n groupId: GROUP_ID,\n version: z.number(),\n status: WORKFLOW_STATUS,\n title: z.string(),\n schema: WORKFLOW_EXTENDED_SCHEMA_SIMPLIFIED,\n error: COMMON_ERROR_RESPONSE_SCHEMA.optional().nullable(),\n createdAt: DATETIME,\n updatedAt: z.optional(DATETIME),\n publishedAt: z.optional(DATETIME),\n triggeredAt: z.optional(DATETIME).nullable(),\n })\n .describe(\n 'Simplified schema for the response to be able to return default values to the frontend',\n )\n\nexport const GET_ENTITLEMENTS_PARAMS = z.object({\n ownerId: z.string().describe('Owner ID'),\n})\n\nexport const GET_ENTITLEMENTS_RESPONSE = z.object({\n workflowsNumberLimit: z.number().describe('Maximum number of workflows allowed'),\n workflowsTemplateGateLevel: z.number().describe('Template gate level for workflows'),\n isWorkflowsWeeklyTriggerAvailable: z\n .boolean()\n .describe('Weekly trigger feature setting for workflows'),\n})\n\nexport type Workflow = z.infer<typeof WORKFLOW>\nexport type WorkflowExtended = z.infer<typeof WORKFLOW_EXTENDED>\nexport type WorkflowExtendedSchema = z.infer<typeof WORKFLOW_EXTENDED_SCHEMA>\n\nexport const GET_WORKFLOW_RESPONSE = z.object({\n data: WORKFLOW_EXTENDED,\n})\n\nexport const GET_WORKFLOW_SIMPLIFIED_RESPONSE = z.object({\n data: WORKFLOW_EXTENDED_SIMPLIFIED,\n})\n\nexport type GetWorkflowParams = z.infer<typeof GET_WORKFLOW_PARAMS>\nexport type GetWorkflowResponse = z.infer<typeof GET_WORKFLOW_RESPONSE>\n\n// LIST WORKFLOWS\nexport const GET_WORKFLOW_LIST_PARAMS = UNSPECIFIED_WORKFLOW_PARAMS\n\nexport const GET_WORKFLOW_LIST_RESPONSE = z.object({\n data: z.array(WORKFLOW),\n})\n\nexport type GetWorkflowListParams = z.infer<typeof GET_WORKFLOW_LIST_PARAMS>\nexport type GetWorkflowListResponse = z.infer<typeof GET_WORKFLOW_LIST_RESPONSE>\n\n// PAUSE WORKFLOW\nexport const PATCH_PAUSE_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const PATCH_PAUSE_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully paused workflow',\n})\n\nexport type PatchPauseWorkflowParams = z.infer<typeof PATCH_PAUSE_WORKFLOW_PARAMS>\nexport type PatchPauseWorkflowResponse = z.infer<typeof PATCH_PAUSE_WORKFLOW_RESPONSE>\n\n// RESUME WORKFLOW\nexport const PATCH_RESUME_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const PATCH_RESUME_WORKFLOW_BODY = z.object({\n runNow: z.optional(z.boolean()).default(false),\n})\n\nexport const PATCH_RESUME_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully resumed workflow',\n})\n\nexport type PatchResumeWorkflowParams = z.infer<typeof PATCH_RESUME_WORKFLOW_PARAMS>\nexport type PatchResumeWorkflowBody = z.infer<typeof PATCH_RESUME_WORKFLOW_BODY>\nexport type PatchResumeWorkflowResponse = z.infer<typeof PATCH_RESUME_WORKFLOW_RESPONSE>\n\n// DUPLICATE WORKFLOW\nexport const POST_DUPLICATE_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const POST_DUPLICATE_WORKFLOW_RESPONSE = GET_WORKFLOW_RESPONSE\n\n// DELETE WORKFLOW\nexport const DELETE_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const DELETE_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully deleted workflow',\n})\n\nexport type DeleteWorkflowParams = z.infer<typeof DELETE_WORKFLOW_PARAMS>\nexport type DeleteWorkflowResponse = z.infer<typeof DELETE_WORKFLOW_RESPONSE>\n\n// CREATE WORKFLOW\nexport const POST_WORKFLOW_PARAMS = UNSPECIFIED_WORKFLOW_PARAMS\n\nexport const POST_WORKFLOW_BODY = z\n .nullable(\n z.object({\n templateId: TEMPLATE_ID.optional(),\n }),\n )\n .describe('Parameters for creating a workflow')\n\nexport const POST_WORKFLOW_RESPONSE = z.object({\n data: WORKFLOW_EXTENDED,\n})\n\nexport const POST_WORKFLOW_SIMPLIFIED_RESPONSE = z.object({\n data: WORKFLOW_EXTENDED_SIMPLIFIED,\n})\n\nexport type PostWorkflowParams = z.infer<typeof POST_WORKFLOW_PARAMS>\nexport type PostWorkflowBody = z.infer<typeof POST_WORKFLOW_BODY>\nexport type PostWorkflowResponse = z.infer<typeof POST_WORKFLOW_RESPONSE>\n\n// UPDATE DRAFT\nexport const PUT_WORKFLOW_DRAFT_PARAMS = WORKFLOW_PARAMS\n\nexport const PUT_WORKFLOW_DRAFT_BODY = z\n .object({\n schema: WORKFLOW_EXTENDED_SCHEMA_SIMPLIFIED,\n })\n .describe('Schema with user changes')\n\nexport const PUT_WORKFLOW_DRAFT_RESPONSE = z.null({\n description: 'Successfully updated workflow draft',\n})\n\nexport type PutWorkflowDraftParams = z.infer<typeof PUT_WORKFLOW_DRAFT_PARAMS>\nexport type PutWorkflowDraftBody = z.infer<typeof PUT_WORKFLOW_DRAFT_BODY>\nexport type PutWorkflowDraftResponse = z.infer<typeof PUT_WORKFLOW_DRAFT_RESPONSE>\n\n// PATCH WORKFLOW\nexport const PATCH_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const PATCH_WORKFLOW_BODY = z\n .object({\n title: z.string().min(1).max(256),\n })\n .describe('Workflow title')\n\nexport const PATCH_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully updated workflow',\n})\n\nexport type PatchWorkflowParams = z.infer<typeof PATCH_WORKFLOW_PARAMS>\nexport type PatchWorkflowBody = z.infer<typeof PATCH_WORKFLOW_BODY>\nexport type PatchWorkflowResponse = z.infer<typeof PATCH_WORKFLOW_RESPONSE>\n\n// ACTIVATE WORKFLOW\nexport const POST_ACTIVATE_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const POST_ACTIVATE_WORKFLOW_BODY = z\n .object({\n runNow: z.optional(z.boolean()),\n schema: WORKFLOW_EXTENDED_SCHEMA,\n })\n .describe(\n 'Schema with user changes. If runNow is true, the workflow will be triggered immediately.',\n )\n\nexport const POST_ACTIVATE_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully activated workflow',\n})\n\nexport type PostActivateWorkflowParams = z.infer<typeof POST_ACTIVATE_WORKFLOW_PARAMS>\nexport type PostActivateWorkflowBody = z.infer<typeof POST_ACTIVATE_WORKFLOW_BODY>\nexport type PostActivateWorkflowResponse = z.infer<typeof POST_ACTIVATE_WORKFLOW_RESPONSE>\n\n// PUT LIVE WORKFLOW\nexport const PUT_LIVE_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const PUT_LIVE_WORKFLOW_BODY = z\n .object({\n runNow: z.optional(z.boolean()),\n schema: WORKFLOW_EXTENDED_SCHEMA,\n })\n .describe(\n 'Schema with user changes. If runNow is true, the workflow will be triggered immediately.',\n )\n\nexport const PUT_LIVE_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully updated workflow',\n})\n\nexport type PutLiveWorkflowParams = z.infer<typeof PUT_LIVE_WORKFLOW_PARAMS>\nexport type PutLiveWorkflowBody = z.infer<typeof PUT_LIVE_WORKFLOW_BODY>\nexport type PutLiveWorkflowResponse = z.infer<typeof PUT_LIVE_WORKFLOW_RESPONSE>\n\nexport const GET_LIVE_WORKFLOWS_BY_TENANT_ID_PARAMS = z\n .object({\n ownerId: z.string(),\n })\n .describe('URL parameters for getting live workflows by tenant ID')\n\nexport type GetLiveWorkflowsByTenantIdParams = z.infer<\n typeof GET_LIVE_WORKFLOWS_BY_TENANT_ID_PARAMS\n>\n\nexport const GET_LIVE_WORKFLOWS_BY_TENANT_ID_RESPONSE = GET_WORKFLOW_LIST_RESPONSE\n\nexport type GetLiveWorkflowsByTenantIdResponse = z.infer<typeof GET_WORKFLOW_LIST_RESPONSE>\n\nexport type GetWorkflowsEntitlementsParams = z.infer<typeof GET_ENTITLEMENTS_PARAMS>\n\nexport type GetWorkflowsEntitlementsResponse = z.infer<typeof GET_ENTITLEMENTS_RESPONSE>\n\n// START WORKFLOW RUN\nconst WORKFLOW_RUN_ID = z.string().max(36)\n\nexport const WORKFLOW_RUN_STATUS = z\n .enum(['Started', 'Completed', 'Failed'])\n .describe('Workflow run status')\n\nexport const WORKFLOW_RUN_TYPE = z.enum(['Manual', 'Scheduled', 'Automated']).describe('Run type')\nexport type WorkflowRunType = z.infer<typeof WORKFLOW_RUN_TYPE>\n\nexport const WORKFLOW_RUN = z\n .object({\n id: WORKFLOW_RUN_ID,\n groupId: GROUP_ID,\n status: WORKFLOW_RUN_STATUS,\n createdAt: DATETIME,\n updatedAt: z.optional(DATETIME),\n runType: WORKFLOW_RUN_TYPE,\n workflowId: WORKFLOW_ID,\n version: z.number(),\n })\n .describe('Response for getting a workflow run')\n\nexport const POST_START_WORKFLOW_RUN_RESPONSE = z.object({\n data: WORKFLOW_RUN,\n})\n\nexport type WorkflowRunDto = z.infer<typeof WORKFLOW_RUN>\n\nexport type PostStartWorkflowRunResponse = z.infer<typeof POST_START_WORKFLOW_RUN_RESPONSE>\n","import type {\n WorkflowLayout,\n WorkflowLayoutStepSettingsList,\n WorkflowLayoutStepTriggerEvent,\n WorkflowMetadata,\n} from '@lokalise/maestro-common'\nimport { areDeepEqual } from '@lokalise/universal-ts-utils/node'\nimport type { LayoutTranslatorInterface } from '../../../../src/modules/workflows/interfaces/LayoutTranslatorInterface.js'\nimport { TEMPLATES } from '../templates/schemas.js'\nimport type {\n FrontendLayout,\n InternalTemplate,\n StrictWorkflowLayout,\n StrictWorkflowLayoutSettings,\n StrictWorkflowLayoutStepSettings,\n Template,\n} from '../templates/types.js'\nimport type { ScheduledTriggerStepSettings, StepType } from './steps.js'\n\ntype FrontendStep = {\n id: string\n type: StepType\n values: Record<string, unknown>\n triggerType?: string\n taskType?: string\n}\n\nexport class LayoutTranslator implements LayoutTranslatorInterface {\n public translateTemplateToFrontendLayout<StateName extends string>(\n template: InternalTemplate<StateName>,\n ): FrontendLayout<StateName> {\n return this.buildFrontendLayout<StateName>(template.settings, template.sort)\n }\n\n public translateFrontendLayoutToTemplate<StateName extends string>(\n frontendLayout: FrontendLayout<StateName>,\n ): Pick<InternalTemplate<StateName>, 'layout' | 'settings'> | undefined {\n const template = this.findTemplate(frontendLayout)\n if (!template) {\n return undefined\n }\n\n const layoutSettings = this.buildLayoutSettings<StateName>(frontendLayout)\n\n return {\n layout: template.layout as StrictWorkflowLayout<StateName>,\n settings: layoutSettings,\n }\n }\n\n public buildFrontendLayout<StateName extends string>(\n settings: StrictWorkflowLayoutSettings<StateName>,\n sort: StateName[] = [],\n ): FrontendLayout<StateName> {\n return Object.keys(settings)\n .sort((a, b) => sort.indexOf(a as StateName) - sort.indexOf(b as StateName))\n .map((id) => {\n const { stepType, triggerType, taskType, ...values } = settings[id]\n\n const step = {\n id: id as StateName,\n type: stepType as StepType,\n values,\n triggerType,\n taskType,\n }\n\n return Object.entries(step)\n .filter(([_, value]) => value !== undefined)\n .reduce(\n (acc, [key, value]) => {\n // @ts-ignore\n acc[key] = value\n return acc\n },\n {} as FrontendLayout<StateName>[0],\n )\n })\n }\n\n // Based on the linear layout, return the order of steps\n public getStepSortFromLayout(layout: WorkflowLayout): string[] {\n const sort = [layout.initial]\n let currentState = layout.states[layout.initial]\n\n while (currentState.on) {\n const allEvents: WorkflowLayoutStepTriggerEvent[] = Object.values(currentState.on)\n const event = allEvents.find((evt) => evt.target !== undefined)\n\n if (event === undefined || event.target === undefined) {\n currentState = {\n ...currentState,\n on: undefined,\n }\n continue\n }\n\n sort.push(event.target)\n currentState = layout.states[event.target]\n }\n\n return sort\n }\n\n public buildWorkflowMetadata({\n settings,\n }: Pick<InternalTemplate<string>, 'settings'>): WorkflowMetadata {\n const step = settings.TriggerStep as ScheduledTriggerStepSettings\n\n return {\n triggerType: step.triggerType,\n targetLanguageIds: step.targetLanguageIds.map((id) => id.toString()),\n }\n }\n\n public getTriggerSchedulerExpression(\n settings: WorkflowLayoutStepSettingsList,\n ): string | undefined {\n const step = settings.TriggerStep as ScheduledTriggerStepSettings\n\n if (!step) {\n return undefined\n }\n\n if (step.triggerType === 'Scheduled') {\n return step.scheduleFrequencyExpression ?? undefined\n }\n\n return undefined\n }\n\n public getTriggerSchedulerStartDate(\n settings: WorkflowLayoutStepSettingsList,\n ): string | undefined {\n const step = settings.TriggerStep as ScheduledTriggerStepSettings\n\n if (!step) {\n return undefined\n }\n\n if (step.triggerType === 'Scheduled') {\n return step.scheduleStartingDate\n }\n\n return undefined\n }\n\n buildLayoutSettings<StateName extends string>(\n frontendLayout: FrontendLayout<StateName>,\n ): StrictWorkflowLayoutSettings<StateName> {\n return frontendLayout.reduce(\n (acc, frontendStep: FrontendStep) => {\n const step: StrictWorkflowLayoutStepSettings = {\n ...frontendStep.values,\n stepType: frontendStep.type,\n triggerType: frontendStep.type === 'trigger_step' ? frontendStep.triggerType : undefined,\n taskType:\n frontendStep.type === 'translate_task_step' ||\n frontendStep.type === 'review_task_step' ||\n frontendStep.type === 'ai_mt_translation_step'\n ? frontendStep.taskType\n : undefined,\n }\n acc[frontendStep.id as StateName] = Object.fromEntries(\n Object.entries(step).filter(([_, value]) => value !== undefined),\n ) as StrictWorkflowLayoutStepSettings\n return acc\n },\n {} as Record<StateName, StrictWorkflowLayoutStepSettings>,\n )\n }\n\n findTemplate<StateName extends string>(\n frontendLayout: FrontendLayout<StateName>,\n ): Template<StateName> | undefined {\n const frontendLayoutStepIds = frontendLayout.map((step) => step.id)\n\n const result = Object.entries(TEMPLATES).find(([_, template]) => {\n const templateStepIds = template.frontendLayout.map((step) => step.id)\n return areDeepEqual(frontendLayoutStepIds, templateStepIds)\n })\n\n if (!result) {\n return undefined\n }\n\n const [_, template] = result\n\n return template as Template<StateName>\n }\n}\n","import {\n CRON_EXPRESSION_REGEX,\n WORKFLOW_LAYOUT_STEP_SETTINGS,\n type WorkflowLayoutStepSettings,\n} from '@lokalise/maestro-common'\nimport { z } from 'zod'\n\nexport const SCHEDULED_TRIGGER_STEP_FORM_SCHEMA = z.object({\n stepTitle: z.string().trim().min(1),\n scheduleFrequencyExpression: z.string().regex(CRON_EXPRESSION_REGEX),\n scheduleStartingDate: z.string().date(),\n monitoredLanguageId: z.number().min(1).int(),\n targetLanguageIds: z.array(z.number().min(1).int()).min(1),\n monitoredKeyType: z.enum(['new', 'updated', 'both']),\n projectFilterId: z.string().optional().nullable(),\n})\n\nexport type ScheduledTriggerStepForm = z.infer<typeof SCHEDULED_TRIGGER_STEP_FORM_SCHEMA>\n\nexport const SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.merge(\n SCHEDULED_TRIGGER_STEP_FORM_SCHEMA,\n).extend({\n stepType: z.literal('trigger_step'),\n triggerType: z.literal('Scheduled'),\n})\n\nexport type ScheduledTriggerStepSettings = z.infer<typeof SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS: WorkflowLayoutStepSettings &\n Partial<ScheduledTriggerStepSettings> = {\n stepType: 'trigger_step',\n triggerType: 'Scheduled',\n stepTitle: 'Trigger and scope',\n scheduleFrequencyExpression: '00 09 * * 0,1,2,3,4,5,6',\n scheduleStartingDate: undefined,\n monitoredLanguageId: undefined,\n targetLanguageIds: [],\n monitoredKeyType: 'new',\n projectFilterId: null,\n}\n","import {\n WORKFLOW_LAYOUT_STEP_SETTINGS,\n type WorkflowLayoutStepSettings,\n} from '@lokalise/maestro-common'\nimport { z } from 'zod'\nimport { TRANSLATION_ENGINE } from '../messages.js'\n\nexport const AI_MT_TRANSLATION_STEP_FORM_SCHEMA = z\n .object({\n stepTitle: z.string().min(1),\n translationEngine: TRANSLATION_ENGINE,\n taskTitle: z.string().optional(),\n aiInstructions: z.string().optional(),\n tagKeysAfterClose: z.boolean(),\n tagsToAddAfterClose: z.array(z.string()).optional(),\n customTranslationStatusIds: z.array(z.number()).optional(),\n hasCustomTranslationStatuses: z.boolean(),\n })\n .superRefine(({ tagKeysAfterClose, tagsToAddAfterClose }, context) => {\n if (tagKeysAfterClose && tagsToAddAfterClose?.length === 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'At least one tag must be added if \"Tag keys after task is closed\" is checked',\n path: ['tagsToAddAfterClose'],\n })\n }\n if (!tagKeysAfterClose && tagsToAddAfterClose && tagsToAddAfterClose.length > 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'One or more tags are set but \"Tag keys after task is closed\" is not checked',\n path: ['tagKeysAfterClose'],\n })\n }\n })\n .superRefine(({ hasCustomTranslationStatuses, customTranslationStatusIds }, context) => {\n if (hasCustomTranslationStatuses && customTranslationStatusIds?.length === 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'You must select custom statuses if \"Allow assignees to set custom statuses\" is checked',\n path: ['customTranslationStatusIds'],\n })\n }\n if (\n !hasCustomTranslationStatuses &&\n customTranslationStatusIds &&\n customTranslationStatusIds.length > 0\n ) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'Custom statuses are set but \"Allow assignees to set custom statuses\" is not checked',\n path: ['hasCustomTranslationStatuses'],\n })\n }\n })\n\nexport type AiMtTranslationStepForm = z.infer<typeof AI_MT_TRANSLATION_STEP_FORM_SCHEMA>\n\nexport const AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.merge(\n z.object(AI_MT_TRANSLATION_STEP_FORM_SCHEMA._def.schema._def.schema.shape),\n).extend({\n stepType: z.literal('ai_mt_translation_step'),\n taskType: z.literal('translation'),\n stepTitle: z.string().min(1),\n translationEngine: TRANSLATION_ENGINE,\n taskTitle: z.string().optional(),\n aiInstructions: z.string().optional(),\n tagKeysAfterClose: z.boolean(),\n tagsToAddAfterClose: z.array(z.string()).optional(),\n customTranslationStatusIds: z.array(z.number()).optional(),\n hasCustomTranslationStatuses: z.boolean(),\n})\n\nexport type AiMtTranslationStepSettings = z.infer<typeof AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS: WorkflowLayoutStepSettings &\n Partial<AiMtTranslationStepSettings> = {\n stepType: 'ai_mt_translation_step',\n stepTitle: 'AI/MT Translation Task',\n taskType: 'translation',\n aiInstructions: undefined,\n translationEngine: undefined,\n taskTitle: undefined,\n tagKeysAfterClose: false,\n tagsToAddAfterClose: [],\n customTranslationStatusIds: [],\n hasCustomTranslationStatuses: false,\n}\n","import { WORKFLOW_LAYOUT_STEP_SETTINGS } from '@lokalise/maestro-common'\nimport { z } from 'zod'\nimport { APPLY_TM_STEP_SETTINGS_SCHEMA } from './steps/applyTmStep.js'\n\nconst TASK_LANGUAGE_ASSIGNEES = z.object({\n languageId: z.number(),\n userIds: z.optional(z.array(z.number())),\n userGroupIds: z.optional(z.array(z.number())),\n isSource: z.boolean().default(false),\n})\n\nexport const TRANSLATION_ENGINE = z.enum(['ai', 'deepl', 'google'], {\n errorMap: () => ({ message: 'Please choose a translation engine' }),\n})\n\nexport const CREATE_TASK_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.extend({\n stepType: z.enum(['translate_task_step', 'review_task_step', 'ai_mt_translation_step']),\n stepTitle: z.string().trim().min(1),\n taskType: z.enum(['translation', 'review']),\n taskTitle: z.optional(z.string()).describe('If empty, the workflow title will be used'),\n taskDescription: z\n .optional(z.string())\n .describe('Add a description such as including links to useful resources to assignees.'),\n dueDate: z.optional(z.number().int().min(1).max(365)),\n languageAssignees: z.array(TASK_LANGUAGE_ASSIGNEES).min(1),\n autoCloseItems: z.optional(z.boolean()),\n autoCloseLanguages: z.boolean(),\n autoCloseTask: z.boolean(),\n lockTranslations: z.boolean(),\n hasCustomTranslationStatuses: z.boolean().default(false),\n customTranslationStatusIds: z.array(z.number()).optional(),\n tagKeysAfterClose: z.boolean().default(false),\n tagsToAddAfterClose: z.array(z.string().max(128)).optional(),\n translationEngine: z.optional(TRANSLATION_ENGINE),\n aiInstructions: z.string().optional(),\n reviewLanguageType: z.enum(['source', 'target']).optional(),\n})\nexport type CreateTaskStepSettings = z.infer<typeof CREATE_TASK_STEP_SETTINGS_SCHEMA>\n\nexport const CREATE_TASK_MESSAGE_CONTEXT = CREATE_TASK_STEP_SETTINGS_SCHEMA.omit({\n stepType: true,\n stepTitle: true,\n dueDate: true,\n tagKeysAfterClose: true,\n}).extend({\n teamId: z.number(),\n projectId: z.string(),\n dueDate: z.optional(z.date()),\n sourceLanguageId: z.number(),\n keyIds: z.record(z.string(), z.array(z.number())),\n})\nexport type CreateTaskMessageContext = z.infer<typeof CREATE_TASK_MESSAGE_CONTEXT>\n\nexport const APPLY_TM_MESSAGE_CONTEXT = APPLY_TM_STEP_SETTINGS_SCHEMA.omit({\n stepType: true,\n stepTitle: true,\n}).extend({\n teamId: z.string(),\n projectId: z.string(),\n keysByLanguages: z.record(z.string(), z.array(z.number())),\n})\n\nexport type ApplyTmMessageContext = z.infer<typeof APPLY_TM_MESSAGE_CONTEXT>\n","import {\n WORKFLOW_LAYOUT_STEP_SETTINGS,\n type WorkflowLayoutStepSettings,\n} from '@lokalise/maestro-common'\nimport { z } from 'zod'\n\nexport const APPLY_TM_STEP_FORM_SCHEMA = z.object({\n stepTitle: z.string().trim().min(1),\n threshold: z.number().int().min(1).max(100).default(100),\n})\n\nexport type ApplyTmStepForm = z.infer<typeof APPLY_TM_STEP_FORM_SCHEMA>\n\nexport const APPLY_TM_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.merge(\n APPLY_TM_STEP_FORM_SCHEMA,\n).extend({\n stepType: z.literal('apply_tm_step'),\n})\n\nexport type ApplyTmStepSettings = z.infer<typeof APPLY_TM_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_APPLY_TM_STEP_SETTINGS: WorkflowLayoutStepSettings &\n Partial<ApplyTmStepSettings> = {\n stepType: 'apply_tm_step',\n stepTitle: 'Apply Translation Memory',\n threshold: 100,\n}\n","import type { WorkflowLayoutStepSettings } from '@lokalise/maestro-common'\nimport { type RefinementCtx, z } from 'zod'\nimport { CREATE_TASK_STEP_SETTINGS_SCHEMA } from '../messages.js'\n\nexport const TRANSLATE_TASK_STEP_FORM_SCHEMA = CREATE_TASK_STEP_SETTINGS_SCHEMA.omit({\n stepType: true,\n taskType: true,\n})\n .superRefine(({ tagKeysAfterClose, tagsToAddAfterClose }, context: RefinementCtx) => {\n if (tagKeysAfterClose && tagsToAddAfterClose?.length === 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'At least one tag must be added if \"Tag keys after task is closed\" is checked',\n path: ['tagsToAddAfterClose'],\n })\n }\n if (!tagKeysAfterClose && tagsToAddAfterClose && tagsToAddAfterClose.length > 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'One or more tags are set but \"Tag keys after task is closed\" is not checked',\n path: ['tagKeysAfterClose'],\n })\n }\n })\n .superRefine(({ hasCustomTranslationStatuses, customTranslationStatusIds }, context) => {\n if (hasCustomTranslationStatuses && customTranslationStatusIds?.length === 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'You must select custom statuses if \"Allow assignees to set custom statuses\" is checked',\n path: ['customTranslationStatusIds'],\n })\n }\n if (\n !hasCustomTranslationStatuses &&\n customTranslationStatusIds &&\n customTranslationStatusIds.length > 0\n ) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'Custom statuses are set but \"Allow assignees to set custom statuses\" is not checked',\n path: ['hasCustomTranslationStatuses'],\n })\n }\n })\n .superRefine(({ languageAssignees }, context) => {\n const targetLanguageAssignees = languageAssignees.filter(({ isSource }) => !isSource)\n\n const isValid =\n targetLanguageAssignees.length > 0 &&\n targetLanguageAssignees.every(\n ({ userIds, userGroupIds }) =>\n (userIds?.length ?? 0) > 0 || (userGroupIds?.length ?? 0) > 0,\n )\n\n if (!isValid) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Either users or groups should be specified.',\n path: ['languageAssignees'],\n })\n }\n })\n\nexport type TranslateTaskStepForm = z.infer<typeof TRANSLATE_TASK_STEP_FORM_SCHEMA>\n\nexport const TRANSLATE_TASK_STEP_SETTINGS_SCHEMA = CREATE_TASK_STEP_SETTINGS_SCHEMA.extend({\n stepType: z.literal('translate_task_step'),\n taskType: z.literal('translation'),\n autoCloseItems: z.boolean(),\n})\n\nexport type TranslateTaskStepSettings = z.infer<typeof TRANSLATE_TASK_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_TRANSLATE_TASK_STEP_SETTINGS: WorkflowLayoutStepSettings &\n Partial<TranslateTaskStepSettings> = {\n stepType: 'translate_task_step',\n stepTitle: 'Translation task for contributors',\n taskType: 'translation',\n taskTitle: undefined,\n taskDescription: undefined,\n dueDate: undefined,\n languageAssignees: [],\n autoCloseItems: false,\n autoCloseLanguages: false,\n autoCloseTask: true,\n lockTranslations: false,\n hasCustomTranslationStatuses: false,\n customTranslationStatusIds: [],\n tagKeysAfterClose: false,\n tagsToAddAfterClose: [],\n}\n","import type { WorkflowLayoutStepSettings } from '@lokalise/maestro-common'\nimport { type RefinementCtx, z } from 'zod'\nimport { CREATE_TASK_STEP_SETTINGS_SCHEMA } from '../messages.js'\n\nexport const REVIEW_TASK_STEP_FORM_SCHEMA = CREATE_TASK_STEP_SETTINGS_SCHEMA.omit({\n stepType: true,\n taskType: true,\n})\n .superRefine(({ tagKeysAfterClose, tagsToAddAfterClose }, context: RefinementCtx) => {\n if (tagKeysAfterClose && tagsToAddAfterClose?.length === 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'At least one tag must be added if \"Tag keys after task is closed\" is checked',\n path: ['tagsToAddAfterClose'],\n })\n }\n if (!tagKeysAfterClose && tagsToAddAfterClose && tagsToAddAfterClose.length > 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'One or more tags are set but \"Tag keys after task is closed\" is not checked',\n path: ['tagKeysAfterClose'],\n })\n }\n })\n .superRefine(({ hasCustomTranslationStatuses, customTranslationStatusIds }, context) => {\n if (hasCustomTranslationStatuses && customTranslationStatusIds?.length === 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'You must select custom statuses if \"Allow assignees to set custom statuses\" is checked',\n path: ['customTranslationStatusIds'],\n })\n }\n if (\n !hasCustomTranslationStatuses &&\n customTranslationStatusIds &&\n customTranslationStatusIds.length > 0\n ) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'Custom statuses are set but \"Allow assignees to set custom statuses\" is not checked',\n path: ['hasCustomTranslationStatuses'],\n })\n }\n })\n .superRefine(({ languageAssignees, reviewLanguageType }, context: RefinementCtx) => {\n const sourceFilter = reviewLanguageType === 'source'\n const filteredLanguageAssignees = languageAssignees.filter(\n ({ isSource }) => isSource === sourceFilter,\n )\n const isValid =\n filteredLanguageAssignees.length > 0 &&\n filteredLanguageAssignees.every(\n ({ userIds, userGroupIds }) =>\n (userIds?.length ?? 0) > 0 || (userGroupIds?.length ?? 0) > 0,\n )\n\n if (!isValid) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Either users or groups should be specified for review language type ${reviewLanguageType}.`,\n path: ['languageAssignees'],\n })\n }\n })\n\nexport type ReviewTaskStepForm = z.infer<typeof REVIEW_TASK_STEP_FORM_SCHEMA>\n\nexport const REVIEW_TASK_STEP_SETTINGS_SCHEMA = CREATE_TASK_STEP_SETTINGS_SCHEMA.omit({\n autoCloseItems: true,\n}).extend({\n stepType: z.literal('review_task_step'),\n taskType: z.literal('review'),\n})\n\nexport type ReviewTaskStepSettings = z.infer<typeof REVIEW_TASK_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_REVIEW_TASK_STEP_SETTINGS: WorkflowLayoutStepSettings &\n Partial<ReviewTaskStepSettings> = {\n stepType: 'review_task_step',\n stepTitle: 'Review task for contributors',\n taskType: 'review',\n taskTitle: undefined,\n taskDescription: undefined,\n dueDate: undefined,\n languageAssignees: [],\n autoCloseLanguages: false,\n autoCloseTask: true,\n lockTranslations: false,\n hasCustomTranslationStatuses: false,\n customTranslationStatusIds: [],\n tagKeysAfterClose: false,\n tagsToAddAfterClose: [],\n reviewLanguageType: 'target',\n}\n\nexport const DEFAULT_REVIEW_TASK_STEP_SETTINGS_WITH_SOURCE = {\n ...DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n reviewLanguageType: 'source',\n}\n","import {\n WORKFLOW_LAYOUT_STEP_SETTINGS,\n type WorkflowLayoutStepSettings,\n} from '@lokalise/maestro-common'\nimport { z } from 'zod'\n\nexport const CLEAR_TRANSLATIONS_STEP_FORM_SCHEMA = z.object({})\nexport type ClearTranslationsStepForm = z.infer<typeof CLEAR_TRANSLATIONS_STEP_FORM_SCHEMA>\n\nexport const CLEAR_TRANSLATIONS_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.merge(\n CLEAR_TRANSLATIONS_STEP_FORM_SCHEMA,\n).extend({\n stepType: z.literal('clear_translations_step'),\n})\nexport type ClearTranslationsStepSettings = z.infer<typeof CLEAR_TRANSLATIONS_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS: WorkflowLayoutStepSettings &\n ClearTranslationsStepSettings = {\n stepType: 'clear_translations_step',\n}\n","import {\n WORKFLOW_LAYOUT_STEP_SETTINGS,\n type WorkflowLayoutStepSettings,\n} from '@lokalise/maestro-common'\nimport { z } from 'zod'\n\nexport const END_STEP_FORM_SCHEMA = z.object({})\nexport type EndStepForm = z.infer<typeof END_STEP_FORM_SCHEMA>\n\nexport const END_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.merge(\n END_STEP_FORM_SCHEMA,\n).extend({\n stepType: z.literal('end_step'),\n})\nexport type EndStepSettings = z.infer<typeof END_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_END_STEP_SETTINGS: WorkflowLayoutStepSettings & EndStepSettings = {\n stepType: 'end_step',\n}\n","export {\n SCHEDULED_TRIGGER_STEP_FORM_SCHEMA,\n SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from './steps/scheduledTriggerStep.js'\nexport type {\n ScheduledTriggerStepForm,\n ScheduledTriggerStepSettings,\n} from './steps/scheduledTriggerStep.js'\n\nexport {\n AI_MT_TRANSLATION_STEP_FORM_SCHEMA,\n AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA,\n DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n} from './steps/aiMtTranslationStep.js'\nexport type {\n AiMtTranslationStepForm,\n AiMtTranslationStepSettings,\n} from './steps/aiMtTranslationStep.js'\n\nexport {\n TRANSLATE_TASK_STEP_FORM_SCHEMA,\n TRANSLATE_TASK_STEP_SETTINGS_SCHEMA,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from './steps/translateTaskStep.js'\nexport type {\n TranslateTaskStepForm,\n TranslateTaskStepSettings,\n} from './steps/translateTaskStep.js'\nexport {\n REVIEW_TASK_STEP_FORM_SCHEMA,\n REVIEW_TASK_STEP_SETTINGS_SCHEMA,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS_WITH_SOURCE,\n} from './steps/reviewTaskStep.js'\nexport type {\n ReviewTaskStepForm,\n ReviewTaskStepSettings,\n} from './steps/reviewTaskStep.js'\nexport {\n CLEAR_TRANSLATIONS_STEP_FORM_SCHEMA,\n CLEAR_TRANSLATIONS_STEP_SETTINGS_SCHEMA,\n DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n type ClearTranslationsStepForm,\n type ClearTranslationsStepSettings,\n} from './steps/clearTranslationsStep.js'\nexport {\n APPLY_TM_STEP_FORM_SCHEMA,\n APPLY_TM_STEP_SETTINGS_SCHEMA,\n DEFAULT_APPLY_TM_STEP_SETTINGS,\n type ApplyTmStepForm,\n type ApplyTmStepSettings,\n} from './steps/applyTmStep.js'\nexport {\n END_STEP_FORM_SCHEMA,\n END_STEP_SETTINGS_SCHEMA,\n DEFAULT_END_STEP_SETTINGS,\n} from './steps/endStep.js'\nexport type { EndStepForm, EndStepSettings } from './steps/endStep.js'\n\nexport const STEP_TYPES = [\n 'trigger_step',\n 'review_task_step',\n 'translate_task_step',\n 'clear_translations_step',\n 'apply_tm_step',\n 'end_step',\n 'ai_mt_translation_step',\n] as const\nexport type StepType = (typeof STEP_TYPES)[number]\n","import {\n DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_MT_AI_REVIEW_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ClearTranslationsStep' | 'AiMtTranslationStep' | 'ReviewTaskStep' | 'EndStep'\n> = {\n id: 'clearTranslationsMtAiReviewTask',\n title: 'AI/MT • Review task',\n summary:\n 'Apply AI/MT translation after clearing existing translations, and then create a review task.',\n description:\n 'This template sets up a workflow that clears existing translations, applies AI/MT translation, and creates a review task for human verification.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'AiMtTranslationStep',\n },\n },\n },\n AiMtTranslationStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'ai_mt_translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskSkippedEvent: {\n target: 'ReviewTaskStep',\n },\n TaskClosedEvent: {\n target: 'ReviewTaskStep',\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n AiMtTranslationStep: DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: [\n 'TriggerStep',\n 'ClearTranslationsStep',\n 'AiMtTranslationStep',\n 'ReviewTaskStep',\n 'EndStep',\n ],\n gateLevel: 1, // Start+ for templates with MT/AI, but without TM\n}\n","import {\n DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_MT_AI_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ClearTranslationsStep' | 'AiMtTranslationStep' | 'EndStep'\n> = {\n id: 'clearTranslationsMtAiTask',\n title: 'AI/MT (AI/Machine translation)',\n summary: 'Apply AI/MT translation after clearing existing translations.',\n description:\n 'This template sets up a workflow that first clears existing translations and then applies AI/MT translation.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'AiMtTranslationStep',\n },\n },\n },\n AiMtTranslationStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'ai_mt_translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskSkippedEvent: {\n target: 'EndStep',\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n AiMtTranslationStep: DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ClearTranslationsStep', 'AiMtTranslationStep', 'EndStep'],\n gateLevel: 1, // Start+ for templates with MT/AI, but without TM\n}\n","import {\n DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_APPLY_TM_STEP_SETTINGS } from '../../workflow/steps/applyTmStep.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_TM_MT_AI_REVIEW_TASK_TEMPLATE: InternalTemplate<\n | 'TriggerStep'\n | 'ClearTranslationsStep'\n | 'ApplyTmStep'\n | 'AiMtTranslationStep'\n | 'ReviewTaskStep'\n | 'EndStep'\n> = {\n id: 'clearTranslationsTmMtAiReviewTask',\n title: 'TM • AI/MT • Review task',\n summary:\n 'Translate content using Translation Memory, apply AI/MT translation for the rest, and then create a review task',\n description:\n 'This template sets up a workflow that clears existing translations, applies Translation Memory, then AI/MT translation, and creates a review task for human verification.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'ApplyTmStep',\n },\n },\n },\n ApplyTmStep: {\n entry: [\n {\n type: 'applyTmAction',\n },\n ],\n on: {\n TmAppliedEvent: {\n target: 'AiMtTranslationStep',\n },\n },\n },\n AiMtTranslationStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'ai_mt_translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskSkippedEvent: {\n target: 'ReviewTaskStep',\n },\n TaskClosedEvent: {\n target: 'ReviewTaskStep',\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n ApplyTmStep: DEFAULT_APPLY_TM_STEP_SETTINGS,\n AiMtTranslationStep: DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: [\n 'TriggerStep',\n 'ClearTranslationsStep',\n 'ApplyTmStep',\n 'AiMtTranslationStep',\n 'ReviewTaskStep',\n 'EndStep',\n ],\n gateLevel: 2, // Essentials+ for templates with MT/AI and TM\n}\n","import {\n DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_APPLY_TM_STEP_SETTINGS } from '../../workflow/steps/applyTmStep.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_TM_MT_AI_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ClearTranslationsStep' | 'ApplyTmStep' | 'AiMtTranslationStep' | 'EndStep'\n> = {\n id: 'clearTranslationsTmMtAiTask',\n title: 'TM • AI/MT',\n summary: 'Translate content using Translation Memory, apply AI/MT translation for the rest',\n description:\n 'This template sets up a workflow that clears existing translations, applies Translation Memory, then AI/MT translation.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'ApplyTmStep',\n },\n },\n },\n ApplyTmStep: {\n entry: [\n {\n type: 'applyTmAction',\n },\n ],\n on: {\n TmAppliedEvent: {\n target: 'AiMtTranslationStep',\n },\n },\n },\n AiMtTranslationStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'ai_mt_translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskSkippedEvent: {\n target: 'EndStep',\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n ApplyTmStep: DEFAULT_APPLY_TM_STEP_SETTINGS,\n AiMtTranslationStep: DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ClearTranslationsStep', 'ApplyTmStep', 'AiMtTranslationStep', 'EndStep'],\n gateLevel: 2, // Essentials+ for templates with MT/AI and TM\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_APPLY_TM_STEP_SETTINGS } from '../../workflow/steps/applyTmStep.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_TM_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ClearTranslationsStep' | 'ApplyTmStep' | 'EndStep'\n> = {\n id: 'clearTranslationsTm',\n title: 'TM (Translation Memory)',\n summary:\n 'Translate content using Translation Memory when content is added/updated in the project.',\n description:\n 'Select this workflow to automatically generate a translation using Translation Memory when the content in the editor meets the conditions set in “Start”.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'ApplyTmStep',\n },\n },\n },\n ApplyTmStep: {\n entry: [\n {\n type: 'applyTmAction',\n },\n ],\n on: {\n TmAppliedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n ApplyTmStep: DEFAULT_APPLY_TM_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ClearTranslationsStep', 'ApplyTmStep', 'EndStep'],\n gateLevel: 2, // Essentials+ for templates with MT/AI and TM\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_APPLY_TM_STEP_SETTINGS } from '../../workflow/steps/applyTmStep.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_TM_TRANSLATE_REVIEW_TASK_TEMPLATE: InternalTemplate<\n | 'TriggerStep'\n | 'ClearTranslationsStep'\n | 'ApplyTmStep'\n | 'TranslateTaskStep'\n | 'ReviewTaskStep'\n | 'EndStep'\n> = {\n id: 'clearTranslationsTmTranslateReviewTask',\n title: 'TM • Translation task • Review task',\n summary: 'Translate content using TM before creating translation and review tasks.',\n description:\n 'This template sets up a chained workflow that enables the automatic creation of a translation task, and subsequently a review task, after applying Translation Memory. This can be used by teams that would like to avoid translating repetitive content that has already been translated in the past.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'ApplyTmStep',\n },\n },\n },\n ApplyTmStep: {\n entry: [\n {\n type: 'applyTmAction',\n },\n ],\n on: {\n TmAppliedEvent: {\n target: 'TranslateTaskStep',\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'ReviewTaskStep',\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n ApplyTmStep: DEFAULT_APPLY_TM_STEP_SETTINGS,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: [\n 'TriggerStep',\n 'ClearTranslationsStep',\n 'ApplyTmStep',\n 'TranslateTaskStep',\n 'ReviewTaskStep',\n 'EndStep',\n ],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_APPLY_TM_STEP_SETTINGS } from '../../workflow/steps/applyTmStep.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_TM_TRANSLATE_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ClearTranslationsStep' | 'ApplyTmStep' | 'TranslateTaskStep' | 'EndStep'\n> = {\n id: 'clearTranslationsTmTranslateTask',\n title: 'TM • Translation task',\n summary: 'Translate content using TM before creating a translation task.',\n description:\n 'This template sets up a chained workflow that enables the automatic creation of a translation task after applying Translation Memory. This can be used by teams that would like to avoid translating repetitive content that has already been translated in the past.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'ApplyTmStep',\n },\n },\n },\n ApplyTmStep: {\n entry: [\n {\n type: 'applyTmAction',\n },\n ],\n on: {\n TmAppliedEvent: {\n target: 'TranslateTaskStep',\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n ApplyTmStep: DEFAULT_APPLY_TM_STEP_SETTINGS,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ClearTranslationsStep', 'ApplyTmStep', 'TranslateTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const REVIEW_TASK_TEMPLATE: InternalTemplate<'TriggerStep' | 'ReviewTaskStep' | 'EndStep'> =\n {\n id: 'reviewTask',\n title: 'Review task',\n summary: 'Generate a review task when content is added/updated in the project.',\n description:\n 'Select this workflow to automatically create a review task when the content in the editor meets the conditions set in \"Start\".',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ReviewTaskStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ReviewTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n }\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS_WITH_SOURCE,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const REVIEW_TRANSLATE_REVIEW_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ReviewTaskStep' | 'TranslateTaskStep' | 'SecondReviewTaskStep' | 'EndStep'\n> = {\n id: 'reviewTranslateReviewTask',\n title: 'Review task • Translation task • Review task',\n summary: 'Automatic creation of review tasks before and after a translation task.',\n description:\n 'This template sets up a chained workflow that enables the automatic creation of a review task both before and after translation. This can be used by teams that check the source copy before translation and conduct a review round after translation.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ReviewTaskStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'TranslateTaskStep',\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'SecondReviewTaskStep',\n },\n },\n },\n SecondReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS_WITH_SOURCE,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n SecondReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ReviewTaskStep', 'TranslateTaskStep', 'SecondReviewTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS_WITH_SOURCE,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const REVIEW_TRANSLATE_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ReviewTaskStep' | 'TranslateTaskStep' | 'EndStep'\n> = {\n id: 'reviewTranslateTask',\n title: 'Review task • Translation task',\n summary: 'Automatic creation of a review task before a translation task.',\n description:\n 'Use this template to set up a chained workflow where a translation task will be created as soon as the review task is completed.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ReviewTaskStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'TranslateTaskStep',\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS_WITH_SOURCE,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ReviewTaskStep', 'TranslateTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const TRANSLATE_AND_REVIEW_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'TranslateTaskStep' | 'ReviewTaskStep' | 'EndStep'\n> = {\n id: 'translateAndReviewTask',\n title: 'Translation task • Review task',\n summary: 'Automatic creation of translation task before a review task.',\n description:\n 'Use this template to set up a chained workflow where a review task will be created as soon as the translation task is completed.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'TranslateTaskStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'ReviewTaskStep',\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'TranslateTaskStep', 'ReviewTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const TRANSLATE_REVIEW_REVIEW_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'TranslateTaskStep' | 'ReviewTaskStep' | 'SecondReviewTaskStep' | 'EndStep'\n> = {\n id: 'translateReviewReviewTask',\n title: 'Translation task • Review task • Review task',\n summary: 'Automatic creation of a translation task followed by two review tasks.',\n description:\n 'This template to set up a chained workflow where it enables the automatic creation of two review tasks after translation. This could be used by teams that e.g. have one round of proofreading before stakeholders review it.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'TranslateTaskStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'ReviewTaskStep',\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'SecondReviewTaskStep',\n },\n },\n },\n SecondReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n SecondReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'TranslateTaskStep', 'ReviewTaskStep', 'SecondReviewTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const TRANSLATE_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'TranslateTaskStep' | 'EndStep'\n> = {\n id: 'translateTask',\n title: 'Translation task',\n summary: 'Generate a translation task when content is added/updated in the project.',\n description:\n 'Select this workflow to automatically create a translation task when the content in the editor meets the conditions set in “Start”.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'TranslateTaskStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n guard: { type: 'checkClosedTaskId' },\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'TranslateTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import { LayoutTranslator } from '../workflow/LayoutTranslator.js'\nimport { CLEAR_TRANSLATIONS_MT_AI_REVIEW_TASK_TEMPLATE } from './resources/clear-translations-mt-ai-review-task.template.js'\nimport { CLEAR_TRANSLATIONS_MT_AI_TASK_TEMPLATE } from './resources/clear-translations-mt-ai-task.template.js'\nimport { CLEAR_TRANSLATIONS_TM_MT_AI_REVIEW_TASK_TEMPLATE } from './resources/clear-translations-tm-mt-ai-review-task.template.js'\nimport { CLEAR_TRANSLATIONS_TM_MT_AI_TASK_TEMPLATE } from './resources/clear-translations-tm-mt-ai-task.template.js'\nimport { CLEAR_TRANSLATIONS_TM_TEMPLATE } from './resources/clear-translations-tm-templates.js'\nimport { CLEAR_TRANSLATIONS_TM_TRANSLATE_REVIEW_TASK_TEMPLATE } from './resources/clear-translations-tm-translate-review-task-template.js'\nimport { CLEAR_TRANSLATIONS_TM_TRANSLATE_TASK_TEMPLATE } from './resources/clear-translations-tm-translate-task-template.js'\nimport { REVIEW_TASK_TEMPLATE } from './resources/review-task.template.js'\nimport { REVIEW_TRANSLATE_REVIEW_TASK_TEMPLATE } from './resources/review-translate-review-task.template.js'\nimport { REVIEW_TRANSLATE_TASK_TEMPLATE } from './resources/review-translate-task.template.js'\nimport { TRANSLATE_AND_REVIEW_TASK_TEMPLATE } from './resources/translate-and-review-task.template.js'\nimport { TRANSLATE_REVIEW_REVIEW_TASK_TEMPLATE } from './resources/translate-review-review-task.template.js'\nimport { TRANSLATE_TASK_TEMPLATE } from './resources/translate-task.template.js'\nimport type { InternalTemplate, Template } from './types.js'\n\nexport const TEMPLATE_IDS = [\n 'clearTranslationsMtAiTask',\n 'translateTask',\n 'clearTranslationsTm',\n 'clearTranslationsMtAiReviewTask',\n 'clearTranslationsTmMtAiTask',\n 'clearTranslationsTmMtAiReviewTask',\n 'clearTranslationsTmTranslateTask',\n 'translateAndReviewTask',\n 'clearTranslationsTmTranslateReviewTask',\n 'translateReviewReviewTask',\n 'reviewTask',\n 'reviewTranslateTask',\n 'reviewTranslateReviewTask',\n] as const\n\nexport type TemplateId = (typeof TEMPLATE_IDS)[number]\n\nconst buildTemplate = <StateName extends string>(\n internalTemplate: InternalTemplate<StateName>,\n): Template<StateName> => {\n const layoutTranslator = new LayoutTranslator()\n const frontendLayout = layoutTranslator.translateTemplateToFrontendLayout(internalTemplate)\n\n return {\n ...internalTemplate,\n frontendLayout,\n }\n}\n\nexport const TEMPLATES: Record<TemplateId, Template<string>> = {\n clearTranslationsMtAiTask: buildTemplate(CLEAR_TRANSLATIONS_MT_AI_TASK_TEMPLATE),\n translateTask: buildTemplate(TRANSLATE_TASK_TEMPLATE),\n clearTranslationsTm: buildTemplate(CLEAR_TRANSLATIONS_TM_TEMPLATE),\n clearTranslationsMtAiReviewTask: buildTemplate(CLEAR_TRANSLATIONS_MT_AI_REVIEW_TASK_TEMPLATE),\n clearTranslationsTmMtAiTask: buildTemplate(CLEAR_TRANSLATIONS_TM_MT_AI_TASK_TEMPLATE),\n clearTranslationsTmMtAiReviewTask: buildTemplate(\n CLEAR_TRANSLATIONS_TM_MT_AI_REVIEW_TASK_TEMPLATE,\n ),\n clearTranslationsTmTranslateTask: buildTemplate(CLEAR_TRANSLATIONS_TM_TRANSLATE_TASK_TEMPLATE),\n translateAndReviewTask: buildTemplate(TRANSLATE_AND_REVIEW_TASK_TEMPLATE),\n clearTranslationsTmTranslateReviewTask: buildTemplate(\n CLEAR_TRANSLATIONS_TM_TRANSLATE_REVIEW_TASK_TEMPLATE,\n ),\n translateReviewReviewTask: buildTemplate(TRANSLATE_REVIEW_REVIEW_TASK_TEMPLATE),\n reviewTask: buildTemplate(REVIEW_TASK_TEMPLATE),\n reviewTranslateTask: buildTemplate(REVIEW_TRANSLATE_TASK_TEMPLATE),\n reviewTranslateReviewTask: buildTemplate(REVIEW_TRANSLATE_REVIEW_TASK_TEMPLATE),\n}\n"],"mappings":"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","names":["import_zod","_","template","import_maestro_common","import_zod","import_maestro_common","import_zod","import_maestro_common","import_zod","import_zod","import_zod","import_maestro_common","import_zod","import_maestro_common","import_zod","z"]}
|
|
1
|
+
{"version":3,"sources":["../index.ts","../src/apiContract/schemas.ts","../src/workflow/LayoutTranslator.ts","../src/workflow/steps/scheduledTriggerStep.ts","../src/workflow/steps/aiMtTranslationStep.ts","../src/workflow/messages.ts","../src/workflow/steps/applyTmStep.ts","../src/workflow/steps/translateTaskStep.ts","../src/workflow/steps/reviewTaskStep.ts","../src/workflow/steps/clearTranslationsStep.ts","../src/workflow/steps/endStep.ts","../src/workflow/steps.ts","../src/templates/resources/clear-translations-mt-ai-review-task.template.ts","../src/templates/resources/clear-translations-mt-ai-task.template.ts","../src/templates/resources/clear-translations-tm-mt-ai-review-task.template.ts","../src/templates/resources/clear-translations-tm-mt-ai-task.template.ts","../src/templates/resources/clear-translations-tm-templates.ts","../src/templates/resources/clear-translations-tm-translate-review-task-template.ts","../src/templates/resources/clear-translations-tm-translate-task-template.ts","../src/templates/resources/review-task.template.ts","../src/templates/resources/review-translate-review-task.template.ts","../src/templates/resources/review-translate-task.template.ts","../src/templates/resources/translate-and-review-task.template.ts","../src/templates/resources/translate-review-review-task.template.ts","../src/templates/resources/translate-task.template.ts","../src/templates/schemas.ts"],"sourcesContent":["export * from './src/apiContract/schemas.js'\nexport * from './src/workflow/steps.js'\nexport * from './src/workflow/messages.js'\nexport { TEMPLATES, TemplateId } from './src/templates/schemas.js'\nexport { Template, FrontendLayout, FrontendLayoutStep } from './src/templates/types.js'\nexport { LayoutTranslator } from './src/workflow/LayoutTranslator.js'\n","import { COMMON_ERROR_RESPONSE_SCHEMA } from '@lokalise/api-common'\nimport z from 'zod'\nimport { TEMPLATE_IDS } from '../templates/schemas.js'\nimport {\n AI_MT_TRANSLATION_STEP_FORM_SCHEMA,\n AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA,\n APPLY_TM_STEP_FORM_SCHEMA,\n APPLY_TM_STEP_SETTINGS_SCHEMA,\n CLEAR_TRANSLATIONS_STEP_FORM_SCHEMA,\n CLEAR_TRANSLATIONS_STEP_SETTINGS_SCHEMA,\n END_STEP_FORM_SCHEMA,\n END_STEP_SETTINGS_SCHEMA,\n REVIEW_TASK_STEP_FORM_SCHEMA,\n REVIEW_TASK_STEP_SETTINGS_SCHEMA,\n SCHEDULED_TRIGGER_STEP_FORM_SCHEMA,\n SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA,\n STEP_TYPES,\n TRANSLATE_TASK_STEP_FORM_SCHEMA,\n TRANSLATE_TASK_STEP_SETTINGS_SCHEMA,\n} from '../workflow/steps.js'\n\n// COMMON SCHEMAS\nconst MAX_STEP_ID_LENGTH = 100\nconst DATETIME = z.string().datetime()\nconst WORKFLOW_ID = z.string().max(36)\nconst TEMPLATE_ID = z.enum(TEMPLATE_IDS).describe('Template identifier')\nexport const GROUP_ID = z\n .string()\n .regex(/^expert_[^_\\s]+_[^_\\s]+$/, 'Invalid group ID format')\n .max(255)\n .describe(\n 'Group identifier composed by the tenant ID, followed by the owner ID, followed by the project ID. Underscores are used as separators (e.g. `expert_123_98616399660d3c2456abc5.66984240`)',\n )\n\nexport const METADATA_FIELDS = z\n .enum(['targetLanguageIds', 'error'])\n .describe('Metadata fields that can be included in the response')\n\nexport const TRIGGER_TYPE = z.enum(['Manual', 'Scheduled', 'Automated']).describe('Trigger type')\n\nexport const WORKFLOW_STATUS = z\n .enum(['Draft', 'Live', 'Archived', 'Paused', 'Canceled'])\n .describe('Workflow status')\n\nexport const API_ERROR = COMMON_ERROR_RESPONSE_SCHEMA\n\nexport const WORKFLOW_PARAMS = z\n .object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n })\n .describe('URL parameters for getting a workflow')\nexport type WorkflowParams = z.infer<typeof WORKFLOW_PARAMS>\n\nexport const UNSPECIFIED_WORKFLOW_PARAMS = z\n .object({\n groupId: GROUP_ID,\n })\n .describe('URL parameters without workflowId')\nexport type UnspecifiedWorkflowParams = z.infer<typeof UNSPECIFIED_WORKFLOW_PARAMS>\n\n// GET WORKFLOW\nexport const GET_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const WORKFLOW = z\n .object({\n id: WORKFLOW_ID,\n version: z.number(),\n status: WORKFLOW_STATUS,\n title: z.string(),\n triggerType: TRIGGER_TYPE,\n targetLanguageIds: z.array(z.string()).optional().nullable(),\n error: COMMON_ERROR_RESPONSE_SCHEMA.optional().nullable(),\n createdAt: DATETIME,\n updatedAt: z.optional(DATETIME).nullable(),\n publishedAt: z.optional(DATETIME).nullable(),\n triggeredAt: z.optional(DATETIME).nullable(),\n metadata: z.optional(z.record(z.unknown())).nullable(),\n })\n .describe('Workflow. Used in the list of workflows')\n\nexport const WORKFLOW_EXTENDED_STEP_SCHEMA = z.discriminatedUnion('type', [\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: SCHEDULED_TRIGGER_STEP_FORM_SCHEMA,\n triggerType: SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA.shape.triggerType,\n }),\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: TRANSLATE_TASK_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: TRANSLATE_TASK_STEP_FORM_SCHEMA,\n taskType: TRANSLATE_TASK_STEP_SETTINGS_SCHEMA.shape.taskType,\n }),\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: REVIEW_TASK_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: REVIEW_TASK_STEP_FORM_SCHEMA,\n taskType: REVIEW_TASK_STEP_SETTINGS_SCHEMA.shape.taskType,\n }),\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: APPLY_TM_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: APPLY_TM_STEP_FORM_SCHEMA,\n }),\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: CLEAR_TRANSLATIONS_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: CLEAR_TRANSLATIONS_STEP_FORM_SCHEMA,\n }),\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: AI_MT_TRANSLATION_STEP_FORM_SCHEMA,\n taskType: AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA.shape.taskType,\n }),\n z.object({\n id: z.string().max(MAX_STEP_ID_LENGTH),\n type: END_STEP_SETTINGS_SCHEMA.shape.stepType,\n values: END_STEP_FORM_SCHEMA,\n }),\n])\n\nexport const WORKFLOW_EXTENDED_SCHEMA = z\n .array(WORKFLOW_EXTENDED_STEP_SCHEMA)\n .describe('Workflow FrontendLayout')\n\nexport const WORKFLOW_EXTENDED = z\n .object({\n id: WORKFLOW_ID,\n groupId: GROUP_ID,\n version: z.number(),\n status: WORKFLOW_STATUS,\n title: z.string(),\n schema: WORKFLOW_EXTENDED_SCHEMA,\n error: COMMON_ERROR_RESPONSE_SCHEMA.optional().nullable(),\n createdAt: DATETIME,\n updatedAt: z.optional(DATETIME),\n publishedAt: z.optional(DATETIME),\n triggeredAt: z.optional(DATETIME).nullable(),\n })\n .describe('Workflow. Response for getting a workflow or creating a new one')\n\nexport const WORKFLOW_EXTENDED_SCHEMA_SIMPLIFIED = z\n .array(\n z.object({\n id: z.string().max(100),\n type: z.enum(STEP_TYPES),\n values: z.record(z.string(), z.unknown()),\n triggerType: z.optional(TRIGGER_TYPE),\n taskType: z.optional(z.enum(['translation', 'review'])),\n }),\n )\n .describe(\n 'Simplified schema for the response to be able to return default values to the frontend',\n )\n\nexport const WORKFLOW_EXTENDED_SIMPLIFIED = z\n .object({\n id: WORKFLOW_ID,\n groupId: GROUP_ID,\n version: z.number(),\n status: WORKFLOW_STATUS,\n title: z.string(),\n schema: WORKFLOW_EXTENDED_SCHEMA_SIMPLIFIED,\n error: COMMON_ERROR_RESPONSE_SCHEMA.optional().nullable(),\n createdAt: DATETIME,\n updatedAt: z.optional(DATETIME),\n publishedAt: z.optional(DATETIME),\n triggeredAt: z.optional(DATETIME).nullable(),\n })\n .describe(\n 'Simplified schema for the response to be able to return default values to the frontend',\n )\n\nexport const GET_ENTITLEMENTS_PARAMS = z.object({\n ownerId: z.string().describe('Owner ID'),\n})\n\nexport const GET_ENTITLEMENTS_RESPONSE = z.object({\n workflowsNumberLimit: z.number().describe('Maximum number of workflows allowed'),\n workflowsTemplateGateLevel: z.number().describe('Template gate level for workflows'),\n isWorkflowsWeeklyTriggerAvailable: z\n .boolean()\n .describe('Weekly trigger feature setting for workflows'),\n})\n\nexport type Workflow = z.infer<typeof WORKFLOW>\nexport type WorkflowExtended = z.infer<typeof WORKFLOW_EXTENDED>\nexport type WorkflowExtendedSchema = z.infer<typeof WORKFLOW_EXTENDED_SCHEMA>\n\nexport const GET_WORKFLOW_RESPONSE = z.object({\n data: WORKFLOW_EXTENDED,\n})\n\nexport const GET_WORKFLOW_SIMPLIFIED_RESPONSE = z.object({\n data: WORKFLOW_EXTENDED_SIMPLIFIED,\n})\n\nexport type GetWorkflowParams = z.infer<typeof GET_WORKFLOW_PARAMS>\nexport type GetWorkflowResponse = z.infer<typeof GET_WORKFLOW_RESPONSE>\n\n// LIST WORKFLOWS\nexport const GET_WORKFLOW_LIST_PARAMS = UNSPECIFIED_WORKFLOW_PARAMS\n\nexport const GET_WORKFLOW_LIST_RESPONSE = z.object({\n data: z.array(WORKFLOW),\n})\n\nexport type GetWorkflowListParams = z.infer<typeof GET_WORKFLOW_LIST_PARAMS>\nexport type GetWorkflowListResponse = z.infer<typeof GET_WORKFLOW_LIST_RESPONSE>\n\n// PAUSE WORKFLOW\nexport const PATCH_PAUSE_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const PATCH_PAUSE_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully paused workflow',\n})\n\nexport type PatchPauseWorkflowParams = z.infer<typeof PATCH_PAUSE_WORKFLOW_PARAMS>\nexport type PatchPauseWorkflowResponse = z.infer<typeof PATCH_PAUSE_WORKFLOW_RESPONSE>\n\n// RESUME WORKFLOW\nexport const PATCH_RESUME_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const PATCH_RESUME_WORKFLOW_BODY = z.object({\n runNow: z.optional(z.boolean()).default(false),\n})\n\nexport const PATCH_RESUME_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully resumed workflow',\n})\n\nexport type PatchResumeWorkflowParams = z.infer<typeof PATCH_RESUME_WORKFLOW_PARAMS>\nexport type PatchResumeWorkflowBody = z.infer<typeof PATCH_RESUME_WORKFLOW_BODY>\nexport type PatchResumeWorkflowResponse = z.infer<typeof PATCH_RESUME_WORKFLOW_RESPONSE>\n\n// DUPLICATE WORKFLOW\nexport const POST_DUPLICATE_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const POST_DUPLICATE_WORKFLOW_RESPONSE = GET_WORKFLOW_RESPONSE\n\n// DELETE WORKFLOW\nexport const DELETE_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const DELETE_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully deleted workflow',\n})\n\nexport type DeleteWorkflowParams = z.infer<typeof DELETE_WORKFLOW_PARAMS>\nexport type DeleteWorkflowResponse = z.infer<typeof DELETE_WORKFLOW_RESPONSE>\n\n// CREATE WORKFLOW\nexport const POST_WORKFLOW_PARAMS = UNSPECIFIED_WORKFLOW_PARAMS\n\nexport const POST_WORKFLOW_BODY = z\n .nullable(\n z.object({\n templateId: TEMPLATE_ID.optional(),\n }),\n )\n .describe('Parameters for creating a workflow')\n\nexport const POST_WORKFLOW_RESPONSE = z.object({\n data: WORKFLOW_EXTENDED,\n})\n\nexport const POST_WORKFLOW_SIMPLIFIED_RESPONSE = z.object({\n data: WORKFLOW_EXTENDED_SIMPLIFIED,\n})\n\nexport type PostWorkflowParams = z.infer<typeof POST_WORKFLOW_PARAMS>\nexport type PostWorkflowBody = z.infer<typeof POST_WORKFLOW_BODY>\nexport type PostWorkflowResponse = z.infer<typeof POST_WORKFLOW_RESPONSE>\n\n// UPDATE DRAFT\nexport const PUT_WORKFLOW_DRAFT_PARAMS = WORKFLOW_PARAMS\n\nexport const PUT_WORKFLOW_DRAFT_BODY = z\n .object({\n schema: WORKFLOW_EXTENDED_SCHEMA_SIMPLIFIED,\n })\n .describe('Schema with user changes')\n\nexport const PUT_WORKFLOW_DRAFT_RESPONSE = z.null({\n description: 'Successfully updated workflow draft',\n})\n\nexport type PutWorkflowDraftParams = z.infer<typeof PUT_WORKFLOW_DRAFT_PARAMS>\nexport type PutWorkflowDraftBody = z.infer<typeof PUT_WORKFLOW_DRAFT_BODY>\nexport type PutWorkflowDraftResponse = z.infer<typeof PUT_WORKFLOW_DRAFT_RESPONSE>\n\n// PATCH WORKFLOW\nexport const PATCH_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const PATCH_WORKFLOW_BODY = z\n .object({\n title: z.string().min(1).max(256),\n })\n .describe('Workflow title')\n\nexport const PATCH_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully updated workflow',\n})\n\nexport type PatchWorkflowParams = z.infer<typeof PATCH_WORKFLOW_PARAMS>\nexport type PatchWorkflowBody = z.infer<typeof PATCH_WORKFLOW_BODY>\nexport type PatchWorkflowResponse = z.infer<typeof PATCH_WORKFLOW_RESPONSE>\n\n// ACTIVATE WORKFLOW\nexport const POST_ACTIVATE_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const POST_ACTIVATE_WORKFLOW_BODY = z\n .object({\n runNow: z.optional(z.boolean()),\n schema: WORKFLOW_EXTENDED_SCHEMA,\n })\n .describe(\n 'Schema with user changes. If runNow is true, the workflow will be triggered immediately.',\n )\n\nexport const POST_ACTIVATE_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully activated workflow',\n})\n\nexport type PostActivateWorkflowParams = z.infer<typeof POST_ACTIVATE_WORKFLOW_PARAMS>\nexport type PostActivateWorkflowBody = z.infer<typeof POST_ACTIVATE_WORKFLOW_BODY>\nexport type PostActivateWorkflowResponse = z.infer<typeof POST_ACTIVATE_WORKFLOW_RESPONSE>\n\n// PUT LIVE WORKFLOW\nexport const PUT_LIVE_WORKFLOW_PARAMS = WORKFLOW_PARAMS\n\nexport const PUT_LIVE_WORKFLOW_BODY = z\n .object({\n runNow: z.optional(z.boolean()),\n schema: WORKFLOW_EXTENDED_SCHEMA,\n })\n .describe(\n 'Schema with user changes. If runNow is true, the workflow will be triggered immediately.',\n )\n\nexport const PUT_LIVE_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully updated workflow',\n})\n\nexport type PutLiveWorkflowParams = z.infer<typeof PUT_LIVE_WORKFLOW_PARAMS>\nexport type PutLiveWorkflowBody = z.infer<typeof PUT_LIVE_WORKFLOW_BODY>\nexport type PutLiveWorkflowResponse = z.infer<typeof PUT_LIVE_WORKFLOW_RESPONSE>\n\nexport const GET_LIVE_WORKFLOWS_BY_TENANT_ID_PARAMS = z\n .object({\n ownerId: z.string(),\n })\n .describe('URL parameters for getting live workflows by tenant ID')\n\nexport type GetLiveWorkflowsByTenantIdParams = z.infer<\n typeof GET_LIVE_WORKFLOWS_BY_TENANT_ID_PARAMS\n>\n\nexport const GET_LIVE_WORKFLOWS_BY_TENANT_ID_RESPONSE = GET_WORKFLOW_LIST_RESPONSE\n\nexport type GetLiveWorkflowsByTenantIdResponse = z.infer<typeof GET_WORKFLOW_LIST_RESPONSE>\n\nexport type GetWorkflowsEntitlementsParams = z.infer<typeof GET_ENTITLEMENTS_PARAMS>\n\nexport type GetWorkflowsEntitlementsResponse = z.infer<typeof GET_ENTITLEMENTS_RESPONSE>\n\n// START WORKFLOW RUN\nconst WORKFLOW_RUN_ID = z.string().max(36)\n\nexport const WORKFLOW_RUN_STATUS = z\n .enum(['Started', 'Completed', 'Failed'])\n .describe('Workflow run status')\n\nexport const WORKFLOW_RUN_TYPE = z.enum(['Manual', 'Scheduled', 'Automated']).describe('Run type')\nexport type WorkflowRunType = z.infer<typeof WORKFLOW_RUN_TYPE>\n\nexport const WORKFLOW_RUN = z\n .object({\n id: WORKFLOW_RUN_ID,\n groupId: GROUP_ID,\n status: WORKFLOW_RUN_STATUS,\n createdAt: DATETIME,\n updatedAt: z.optional(DATETIME),\n runType: WORKFLOW_RUN_TYPE,\n workflowId: WORKFLOW_ID,\n version: z.number(),\n })\n .describe('Response for getting a workflow run')\n\nexport const POST_START_WORKFLOW_RUN_RESPONSE = z.object({\n data: WORKFLOW_RUN,\n})\n\nexport type WorkflowRunDto = z.infer<typeof WORKFLOW_RUN>\n\nexport type PostStartWorkflowRunResponse = z.infer<typeof POST_START_WORKFLOW_RUN_RESPONSE>\n","import type {\n WorkflowLayout,\n WorkflowLayoutStepSettingsList,\n WorkflowLayoutStepTriggerEvent,\n WorkflowMetadata,\n} from '@lokalise/maestro-common'\nimport { areDeepEqual } from '@lokalise/universal-ts-utils/node'\nimport type { LayoutTranslatorInterface } from '../../../../src/modules/workflows/interfaces/LayoutTranslatorInterface.js'\nimport { TEMPLATES } from '../templates/schemas.js'\nimport type {\n FrontendLayout,\n InternalTemplate,\n StrictWorkflowLayout,\n StrictWorkflowLayoutSettings,\n StrictWorkflowLayoutStepSettings,\n Template,\n} from '../templates/types.js'\nimport type { ScheduledTriggerStepSettings, StepType } from './steps.js'\n\ntype FrontendStep = {\n id: string\n type: StepType\n values: Record<string, unknown>\n triggerType?: string\n taskType?: string\n}\n\nexport class LayoutTranslator implements LayoutTranslatorInterface {\n public translateTemplateToFrontendLayout<StateName extends string>(\n template: InternalTemplate<StateName>,\n ): FrontendLayout<StateName> {\n return this.buildFrontendLayout<StateName>(template.settings, template.sort)\n }\n\n public translateFrontendLayoutToTemplate<StateName extends string>(\n frontendLayout: FrontendLayout<StateName>,\n ): Pick<InternalTemplate<StateName>, 'layout' | 'settings'> | undefined {\n const template = this.findTemplate(frontendLayout)\n if (!template) {\n return undefined\n }\n\n const layoutSettings = this.buildLayoutSettings<StateName>(frontendLayout)\n\n return {\n layout: template.layout as StrictWorkflowLayout<StateName>,\n settings: layoutSettings,\n }\n }\n\n public buildFrontendLayout<StateName extends string>(\n settings: StrictWorkflowLayoutSettings<StateName>,\n sort: StateName[] = [],\n ): FrontendLayout<StateName> {\n return Object.keys(settings)\n .sort((a, b) => sort.indexOf(a as StateName) - sort.indexOf(b as StateName))\n .map((id) => {\n const { stepType, triggerType, taskType, ...values } = settings[id]\n\n const step = {\n id: id as StateName,\n type: stepType as StepType,\n values,\n triggerType,\n taskType,\n }\n\n return Object.entries(step)\n .filter(([_, value]) => value !== undefined)\n .reduce(\n (acc, [key, value]) => {\n // @ts-ignore\n acc[key] = value\n return acc\n },\n {} as FrontendLayout<StateName>[0],\n )\n })\n }\n\n // Based on the linear layout, return the order of steps\n public getStepSortFromLayout(layout: WorkflowLayout): string[] {\n const sort = [layout.initial]\n let currentState = layout.states[layout.initial]\n\n while (currentState.on) {\n const allEvents: WorkflowLayoutStepTriggerEvent[] = Object.values(currentState.on)\n const event = allEvents.find((evt) => evt.target !== undefined)\n\n if (event === undefined || event.target === undefined) {\n currentState = {\n ...currentState,\n on: undefined,\n }\n continue\n }\n\n sort.push(event.target)\n currentState = layout.states[event.target]\n }\n\n return sort\n }\n\n public buildWorkflowMetadata({\n settings,\n }: Pick<InternalTemplate<string>, 'settings'>): WorkflowMetadata {\n const step = settings.TriggerStep as ScheduledTriggerStepSettings\n\n return {\n triggerType: step.triggerType,\n targetLanguageIds: step.targetLanguageIds.map((id) => id.toString()),\n }\n }\n\n public getTriggerSchedulerExpression(\n settings: WorkflowLayoutStepSettingsList,\n ): string | undefined {\n const step = settings.TriggerStep as ScheduledTriggerStepSettings\n\n if (!step) {\n return undefined\n }\n\n if (step.triggerType === 'Scheduled') {\n return step.scheduleFrequencyExpression ?? undefined\n }\n\n return undefined\n }\n\n public getTriggerSchedulerStartDate(\n settings: WorkflowLayoutStepSettingsList,\n ): string | undefined {\n const step = settings.TriggerStep as ScheduledTriggerStepSettings\n\n if (!step) {\n return undefined\n }\n\n if (step.triggerType === 'Scheduled') {\n return step.scheduleStartingDate\n }\n\n return undefined\n }\n\n public getTemplateGateLevel<StateName extends string>(\n frontendLayout: FrontendLayout<StateName>,\n ): number | undefined {\n const template = this.findTemplate(frontendLayout)\n if (!template) {\n return undefined\n }\n\n return template.gateLevel\n }\n\n buildLayoutSettings<StateName extends string>(\n frontendLayout: FrontendLayout<StateName>,\n ): StrictWorkflowLayoutSettings<StateName> {\n return frontendLayout.reduce(\n (acc, frontendStep: FrontendStep) => {\n const step: StrictWorkflowLayoutStepSettings = {\n ...frontendStep.values,\n stepType: frontendStep.type,\n triggerType: frontendStep.type === 'trigger_step' ? frontendStep.triggerType : undefined,\n taskType:\n frontendStep.type === 'translate_task_step' ||\n frontendStep.type === 'review_task_step' ||\n frontendStep.type === 'ai_mt_translation_step'\n ? frontendStep.taskType\n : undefined,\n }\n acc[frontendStep.id as StateName] = Object.fromEntries(\n Object.entries(step).filter(([_, value]) => value !== undefined),\n ) as StrictWorkflowLayoutStepSettings\n return acc\n },\n {} as Record<StateName, StrictWorkflowLayoutStepSettings>,\n )\n }\n\n findTemplate<StateName extends string>(\n frontendLayout: FrontendLayout<StateName>,\n ): Template<StateName> | undefined {\n const frontendLayoutStepIds = frontendLayout.map((step) => step.id)\n\n const result = Object.entries(TEMPLATES).find(([_, template]) => {\n const templateStepIds = template.frontendLayout.map((step) => step.id)\n return areDeepEqual(frontendLayoutStepIds, templateStepIds)\n })\n\n if (!result) {\n return undefined\n }\n\n const [_, template] = result\n\n return template as Template<StateName>\n }\n}\n","import {\n CRON_EXPRESSION_REGEX,\n WORKFLOW_LAYOUT_STEP_SETTINGS,\n type WorkflowLayoutStepSettings,\n} from '@lokalise/maestro-common'\nimport { z } from 'zod'\n\nexport const SCHEDULED_TRIGGER_STEP_FORM_SCHEMA = z.object({\n stepTitle: z.string().trim().min(1),\n scheduleFrequencyExpression: z.string().regex(CRON_EXPRESSION_REGEX),\n scheduleStartingDate: z.string().date(),\n monitoredLanguageId: z.number().min(1).int(),\n targetLanguageIds: z.array(z.number().min(1).int()).min(1),\n monitoredKeyType: z.enum(['new', 'updated', 'both']),\n projectFilterId: z.string().optional().nullable(),\n})\n\nexport type ScheduledTriggerStepForm = z.infer<typeof SCHEDULED_TRIGGER_STEP_FORM_SCHEMA>\n\nexport const SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.merge(\n SCHEDULED_TRIGGER_STEP_FORM_SCHEMA,\n).extend({\n stepType: z.literal('trigger_step'),\n triggerType: z.literal('Scheduled'),\n})\n\nexport type ScheduledTriggerStepSettings = z.infer<typeof SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS: WorkflowLayoutStepSettings &\n Partial<ScheduledTriggerStepSettings> = {\n stepType: 'trigger_step',\n triggerType: 'Scheduled',\n stepTitle: 'Trigger and scope',\n scheduleFrequencyExpression: '00 09 * * 0,1,2,3,4,5,6',\n scheduleStartingDate: undefined,\n monitoredLanguageId: undefined,\n targetLanguageIds: [],\n monitoredKeyType: 'new',\n projectFilterId: null,\n}\n","import {\n WORKFLOW_LAYOUT_STEP_SETTINGS,\n type WorkflowLayoutStepSettings,\n} from '@lokalise/maestro-common'\nimport { z } from 'zod'\nimport { TRANSLATION_ENGINE } from '../messages.js'\n\nexport const AI_MT_TRANSLATION_STEP_FORM_SCHEMA = z\n .object({\n stepTitle: z.string().min(1),\n translationEngine: TRANSLATION_ENGINE,\n taskTitle: z.string().optional(),\n aiInstructions: z.string().optional(),\n tagKeysAfterClose: z.boolean(),\n tagsToAddAfterClose: z.array(z.string()).optional(),\n customTranslationStatusIds: z.array(z.number()).optional(),\n hasCustomTranslationStatuses: z.boolean(),\n })\n .superRefine(({ tagKeysAfterClose, tagsToAddAfterClose }, context) => {\n if (tagKeysAfterClose && tagsToAddAfterClose?.length === 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'At least one tag must be added if \"Tag keys after task is closed\" is checked',\n path: ['tagsToAddAfterClose'],\n })\n }\n if (!tagKeysAfterClose && tagsToAddAfterClose && tagsToAddAfterClose.length > 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'One or more tags are set but \"Tag keys after task is closed\" is not checked',\n path: ['tagKeysAfterClose'],\n })\n }\n })\n .superRefine(({ hasCustomTranslationStatuses, customTranslationStatusIds }, context) => {\n if (hasCustomTranslationStatuses && customTranslationStatusIds?.length === 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'You must select custom statuses if \"Allow assignees to set custom statuses\" is checked',\n path: ['customTranslationStatusIds'],\n })\n }\n if (\n !hasCustomTranslationStatuses &&\n customTranslationStatusIds &&\n customTranslationStatusIds.length > 0\n ) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'Custom statuses are set but \"Allow assignees to set custom statuses\" is not checked',\n path: ['hasCustomTranslationStatuses'],\n })\n }\n })\n\nexport type AiMtTranslationStepForm = z.infer<typeof AI_MT_TRANSLATION_STEP_FORM_SCHEMA>\n\nexport const AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.merge(\n z.object(AI_MT_TRANSLATION_STEP_FORM_SCHEMA._def.schema._def.schema.shape),\n).extend({\n stepType: z.literal('ai_mt_translation_step'),\n taskType: z.literal('translation'),\n stepTitle: z.string().min(1),\n translationEngine: TRANSLATION_ENGINE,\n taskTitle: z.string().optional(),\n aiInstructions: z.string().optional(),\n tagKeysAfterClose: z.boolean(),\n tagsToAddAfterClose: z.array(z.string()).optional(),\n customTranslationStatusIds: z.array(z.number()).optional(),\n hasCustomTranslationStatuses: z.boolean(),\n})\n\nexport type AiMtTranslationStepSettings = z.infer<typeof AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS: WorkflowLayoutStepSettings &\n Partial<AiMtTranslationStepSettings> = {\n stepType: 'ai_mt_translation_step',\n stepTitle: 'AI/MT Translation Task',\n taskType: 'translation',\n aiInstructions: undefined,\n translationEngine: undefined,\n taskTitle: undefined,\n tagKeysAfterClose: false,\n tagsToAddAfterClose: [],\n customTranslationStatusIds: [],\n hasCustomTranslationStatuses: false,\n}\n","import { WORKFLOW_LAYOUT_STEP_SETTINGS } from '@lokalise/maestro-common'\nimport { z } from 'zod'\nimport { APPLY_TM_STEP_SETTINGS_SCHEMA } from './steps/applyTmStep.js'\n\nconst TASK_LANGUAGE_ASSIGNEES = z.object({\n languageId: z.number(),\n userIds: z.optional(z.array(z.number())),\n userGroupIds: z.optional(z.array(z.number())),\n isSource: z.boolean().default(false),\n})\n\nexport const TRANSLATION_ENGINE = z.enum(['ai', 'deepl', 'google'], {\n errorMap: () => ({ message: 'Please choose a translation engine' }),\n})\n\nexport const CREATE_TASK_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.extend({\n stepType: z.enum(['translate_task_step', 'review_task_step', 'ai_mt_translation_step']),\n stepTitle: z.string().trim().min(1),\n taskType: z.enum(['translation', 'review']),\n taskTitle: z.optional(z.string()).describe('If empty, the workflow title will be used'),\n taskDescription: z\n .optional(z.string())\n .describe('Add a description such as including links to useful resources to assignees.'),\n dueDate: z.optional(z.number().int().min(1).max(365)),\n languageAssignees: z.array(TASK_LANGUAGE_ASSIGNEES).min(1),\n autoCloseItems: z.optional(z.boolean()),\n autoCloseLanguages: z.boolean(),\n autoCloseTask: z.boolean(),\n lockTranslations: z.boolean(),\n hasCustomTranslationStatuses: z.boolean().default(false),\n customTranslationStatusIds: z.array(z.number()).optional(),\n tagKeysAfterClose: z.boolean().default(false),\n tagsToAddAfterClose: z.array(z.string().max(128)).optional(),\n translationEngine: z.optional(TRANSLATION_ENGINE),\n aiInstructions: z.string().optional(),\n reviewLanguageType: z.enum(['source', 'target']).optional(),\n})\nexport type CreateTaskStepSettings = z.infer<typeof CREATE_TASK_STEP_SETTINGS_SCHEMA>\n\nexport const CREATE_TASK_MESSAGE_CONTEXT = CREATE_TASK_STEP_SETTINGS_SCHEMA.omit({\n stepType: true,\n stepTitle: true,\n dueDate: true,\n tagKeysAfterClose: true,\n}).extend({\n teamId: z.number(),\n projectId: z.string(),\n dueDate: z.optional(z.date()),\n sourceLanguageId: z.number(),\n keyIds: z.record(z.string(), z.array(z.number())),\n})\nexport type CreateTaskMessageContext = z.infer<typeof CREATE_TASK_MESSAGE_CONTEXT>\n\nexport const APPLY_TM_MESSAGE_CONTEXT = APPLY_TM_STEP_SETTINGS_SCHEMA.omit({\n stepType: true,\n stepTitle: true,\n}).extend({\n teamId: z.string(),\n projectId: z.string(),\n keysByLanguages: z.record(z.string(), z.array(z.number())),\n})\n\nexport type ApplyTmMessageContext = z.infer<typeof APPLY_TM_MESSAGE_CONTEXT>\n","import {\n WORKFLOW_LAYOUT_STEP_SETTINGS,\n type WorkflowLayoutStepSettings,\n} from '@lokalise/maestro-common'\nimport { z } from 'zod'\n\nexport const APPLY_TM_STEP_FORM_SCHEMA = z.object({\n stepTitle: z.string().trim().min(1),\n threshold: z.number().int().min(1).max(100).default(100),\n})\n\nexport type ApplyTmStepForm = z.infer<typeof APPLY_TM_STEP_FORM_SCHEMA>\n\nexport const APPLY_TM_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.merge(\n APPLY_TM_STEP_FORM_SCHEMA,\n).extend({\n stepType: z.literal('apply_tm_step'),\n})\n\nexport type ApplyTmStepSettings = z.infer<typeof APPLY_TM_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_APPLY_TM_STEP_SETTINGS: WorkflowLayoutStepSettings &\n Partial<ApplyTmStepSettings> = {\n stepType: 'apply_tm_step',\n stepTitle: 'Apply Translation Memory',\n threshold: 100,\n}\n","import type { WorkflowLayoutStepSettings } from '@lokalise/maestro-common'\nimport { type RefinementCtx, z } from 'zod'\nimport { CREATE_TASK_STEP_SETTINGS_SCHEMA } from '../messages.js'\n\nexport const TRANSLATE_TASK_STEP_FORM_SCHEMA = CREATE_TASK_STEP_SETTINGS_SCHEMA.omit({\n stepType: true,\n taskType: true,\n})\n .superRefine(({ tagKeysAfterClose, tagsToAddAfterClose }, context: RefinementCtx) => {\n if (tagKeysAfterClose && tagsToAddAfterClose?.length === 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'At least one tag must be added if \"Tag keys after task is closed\" is checked',\n path: ['tagsToAddAfterClose'],\n })\n }\n if (!tagKeysAfterClose && tagsToAddAfterClose && tagsToAddAfterClose.length > 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'One or more tags are set but \"Tag keys after task is closed\" is not checked',\n path: ['tagKeysAfterClose'],\n })\n }\n })\n .superRefine(({ hasCustomTranslationStatuses, customTranslationStatusIds }, context) => {\n if (hasCustomTranslationStatuses && customTranslationStatusIds?.length === 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'You must select custom statuses if \"Allow assignees to set custom statuses\" is checked',\n path: ['customTranslationStatusIds'],\n })\n }\n if (\n !hasCustomTranslationStatuses &&\n customTranslationStatusIds &&\n customTranslationStatusIds.length > 0\n ) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'Custom statuses are set but \"Allow assignees to set custom statuses\" is not checked',\n path: ['hasCustomTranslationStatuses'],\n })\n }\n })\n .superRefine(({ languageAssignees }, context) => {\n const targetLanguageAssignees = languageAssignees.filter(({ isSource }) => !isSource)\n\n const isValid =\n targetLanguageAssignees.length > 0 &&\n targetLanguageAssignees.every(\n ({ userIds, userGroupIds }) =>\n (userIds?.length ?? 0) > 0 || (userGroupIds?.length ?? 0) > 0,\n )\n\n if (!isValid) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Either users or groups should be specified.',\n path: ['languageAssignees'],\n })\n }\n })\n\nexport type TranslateTaskStepForm = z.infer<typeof TRANSLATE_TASK_STEP_FORM_SCHEMA>\n\nexport const TRANSLATE_TASK_STEP_SETTINGS_SCHEMA = CREATE_TASK_STEP_SETTINGS_SCHEMA.extend({\n stepType: z.literal('translate_task_step'),\n taskType: z.literal('translation'),\n autoCloseItems: z.boolean(),\n})\n\nexport type TranslateTaskStepSettings = z.infer<typeof TRANSLATE_TASK_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_TRANSLATE_TASK_STEP_SETTINGS: WorkflowLayoutStepSettings &\n Partial<TranslateTaskStepSettings> = {\n stepType: 'translate_task_step',\n stepTitle: 'Translation task for contributors',\n taskType: 'translation',\n taskTitle: undefined,\n taskDescription: undefined,\n dueDate: undefined,\n languageAssignees: [],\n autoCloseItems: false,\n autoCloseLanguages: false,\n autoCloseTask: true,\n lockTranslations: false,\n hasCustomTranslationStatuses: false,\n customTranslationStatusIds: [],\n tagKeysAfterClose: false,\n tagsToAddAfterClose: [],\n}\n","import type { WorkflowLayoutStepSettings } from '@lokalise/maestro-common'\nimport { type RefinementCtx, z } from 'zod'\nimport { CREATE_TASK_STEP_SETTINGS_SCHEMA } from '../messages.js'\n\nexport const REVIEW_TASK_STEP_FORM_SCHEMA = CREATE_TASK_STEP_SETTINGS_SCHEMA.omit({\n stepType: true,\n taskType: true,\n})\n .superRefine(({ tagKeysAfterClose, tagsToAddAfterClose }, context: RefinementCtx) => {\n if (tagKeysAfterClose && tagsToAddAfterClose?.length === 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'At least one tag must be added if \"Tag keys after task is closed\" is checked',\n path: ['tagsToAddAfterClose'],\n })\n }\n if (!tagKeysAfterClose && tagsToAddAfterClose && tagsToAddAfterClose.length > 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'One or more tags are set but \"Tag keys after task is closed\" is not checked',\n path: ['tagKeysAfterClose'],\n })\n }\n })\n .superRefine(({ hasCustomTranslationStatuses, customTranslationStatusIds }, context) => {\n if (hasCustomTranslationStatuses && customTranslationStatusIds?.length === 0) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'You must select custom statuses if \"Allow assignees to set custom statuses\" is checked',\n path: ['customTranslationStatusIds'],\n })\n }\n if (\n !hasCustomTranslationStatuses &&\n customTranslationStatusIds &&\n customTranslationStatusIds.length > 0\n ) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'Custom statuses are set but \"Allow assignees to set custom statuses\" is not checked',\n path: ['hasCustomTranslationStatuses'],\n })\n }\n })\n .superRefine(({ languageAssignees, reviewLanguageType }, context: RefinementCtx) => {\n const sourceFilter = reviewLanguageType === 'source'\n const filteredLanguageAssignees = languageAssignees.filter(\n ({ isSource }) => isSource === sourceFilter,\n )\n const isValid =\n filteredLanguageAssignees.length > 0 &&\n filteredLanguageAssignees.every(\n ({ userIds, userGroupIds }) =>\n (userIds?.length ?? 0) > 0 || (userGroupIds?.length ?? 0) > 0,\n )\n\n if (!isValid) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Either users or groups should be specified for review language type ${reviewLanguageType}.`,\n path: ['languageAssignees'],\n })\n }\n })\n\nexport type ReviewTaskStepForm = z.infer<typeof REVIEW_TASK_STEP_FORM_SCHEMA>\n\nexport const REVIEW_TASK_STEP_SETTINGS_SCHEMA = CREATE_TASK_STEP_SETTINGS_SCHEMA.omit({\n autoCloseItems: true,\n}).extend({\n stepType: z.literal('review_task_step'),\n taskType: z.literal('review'),\n})\n\nexport type ReviewTaskStepSettings = z.infer<typeof REVIEW_TASK_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_REVIEW_TASK_STEP_SETTINGS: WorkflowLayoutStepSettings &\n Partial<ReviewTaskStepSettings> = {\n stepType: 'review_task_step',\n stepTitle: 'Review task for contributors',\n taskType: 'review',\n taskTitle: undefined,\n taskDescription: undefined,\n dueDate: undefined,\n languageAssignees: [],\n autoCloseLanguages: false,\n autoCloseTask: true,\n lockTranslations: false,\n hasCustomTranslationStatuses: false,\n customTranslationStatusIds: [],\n tagKeysAfterClose: false,\n tagsToAddAfterClose: [],\n reviewLanguageType: 'target',\n}\n\nexport const DEFAULT_REVIEW_TASK_STEP_SETTINGS_WITH_SOURCE = {\n ...DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n reviewLanguageType: 'source',\n}\n","import {\n WORKFLOW_LAYOUT_STEP_SETTINGS,\n type WorkflowLayoutStepSettings,\n} from '@lokalise/maestro-common'\nimport { z } from 'zod'\n\nexport const CLEAR_TRANSLATIONS_STEP_FORM_SCHEMA = z.object({})\nexport type ClearTranslationsStepForm = z.infer<typeof CLEAR_TRANSLATIONS_STEP_FORM_SCHEMA>\n\nexport const CLEAR_TRANSLATIONS_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.merge(\n CLEAR_TRANSLATIONS_STEP_FORM_SCHEMA,\n).extend({\n stepType: z.literal('clear_translations_step'),\n})\nexport type ClearTranslationsStepSettings = z.infer<typeof CLEAR_TRANSLATIONS_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS: WorkflowLayoutStepSettings &\n ClearTranslationsStepSettings = {\n stepType: 'clear_translations_step',\n}\n","import {\n WORKFLOW_LAYOUT_STEP_SETTINGS,\n type WorkflowLayoutStepSettings,\n} from '@lokalise/maestro-common'\nimport { z } from 'zod'\n\nexport const END_STEP_FORM_SCHEMA = z.object({})\nexport type EndStepForm = z.infer<typeof END_STEP_FORM_SCHEMA>\n\nexport const END_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.merge(\n END_STEP_FORM_SCHEMA,\n).extend({\n stepType: z.literal('end_step'),\n})\nexport type EndStepSettings = z.infer<typeof END_STEP_SETTINGS_SCHEMA>\n\nexport const DEFAULT_END_STEP_SETTINGS: WorkflowLayoutStepSettings & EndStepSettings = {\n stepType: 'end_step',\n}\n","export {\n SCHEDULED_TRIGGER_STEP_FORM_SCHEMA,\n SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from './steps/scheduledTriggerStep.js'\nexport type {\n ScheduledTriggerStepForm,\n ScheduledTriggerStepSettings,\n} from './steps/scheduledTriggerStep.js'\n\nexport {\n AI_MT_TRANSLATION_STEP_FORM_SCHEMA,\n AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA,\n DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n} from './steps/aiMtTranslationStep.js'\nexport type {\n AiMtTranslationStepForm,\n AiMtTranslationStepSettings,\n} from './steps/aiMtTranslationStep.js'\n\nexport {\n TRANSLATE_TASK_STEP_FORM_SCHEMA,\n TRANSLATE_TASK_STEP_SETTINGS_SCHEMA,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from './steps/translateTaskStep.js'\nexport type {\n TranslateTaskStepForm,\n TranslateTaskStepSettings,\n} from './steps/translateTaskStep.js'\nexport {\n REVIEW_TASK_STEP_FORM_SCHEMA,\n REVIEW_TASK_STEP_SETTINGS_SCHEMA,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS_WITH_SOURCE,\n} from './steps/reviewTaskStep.js'\nexport type {\n ReviewTaskStepForm,\n ReviewTaskStepSettings,\n} from './steps/reviewTaskStep.js'\nexport {\n CLEAR_TRANSLATIONS_STEP_FORM_SCHEMA,\n CLEAR_TRANSLATIONS_STEP_SETTINGS_SCHEMA,\n DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n type ClearTranslationsStepForm,\n type ClearTranslationsStepSettings,\n} from './steps/clearTranslationsStep.js'\nexport {\n APPLY_TM_STEP_FORM_SCHEMA,\n APPLY_TM_STEP_SETTINGS_SCHEMA,\n DEFAULT_APPLY_TM_STEP_SETTINGS,\n type ApplyTmStepForm,\n type ApplyTmStepSettings,\n} from './steps/applyTmStep.js'\nexport {\n END_STEP_FORM_SCHEMA,\n END_STEP_SETTINGS_SCHEMA,\n DEFAULT_END_STEP_SETTINGS,\n} from './steps/endStep.js'\nexport type { EndStepForm, EndStepSettings } from './steps/endStep.js'\n\nexport const STEP_TYPES = [\n 'trigger_step',\n 'review_task_step',\n 'translate_task_step',\n 'clear_translations_step',\n 'apply_tm_step',\n 'end_step',\n 'ai_mt_translation_step',\n] as const\nexport type StepType = (typeof STEP_TYPES)[number]\n","import {\n DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_MT_AI_REVIEW_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ClearTranslationsStep' | 'AiMtTranslationStep' | 'ReviewTaskStep' | 'EndStep'\n> = {\n id: 'clearTranslationsMtAiReviewTask',\n title: 'AI/MT • Review task',\n summary:\n 'Apply AI/MT translation after clearing existing translations, and then create a review task.',\n description:\n 'This template sets up a workflow that clears existing translations, applies AI/MT translation, and creates a review task for human verification.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'AiMtTranslationStep',\n },\n },\n },\n AiMtTranslationStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'ai_mt_translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskSkippedEvent: {\n target: 'ReviewTaskStep',\n },\n TaskClosedEvent: {\n target: 'ReviewTaskStep',\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n AiMtTranslationStep: DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: [\n 'TriggerStep',\n 'ClearTranslationsStep',\n 'AiMtTranslationStep',\n 'ReviewTaskStep',\n 'EndStep',\n ],\n gateLevel: 1, // Start+ for templates with MT/AI, but without TM\n}\n","import {\n DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_MT_AI_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ClearTranslationsStep' | 'AiMtTranslationStep' | 'EndStep'\n> = {\n id: 'clearTranslationsMtAiTask',\n title: 'AI/MT (AI/Machine translation)',\n summary: 'Apply AI/MT translation after clearing existing translations.',\n description:\n 'This template sets up a workflow that first clears existing translations and then applies AI/MT translation.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'AiMtTranslationStep',\n },\n },\n },\n AiMtTranslationStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'ai_mt_translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskSkippedEvent: {\n target: 'EndStep',\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n AiMtTranslationStep: DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ClearTranslationsStep', 'AiMtTranslationStep', 'EndStep'],\n gateLevel: 1, // Start+ for templates with MT/AI, but without TM\n}\n","import {\n DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_APPLY_TM_STEP_SETTINGS } from '../../workflow/steps/applyTmStep.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_TM_MT_AI_REVIEW_TASK_TEMPLATE: InternalTemplate<\n | 'TriggerStep'\n | 'ClearTranslationsStep'\n | 'ApplyTmStep'\n | 'AiMtTranslationStep'\n | 'ReviewTaskStep'\n | 'EndStep'\n> = {\n id: 'clearTranslationsTmMtAiReviewTask',\n title: 'TM • AI/MT • Review task',\n summary:\n 'Translate content using Translation Memory, apply AI/MT translation for the rest, and then create a review task',\n description:\n 'This template sets up a workflow that clears existing translations, applies Translation Memory, then AI/MT translation, and creates a review task for human verification.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'ApplyTmStep',\n },\n },\n },\n ApplyTmStep: {\n entry: [\n {\n type: 'applyTmAction',\n },\n ],\n on: {\n TmAppliedEvent: {\n target: 'AiMtTranslationStep',\n },\n },\n },\n AiMtTranslationStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'ai_mt_translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskSkippedEvent: {\n target: 'ReviewTaskStep',\n },\n TaskClosedEvent: {\n target: 'ReviewTaskStep',\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n ApplyTmStep: DEFAULT_APPLY_TM_STEP_SETTINGS,\n AiMtTranslationStep: DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: [\n 'TriggerStep',\n 'ClearTranslationsStep',\n 'ApplyTmStep',\n 'AiMtTranslationStep',\n 'ReviewTaskStep',\n 'EndStep',\n ],\n gateLevel: 2, // Essentials+ for templates with MT/AI and TM\n}\n","import {\n DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_APPLY_TM_STEP_SETTINGS } from '../../workflow/steps/applyTmStep.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_TM_MT_AI_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ClearTranslationsStep' | 'ApplyTmStep' | 'AiMtTranslationStep' | 'EndStep'\n> = {\n id: 'clearTranslationsTmMtAiTask',\n title: 'TM • AI/MT',\n summary: 'Translate content using Translation Memory, apply AI/MT translation for the rest',\n description:\n 'This template sets up a workflow that clears existing translations, applies Translation Memory, then AI/MT translation.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'ApplyTmStep',\n },\n },\n },\n ApplyTmStep: {\n entry: [\n {\n type: 'applyTmAction',\n },\n ],\n on: {\n TmAppliedEvent: {\n target: 'AiMtTranslationStep',\n },\n },\n },\n AiMtTranslationStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'ai_mt_translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskSkippedEvent: {\n target: 'EndStep',\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n ApplyTmStep: DEFAULT_APPLY_TM_STEP_SETTINGS,\n AiMtTranslationStep: DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ClearTranslationsStep', 'ApplyTmStep', 'AiMtTranslationStep', 'EndStep'],\n gateLevel: 2, // Essentials+ for templates with MT/AI and TM\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_APPLY_TM_STEP_SETTINGS } from '../../workflow/steps/applyTmStep.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_TM_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ClearTranslationsStep' | 'ApplyTmStep' | 'EndStep'\n> = {\n id: 'clearTranslationsTm',\n title: 'TM (Translation Memory)',\n summary:\n 'Translate content using Translation Memory when content is added/updated in the project.',\n description:\n 'Select this workflow to automatically generate a translation using Translation Memory when the content in the editor meets the conditions set in “Start”.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'ApplyTmStep',\n },\n },\n },\n ApplyTmStep: {\n entry: [\n {\n type: 'applyTmAction',\n },\n ],\n on: {\n TmAppliedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n ApplyTmStep: DEFAULT_APPLY_TM_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ClearTranslationsStep', 'ApplyTmStep', 'EndStep'],\n gateLevel: 2, // Essentials+ for templates with MT/AI and TM\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_APPLY_TM_STEP_SETTINGS } from '../../workflow/steps/applyTmStep.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_TM_TRANSLATE_REVIEW_TASK_TEMPLATE: InternalTemplate<\n | 'TriggerStep'\n | 'ClearTranslationsStep'\n | 'ApplyTmStep'\n | 'TranslateTaskStep'\n | 'ReviewTaskStep'\n | 'EndStep'\n> = {\n id: 'clearTranslationsTmTranslateReviewTask',\n title: 'TM • Translation task • Review task',\n summary: 'Translate content using TM before creating translation and review tasks.',\n description:\n 'This template sets up a chained workflow that enables the automatic creation of a translation task, and subsequently a review task, after applying Translation Memory. This can be used by teams that would like to avoid translating repetitive content that has already been translated in the past.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'ApplyTmStep',\n },\n },\n },\n ApplyTmStep: {\n entry: [\n {\n type: 'applyTmAction',\n },\n ],\n on: {\n TmAppliedEvent: {\n target: 'TranslateTaskStep',\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'ReviewTaskStep',\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n ApplyTmStep: DEFAULT_APPLY_TM_STEP_SETTINGS,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: [\n 'TriggerStep',\n 'ClearTranslationsStep',\n 'ApplyTmStep',\n 'TranslateTaskStep',\n 'ReviewTaskStep',\n 'EndStep',\n ],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport { DEFAULT_APPLY_TM_STEP_SETTINGS } from '../../workflow/steps/applyTmStep.js'\nimport { DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS } from '../../workflow/steps/clearTranslationsStep.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const CLEAR_TRANSLATIONS_TM_TRANSLATE_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ClearTranslationsStep' | 'ApplyTmStep' | 'TranslateTaskStep' | 'EndStep'\n> = {\n id: 'clearTranslationsTmTranslateTask',\n title: 'TM • Translation task',\n summary: 'Translate content using TM before creating a translation task.',\n description:\n 'This template sets up a chained workflow that enables the automatic creation of a translation task after applying Translation Memory. This can be used by teams that would like to avoid translating repetitive content that has already been translated in the past.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ClearTranslationsStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ClearTranslationsStep: {\n entry: [\n {\n type: 'clearTranslationsAction',\n },\n ],\n on: {\n TranslationsClearedEvent: {\n target: 'ApplyTmStep',\n },\n },\n },\n ApplyTmStep: {\n entry: [\n {\n type: 'applyTmAction',\n },\n ],\n on: {\n TmAppliedEvent: {\n target: 'TranslateTaskStep',\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ClearTranslationsStep: DEFAULT_CLEAR_TRANSLATIONS_STEP_SETTINGS,\n ApplyTmStep: DEFAULT_APPLY_TM_STEP_SETTINGS,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ClearTranslationsStep', 'ApplyTmStep', 'TranslateTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const REVIEW_TASK_TEMPLATE: InternalTemplate<'TriggerStep' | 'ReviewTaskStep' | 'EndStep'> =\n {\n id: 'reviewTask',\n title: 'Review task',\n summary: 'Generate a review task when content is added/updated in the project.',\n description:\n 'Select this workflow to automatically create a review task when the content in the editor meets the conditions set in \"Start\".',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ReviewTaskStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ReviewTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n }\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS_WITH_SOURCE,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const REVIEW_TRANSLATE_REVIEW_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ReviewTaskStep' | 'TranslateTaskStep' | 'SecondReviewTaskStep' | 'EndStep'\n> = {\n id: 'reviewTranslateReviewTask',\n title: 'Review task • Translation task • Review task',\n summary: 'Automatic creation of review tasks before and after a translation task.',\n description:\n 'This template sets up a chained workflow that enables the automatic creation of a review task both before and after translation. This can be used by teams that check the source copy before translation and conduct a review round after translation.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ReviewTaskStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'TranslateTaskStep',\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'SecondReviewTaskStep',\n },\n },\n },\n SecondReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS_WITH_SOURCE,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n SecondReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ReviewTaskStep', 'TranslateTaskStep', 'SecondReviewTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS_WITH_SOURCE,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const REVIEW_TRANSLATE_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'ReviewTaskStep' | 'TranslateTaskStep' | 'EndStep'\n> = {\n id: 'reviewTranslateTask',\n title: 'Review task • Translation task',\n summary: 'Automatic creation of a review task before a translation task.',\n description:\n 'Use this template to set up a chained workflow where a translation task will be created as soon as the review task is completed.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'ReviewTaskStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'TranslateTaskStep',\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS_WITH_SOURCE,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'ReviewTaskStep', 'TranslateTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const TRANSLATE_AND_REVIEW_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'TranslateTaskStep' | 'ReviewTaskStep' | 'EndStep'\n> = {\n id: 'translateAndReviewTask',\n title: 'Translation task • Review task',\n summary: 'Automatic creation of translation task before a review task.',\n description:\n 'Use this template to set up a chained workflow where a review task will be created as soon as the translation task is completed.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'TranslateTaskStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'ReviewTaskStep',\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'TranslateTaskStep', 'ReviewTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const TRANSLATE_REVIEW_REVIEW_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'TranslateTaskStep' | 'ReviewTaskStep' | 'SecondReviewTaskStep' | 'EndStep'\n> = {\n id: 'translateReviewReviewTask',\n title: 'Translation task • Review task • Review task',\n summary: 'Automatic creation of a translation task followed by two review tasks.',\n description:\n 'This template to set up a chained workflow where it enables the automatic creation of two review tasks after translation. This could be used by teams that e.g. have one round of proofreading before stakeholders review it.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'TranslateTaskStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'ReviewTaskStep',\n },\n },\n },\n ReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'SecondReviewTaskStep',\n },\n },\n },\n SecondReviewTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'review',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n ReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n SecondReviewTaskStep: DEFAULT_REVIEW_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'TranslateTaskStep', 'ReviewTaskStep', 'SecondReviewTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import {\n DEFAULT_END_STEP_SETTINGS,\n DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n} from '../../workflow/steps.js'\nimport type { InternalTemplate } from '../types.js'\n\nexport const TRANSLATE_TASK_TEMPLATE: InternalTemplate<\n 'TriggerStep' | 'TranslateTaskStep' | 'EndStep'\n> = {\n id: 'translateTask',\n title: 'Translation task',\n summary: 'Generate a translation task when content is added/updated in the project.',\n description:\n 'Select this workflow to automatically create a translation task when the content in the editor meets the conditions set in “Start”.',\n layout: {\n initial: 'TriggerStep',\n states: {\n TriggerStep: {\n on: {\n WorkflowTriggerEvent: {\n target: 'TranslateTaskStep',\n actions: [{ type: 'storeWorkflowTriggerEventScope' }],\n },\n },\n },\n TranslateTaskStep: {\n entry: [\n {\n type: 'createTaskAction',\n params: {\n type: 'translation',\n },\n },\n ],\n on: {\n TaskCreatedEvent: {\n actions: [{ type: 'storeCreatedTaskId' }],\n },\n TaskClosedEvent: {\n guard: { type: 'checkClosedTaskId' },\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS,\n TranslateTaskStep: DEFAULT_TRANSLATE_TASK_STEP_SETTINGS,\n EndStep: DEFAULT_END_STEP_SETTINGS,\n },\n sort: ['TriggerStep', 'TranslateTaskStep', 'EndStep'],\n gateLevel: 3, // Pro+ for templates without MT/AI\n}\n","import { LayoutTranslator } from '../workflow/LayoutTranslator.js'\nimport { CLEAR_TRANSLATIONS_MT_AI_REVIEW_TASK_TEMPLATE } from './resources/clear-translations-mt-ai-review-task.template.js'\nimport { CLEAR_TRANSLATIONS_MT_AI_TASK_TEMPLATE } from './resources/clear-translations-mt-ai-task.template.js'\nimport { CLEAR_TRANSLATIONS_TM_MT_AI_REVIEW_TASK_TEMPLATE } from './resources/clear-translations-tm-mt-ai-review-task.template.js'\nimport { CLEAR_TRANSLATIONS_TM_MT_AI_TASK_TEMPLATE } from './resources/clear-translations-tm-mt-ai-task.template.js'\nimport { CLEAR_TRANSLATIONS_TM_TEMPLATE } from './resources/clear-translations-tm-templates.js'\nimport { CLEAR_TRANSLATIONS_TM_TRANSLATE_REVIEW_TASK_TEMPLATE } from './resources/clear-translations-tm-translate-review-task-template.js'\nimport { CLEAR_TRANSLATIONS_TM_TRANSLATE_TASK_TEMPLATE } from './resources/clear-translations-tm-translate-task-template.js'\nimport { REVIEW_TASK_TEMPLATE } from './resources/review-task.template.js'\nimport { REVIEW_TRANSLATE_REVIEW_TASK_TEMPLATE } from './resources/review-translate-review-task.template.js'\nimport { REVIEW_TRANSLATE_TASK_TEMPLATE } from './resources/review-translate-task.template.js'\nimport { TRANSLATE_AND_REVIEW_TASK_TEMPLATE } from './resources/translate-and-review-task.template.js'\nimport { TRANSLATE_REVIEW_REVIEW_TASK_TEMPLATE } from './resources/translate-review-review-task.template.js'\nimport { TRANSLATE_TASK_TEMPLATE } from './resources/translate-task.template.js'\nimport type { InternalTemplate, Template } from './types.js'\n\nexport const TEMPLATE_IDS = [\n 'clearTranslationsMtAiTask',\n 'translateTask',\n 'clearTranslationsTm',\n 'clearTranslationsMtAiReviewTask',\n 'clearTranslationsTmMtAiTask',\n 'clearTranslationsTmMtAiReviewTask',\n 'clearTranslationsTmTranslateTask',\n 'translateAndReviewTask',\n 'clearTranslationsTmTranslateReviewTask',\n 'translateReviewReviewTask',\n 'reviewTask',\n 'reviewTranslateTask',\n 'reviewTranslateReviewTask',\n] as const\n\nexport type TemplateId = (typeof TEMPLATE_IDS)[number]\n\nconst buildTemplate = <StateName extends string>(\n internalTemplate: InternalTemplate<StateName>,\n): Template<StateName> => {\n const layoutTranslator = new LayoutTranslator()\n const frontendLayout = layoutTranslator.translateTemplateToFrontendLayout(internalTemplate)\n\n return {\n ...internalTemplate,\n frontendLayout,\n }\n}\n\nexport const TEMPLATES: Record<TemplateId, Template<string>> = {\n clearTranslationsMtAiTask: buildTemplate(CLEAR_TRANSLATIONS_MT_AI_TASK_TEMPLATE),\n translateTask: buildTemplate(TRANSLATE_TASK_TEMPLATE),\n clearTranslationsTm: buildTemplate(CLEAR_TRANSLATIONS_TM_TEMPLATE),\n clearTranslationsMtAiReviewTask: buildTemplate(CLEAR_TRANSLATIONS_MT_AI_REVIEW_TASK_TEMPLATE),\n clearTranslationsTmMtAiTask: buildTemplate(CLEAR_TRANSLATIONS_TM_MT_AI_TASK_TEMPLATE),\n clearTranslationsTmMtAiReviewTask: buildTemplate(\n CLEAR_TRANSLATIONS_TM_MT_AI_REVIEW_TASK_TEMPLATE,\n ),\n clearTranslationsTmTranslateTask: buildTemplate(CLEAR_TRANSLATIONS_TM_TRANSLATE_TASK_TEMPLATE),\n translateAndReviewTask: buildTemplate(TRANSLATE_AND_REVIEW_TASK_TEMPLATE),\n clearTranslationsTmTranslateReviewTask: buildTemplate(\n CLEAR_TRANSLATIONS_TM_TRANSLATE_REVIEW_TASK_TEMPLATE,\n ),\n translateReviewReviewTask: buildTemplate(TRANSLATE_REVIEW_REVIEW_TASK_TEMPLATE),\n reviewTask: buildTemplate(REVIEW_TASK_TEMPLATE),\n reviewTranslateTask: buildTemplate(REVIEW_TRANSLATE_TASK_TEMPLATE),\n reviewTranslateReviewTask: buildTemplate(REVIEW_TRANSLATE_REVIEW_TASK_TEMPLATE),\n}\n"],"mappings":"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","names":["import_zod","_","template","import_maestro_common","import_zod","import_maestro_common","import_zod","import_maestro_common","import_zod","import_zod","import_zod","import_maestro_common","import_zod","import_maestro_common","import_zod","z"]}
|