@lokalise/maestro-expert-tenant-lib 1.6.0 → 1.8.0

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 CHANGED
@@ -32,6 +32,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
32
32
  var maestro_expert_tenant_lib_exports = {};
33
33
  __export(maestro_expert_tenant_lib_exports, {
34
34
  API_ERROR: () => API_ERROR,
35
+ CREATE_TASK_MESSAGE_CONTEXT: () => CREATE_TASK_MESSAGE_CONTEXT,
35
36
  CREATE_TASK_STEP_SETTINGS_SCHEMA: () => CREATE_TASK_STEP_SETTINGS_SCHEMA,
36
37
  CreateTaskExampleStepSettings: () => CreateTaskExampleStepSettings,
37
38
  DELETE_WORKFLOW_PARAMS: () => DELETE_WORKFLOW_PARAMS,
@@ -53,6 +54,9 @@ __export(maestro_expert_tenant_lib_exports, {
53
54
  POST_WORKFLOW_BODY: () => POST_WORKFLOW_BODY,
54
55
  POST_WORKFLOW_PARAMS: () => POST_WORKFLOW_PARAMS,
55
56
  POST_WORKFLOW_RESPONSE: () => POST_WORKFLOW_RESPONSE,
57
+ PUT_WORKFLOW_DRAFT_BODY: () => PUT_WORKFLOW_DRAFT_BODY,
58
+ PUT_WORKFLOW_DRAFT_PARAMS: () => PUT_WORKFLOW_DRAFT_PARAMS,
59
+ PUT_WORKFLOW_DRAFT_RESPONSE: () => PUT_WORKFLOW_DRAFT_RESPONSE,
56
60
  REVIEW_TASK_STEP_SETTINGS: () => REVIEW_TASK_STEP_SETTINGS,
57
61
  REVIEW_TASK_STEP_SETTINGS_SCHEMA: () => REVIEW_TASK_STEP_SETTINGS_SCHEMA,
58
62
  SCHEDULED_TRIGGER_STEP_SETTINGS: () => SCHEDULED_TRIGGER_STEP_SETTINGS,
@@ -139,13 +143,33 @@ var START_KEYS_STEP_SETTINGS_SCHEMA = import_maestro_common.WORKFLOW_LAYOUT_STEP
139
143
  targetLanguageId: import_zod.z.number(),
140
144
  monitoredKeyType: import_zod.z.enum(["new", "updated", "both"])
141
145
  });
146
+ var TASK_LANGUAGE_ASSIGNEES = import_zod.z.object({
147
+ languageId: import_zod.z.number(),
148
+ userIds: import_zod.z.optional(import_zod.z.array(import_zod.z.string())),
149
+ userGroupIds: import_zod.z.optional(import_zod.z.array(import_zod.z.string()))
150
+ }).refine(({ userIds, userGroupIds }) => userIds !== void 0 || userGroupIds !== void 0, {
151
+ message: "Either users or groups should be specified"
152
+ });
142
153
  var CREATE_TASK_STEP_SETTINGS_SCHEMA = import_maestro_common.WORKFLOW_LAYOUT_STEP_SETTINGS.extend({
143
- taskType: import_zod.z.enum(["translate", "review"]),
144
- dueDate: import_zod.z.union([import_zod.z.number(), import_zod.z.string()])
154
+ taskTitle: import_zod.z.optional(import_zod.z.string()),
155
+ taskDescription: import_zod.z.optional(import_zod.z.string()),
156
+ dueDate: import_zod.z.optional(import_zod.z.number()),
157
+ languageAssignees: import_zod.z.optional(import_zod.z.array(TASK_LANGUAGE_ASSIGNEES)),
158
+ autoCloseLanguages: import_zod.z.optional(import_zod.z.boolean()),
159
+ autoCloseTask: import_zod.z.optional(import_zod.z.boolean()),
160
+ taskType: import_zod.z.enum(["translation", "review"]),
161
+ lockTranslations: import_zod.z.optional(import_zod.z.boolean())
162
+ });
163
+ var CREATE_TASK_MESSAGE_CONTEXT = CREATE_TASK_STEP_SETTINGS_SCHEMA.omit({
164
+ dueDate: true
165
+ }).extend({
166
+ sourceLanguageIso: import_zod.z.optional(import_zod.z.string()),
167
+ keyIds: import_zod.z.optional(import_zod.z.array(import_zod.z.string())),
168
+ dueDate: import_zod.z.optional(import_zod.z.date())
145
169
  });
146
170
  var CreateTaskExampleStepSettings = CREATE_TASK_STEP_SETTINGS_SCHEMA.parse({
147
171
  stepType: "create_task",
148
- taskType: "translate",
172
+ taskType: "translation",
149
173
  dueDate: 5
150
174
  });
151
175
  var STEP_TYPES = [
@@ -167,13 +191,15 @@ var SCHEDULED_TRIGGER_STEP_SETTINGS = {
167
191
  targetLanguageIds: [],
168
192
  monitoredKeyType: "new"
169
193
  };
170
- var REVIEW_TASK_STEP_SETTINGS_SCHEMA = import_maestro_common.WORKFLOW_LAYOUT_STEP_SETTINGS;
194
+ var REVIEW_TASK_STEP_SETTINGS_SCHEMA = CREATE_TASK_STEP_SETTINGS_SCHEMA;
171
195
  var REVIEW_TASK_STEP_SETTINGS = {
172
- stepType: "review_task_step"
196
+ stepType: "review_task_step",
197
+ taskType: "review"
173
198
  };
174
- var TRANSLATE_TASK_STEP_SETTINGS_SCHEMA = import_maestro_common.WORKFLOW_LAYOUT_STEP_SETTINGS;
199
+ var TRANSLATE_TASK_STEP_SETTINGS_SCHEMA = CREATE_TASK_STEP_SETTINGS_SCHEMA;
175
200
  var TRANSLATE_TASK_STEP_SETTINGS = {
176
- stepType: "translate_task_step"
201
+ stepType: "translate_task_step",
202
+ taskType: "translation"
177
203
  };
178
204
  var END_STEP_SETTINGS_SCHEMA = import_maestro_common.WORKFLOW_LAYOUT_STEP_SETTINGS;
179
205
  var END_STEP_SETTINGS = {
@@ -433,13 +459,24 @@ var POST_WORKFLOW_BODY = import_zod2.default.nullable(
433
459
  import_zod2.default.object({
434
460
  templateId: TEMPLATE_ID.optional()
435
461
  })
436
- ).describe("URL parameters for creating a workflow");
462
+ ).describe("Parameters for creating a workflow");
437
463
  var POST_WORKFLOW_RESPONSE = import_zod2.default.object({
438
464
  data: WORKFLOW_EXTENDED
439
465
  });
466
+ var PUT_WORKFLOW_DRAFT_PARAMS = import_zod2.default.object({
467
+ groupId: GROUP_ID,
468
+ workflowId: WORKFLOW_ID
469
+ });
470
+ var PUT_WORKFLOW_DRAFT_BODY = import_zod2.default.object({
471
+ schema: WORKFLOW_EXTENDED_SCHEMA
472
+ }).describe("Schema with user changes");
473
+ var PUT_WORKFLOW_DRAFT_RESPONSE = import_zod2.default.null({
474
+ description: "Successfully updated workflow draft"
475
+ });
440
476
  // Annotate the CommonJS export names for ESM import in node:
441
477
  0 && (module.exports = {
442
478
  API_ERROR,
479
+ CREATE_TASK_MESSAGE_CONTEXT,
443
480
  CREATE_TASK_STEP_SETTINGS_SCHEMA,
444
481
  CreateTaskExampleStepSettings,
445
482
  DELETE_WORKFLOW_PARAMS,
@@ -461,6 +498,9 @@ var POST_WORKFLOW_RESPONSE = import_zod2.default.object({
461
498
  POST_WORKFLOW_BODY,
462
499
  POST_WORKFLOW_PARAMS,
463
500
  POST_WORKFLOW_RESPONSE,
501
+ PUT_WORKFLOW_DRAFT_BODY,
502
+ PUT_WORKFLOW_DRAFT_PARAMS,
503
+ PUT_WORKFLOW_DRAFT_RESPONSE,
464
504
  REVIEW_TASK_STEP_SETTINGS,
465
505
  REVIEW_TASK_STEP_SETTINGS_SCHEMA,
466
506
  SCHEDULED_TRIGGER_STEP_SETTINGS,
@@ -1 +1 @@
1
- {"version":3,"sources":["../index.ts","../src/apiContract/schemas.ts","../src/workflow/LayoutTranslator.ts","../src/workflow/steps.ts","../src/templates/resources/review-task.template.ts","../src/templates/resources/translate-and-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 { 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 { STEP_TYPES } from '../workflow/steps.js'\n\n// COMMON SCHEMAS\nconst DATETIME = z.string().datetime()\nconst WORKFLOW_ID = z.string().max(36)\nconst TEMPLATE_ID = z.enum(TEMPLATE_IDS).describe('Template identifier')\nconst GROUP_ID = z\n .string()\n .max(255)\n .describe(\n 'Generated group identifier, which should be unique across Expert and Flow (example: 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\n// GET WORKFLOW\nexport const GET_WORKFLOW_PARAMS = z\n .object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n })\n .describe('URL parameters for getting a workflow')\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_SCHEMA = 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 }),\n )\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 createdAt: DATETIME,\n updatedAt: z.optional(DATETIME),\n publishedAt: z.optional(DATETIME),\n })\n .describe('Workflow. Response for getting a workflow or creating a new one')\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\n// LIST WORKFLOWS\nexport const GET_WORKFLOW_LIST_PARAMS = z.object({\n groupId: GROUP_ID,\n})\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 = z.object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n})\n\nexport const PATCH_PAUSE_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully paused workflow',\n})\n\n// RESUME WORKFLOW\nexport const PATCH_RESUME_WORKFLOW_PARAMS = z.object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n})\n\nexport const PATCH_RESUME_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully resumed workflow',\n})\n\n// DUPLICATE WORKFLOW\nexport const POST_DUPLICATE_WORKFLOW_PARAMS = z.object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n})\n\nexport const POST_DUPLICATE_WORKFLOW_RESPONSE = GET_WORKFLOW_RESPONSE\n\n// DELETE WORKFLOW\nexport const DELETE_WORKFLOW_PARAMS = z.object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n})\n\nexport const DELETE_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully deleted workflow',\n})\n\n// CREATE WORKFLOW\nexport const POST_WORKFLOW_PARAMS = z\n .object({\n groupId: GROUP_ID,\n })\n .describe('URL parameters for creating a workflow')\n\nexport const POST_WORKFLOW_BODY = z\n .nullable(\n z.object({\n templateId: TEMPLATE_ID.optional(),\n }),\n )\n .describe('URL parameters for creating a workflow')\n\nexport const POST_WORKFLOW_RESPONSE = z.object({\n data: WORKFLOW_EXTENDED,\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","import { areStringArraysEqual } from '@lokalise/universal-ts-utils/dist/areStringArraysEqual.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 { StepType } from './steps.js'\n\nexport class LayoutTranslator {\n public translateTemplateToFrontendLayout<StateName extends string>(\n template: InternalTemplate<StateName>,\n ): FrontendLayout<StateName> {\n return this.buildFrontendLayout<StateName>(template.settings)\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 ): FrontendLayout<StateName> {\n return Object.entries(settings).map(([id, step]) => {\n const { stepType, ...values } = step\n return {\n id: id as StateName,\n type: stepType as StepType,\n values,\n }\n })\n }\n\n buildLayoutSettings<StateName extends string>(\n frontendLayout: FrontendLayout<StateName>,\n ): StrictWorkflowLayoutSettings<StateName> {\n return frontendLayout.reduce(\n (acc, frontendStep) => {\n acc[frontendStep.id] = { ...frontendStep.values, stepType: frontendStep.type }\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 areStringArraysEqual(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 { WORKFLOW_LAYOUT_STEP_SETTINGS } from '@lokalise/maestro-common'\nimport { z } from 'zod'\n\nexport const START_KEYS_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.extend({\n name: z.string(),\n description: z.string(),\n autoMarkAsUnverified: z.boolean(),\n runOnSchedule: z.boolean(),\n monitoredLanguageId: z.number(),\n targetLanguageId: z.number(),\n monitoredKeyType: z.enum(['new', 'updated', 'both']),\n})\n\nexport const CREATE_TASK_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.extend({\n taskType: z.enum(['translate', 'review']),\n dueDate: z.union([z.number(), z.string()]),\n})\n\nexport const CreateTaskExampleStepSettings = CREATE_TASK_STEP_SETTINGS_SCHEMA.parse({\n stepType: 'create_task',\n taskType: 'translate',\n dueDate: 5,\n})\n\nexport const STEP_TYPES = [\n 'trigger_step',\n 'review_task_step',\n 'translate_task_step',\n 'end_step',\n] as const\nexport type StepType = (typeof STEP_TYPES)[number]\n\n// SCHEDULED_TRIGGER_STEP\nexport const SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.extend({\n runOnSchedule: z.boolean(),\n monitoredKeyType: z.enum(['new', 'updated', 'both']),\n monitoredLanguageId: z.optional(z.number()),\n targetLanguageIds: z.array(z.number()),\n})\nexport type ScheduledTriggerStepSettings = z.infer<\n typeof SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA\n> & {\n stepType: StepType\n}\nexport const SCHEDULED_TRIGGER_STEP_SETTINGS: ScheduledTriggerStepSettings = {\n stepType: 'trigger_step',\n runOnSchedule: true,\n monitoredLanguageId: undefined,\n targetLanguageIds: [],\n monitoredKeyType: 'new',\n}\n\n// REVIEW_TASK_STEP\nexport const REVIEW_TASK_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS\nexport type ReviewTaskStepSettings = z.infer<typeof REVIEW_TASK_STEP_SETTINGS_SCHEMA> & {\n stepType: StepType\n}\nexport const REVIEW_TASK_STEP_SETTINGS: ReviewTaskStepSettings = {\n stepType: 'review_task_step',\n}\n\n// TRANSLATE_TASK_STEP\nexport const TRANSLATE_TASK_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS\nexport type TranslateTaskStepSettings = z.infer<typeof TRANSLATE_TASK_STEP_SETTINGS_SCHEMA> & {\n stepType: StepType\n}\nexport const TRANSLATE_TASK_STEP_SETTINGS: TranslateTaskStepSettings = {\n stepType: 'translate_task_step',\n}\n\n// END_STEP\nexport const END_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS\nexport type EndStepSettings = z.infer<typeof END_STEP_SETTINGS_SCHEMA> & {\n stepType: StepType\n}\nexport const END_STEP_SETTINGS: EndStepSettings = {\n stepType: 'end_step',\n}\n","import {\n END_STEP_SETTINGS,\n REVIEW_TASK_STEP_SETTINGS,\n 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 to 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 TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: SCHEDULED_TRIGGER_STEP_SETTINGS,\n ReviewTaskStep: REVIEW_TASK_STEP_SETTINGS,\n EndStep: END_STEP_SETTINGS,\n },\n }\n","import {\n END_STEP_SETTINGS,\n REVIEW_TASK_STEP_SETTINGS,\n SCHEDULED_TRIGGER_STEP_SETTINGS,\n 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: 'translate',\n },\n },\n ],\n on: {\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 TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: SCHEDULED_TRIGGER_STEP_SETTINGS,\n TranslateTaskStep: TRANSLATE_TASK_STEP_SETTINGS,\n ReviewTaskStep: REVIEW_TASK_STEP_SETTINGS,\n EndStep: END_STEP_SETTINGS,\n },\n}\n","import {\n END_STEP_SETTINGS,\n SCHEDULED_TRIGGER_STEP_SETTINGS,\n 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 to 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: 'translate',\n },\n },\n ],\n on: {\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: SCHEDULED_TRIGGER_STEP_SETTINGS,\n TranslateTaskStep: TRANSLATE_TASK_STEP_SETTINGS,\n EndStep: END_STEP_SETTINGS,\n },\n}\n","import { LayoutTranslator } from '../workflow/LayoutTranslator.js'\nimport { REVIEW_TASK_TEMPLATE } from './resources/review-task.template.js'\nimport { TRANSLATE_AND_REVIEW_TASK_TEMPLATE } from './resources/translate-and-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 = ['reviewTask', 'translateTask', 'translateAndReviewTask'] 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 reviewTask: buildTemplate(REVIEW_TASK_TEMPLATE),\n translateTask: buildTemplate(TRANSLATE_TASK_TEMPLATE),\n translateAndReviewTask: buildTemplate(TRANSLATE_AND_REVIEW_TASK_TEMPLATE),\n}\n"],"mappings":"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","names":["import_zod","_","template","z"]}
1
+ {"version":3,"sources":["../index.ts","../src/apiContract/schemas.ts","../src/workflow/LayoutTranslator.ts","../src/workflow/steps.ts","../src/templates/resources/review-task.template.ts","../src/templates/resources/translate-and-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 { 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 { STEP_TYPES } from '../workflow/steps.js'\n\n// COMMON SCHEMAS\nconst DATETIME = z.string().datetime()\nconst WORKFLOW_ID = z.string().max(36)\nconst TEMPLATE_ID = z.enum(TEMPLATE_IDS).describe('Template identifier')\nconst GROUP_ID = z\n .string()\n .max(255)\n .describe(\n 'Generated group identifier, which should be unique across Expert and Flow (example: 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\n// GET WORKFLOW\nexport const GET_WORKFLOW_PARAMS = z\n .object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n })\n .describe('URL parameters for getting a workflow')\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_SCHEMA = 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 }),\n )\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 createdAt: DATETIME,\n updatedAt: z.optional(DATETIME),\n publishedAt: z.optional(DATETIME),\n })\n .describe('Workflow. Response for getting a workflow or creating a new one')\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 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 = z.object({\n groupId: GROUP_ID,\n})\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 = z.object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n})\n\nexport const PATCH_PAUSE_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully paused workflow',\n})\n\n// RESUME WORKFLOW\nexport const PATCH_RESUME_WORKFLOW_PARAMS = z.object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n})\n\nexport const PATCH_RESUME_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully resumed workflow',\n})\n\n// DUPLICATE WORKFLOW\nexport const POST_DUPLICATE_WORKFLOW_PARAMS = z.object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n})\n\nexport const POST_DUPLICATE_WORKFLOW_RESPONSE = GET_WORKFLOW_RESPONSE\n\n// DELETE WORKFLOW\nexport const DELETE_WORKFLOW_PARAMS = z.object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n})\n\nexport const DELETE_WORKFLOW_RESPONSE = z.null({\n description: 'Successfully deleted workflow',\n})\n\n// CREATE WORKFLOW\nexport const POST_WORKFLOW_PARAMS = z\n .object({\n groupId: GROUP_ID,\n })\n .describe('URL parameters for creating a workflow')\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 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 = z.object({\n groupId: GROUP_ID,\n workflowId: WORKFLOW_ID,\n})\n\nexport const PUT_WORKFLOW_DRAFT_BODY = z\n .object({\n schema: WORKFLOW_EXTENDED_SCHEMA,\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","import { areStringArraysEqual } from '@lokalise/universal-ts-utils/dist/areStringArraysEqual.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 { StepType } from './steps.js'\n\nexport class LayoutTranslator {\n public translateTemplateToFrontendLayout<StateName extends string>(\n template: InternalTemplate<StateName>,\n ): FrontendLayout<StateName> {\n return this.buildFrontendLayout<StateName>(template.settings)\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 ): FrontendLayout<StateName> {\n return Object.entries(settings).map(([id, step]) => {\n const { stepType, ...values } = step\n return {\n id: id as StateName,\n type: stepType as StepType,\n values,\n }\n })\n }\n\n buildLayoutSettings<StateName extends string>(\n frontendLayout: FrontendLayout<StateName>,\n ): StrictWorkflowLayoutSettings<StateName> {\n return frontendLayout.reduce(\n (acc, frontendStep) => {\n acc[frontendStep.id] = { ...frontendStep.values, stepType: frontendStep.type }\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 areStringArraysEqual(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 { WORKFLOW_LAYOUT_STEP_SETTINGS } from '@lokalise/maestro-common'\nimport { z } from 'zod'\n\nexport const START_KEYS_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.extend({\n name: z.string(),\n description: z.string(),\n autoMarkAsUnverified: z.boolean(),\n runOnSchedule: z.boolean(),\n monitoredLanguageId: z.number(),\n targetLanguageId: z.number(),\n monitoredKeyType: z.enum(['new', 'updated', 'both']),\n})\n\nconst TASK_LANGUAGE_ASSIGNEES = z\n .object({\n languageId: z.number(),\n userIds: z.optional(z.array(z.string())),\n userGroupIds: z.optional(z.array(z.string())),\n })\n .refine(({ userIds, userGroupIds }) => userIds !== undefined || userGroupIds !== undefined, {\n message: 'Either users or groups should be specified',\n })\n\nexport const CREATE_TASK_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.extend({\n taskTitle: z.optional(z.string()),\n taskDescription: z.optional(z.string()),\n dueDate: z.optional(z.number()),\n languageAssignees: z.optional(z.array(TASK_LANGUAGE_ASSIGNEES)),\n autoCloseLanguages: z.optional(z.boolean()),\n autoCloseTask: z.optional(z.boolean()),\n taskType: z.enum(['translation', 'review']),\n lockTranslations: z.optional(z.boolean()),\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 dueDate: true,\n}).extend({\n sourceLanguageIso: z.optional(z.string()),\n keyIds: z.optional(z.array(z.string())),\n dueDate: z.optional(z.date()),\n})\nexport type CreateTaskMessageContext = z.infer<typeof CREATE_TASK_MESSAGE_CONTEXT>\n\nexport const CreateTaskExampleStepSettings = CREATE_TASK_STEP_SETTINGS_SCHEMA.parse({\n stepType: 'create_task',\n taskType: 'translation',\n dueDate: 5,\n})\n\nexport const STEP_TYPES = [\n 'trigger_step',\n 'review_task_step',\n 'translate_task_step',\n 'end_step',\n] as const\nexport type StepType = (typeof STEP_TYPES)[number]\n\n// SCHEDULED_TRIGGER_STEP\nexport const SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS.extend({\n runOnSchedule: z.boolean(),\n monitoredKeyType: z.enum(['new', 'updated', 'both']),\n monitoredLanguageId: z.optional(z.number()),\n targetLanguageIds: z.array(z.number()),\n})\nexport type ScheduledTriggerStepSettings = z.infer<\n typeof SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA\n> & {\n stepType: StepType\n}\nexport const SCHEDULED_TRIGGER_STEP_SETTINGS: ScheduledTriggerStepSettings = {\n stepType: 'trigger_step',\n runOnSchedule: true,\n monitoredLanguageId: undefined,\n targetLanguageIds: [],\n monitoredKeyType: 'new',\n}\n\n// REVIEW_TASK_STEP\nexport const REVIEW_TASK_STEP_SETTINGS_SCHEMA = CREATE_TASK_STEP_SETTINGS_SCHEMA\nexport type ReviewTaskStepSettings = z.infer<typeof REVIEW_TASK_STEP_SETTINGS_SCHEMA> & {\n stepType: StepType\n}\nexport const REVIEW_TASK_STEP_SETTINGS: ReviewTaskStepSettings = {\n stepType: 'review_task_step',\n taskType: 'review',\n}\n\n// TRANSLATE_TASK_STEP\nexport const TRANSLATE_TASK_STEP_SETTINGS_SCHEMA = CREATE_TASK_STEP_SETTINGS_SCHEMA\nexport type TranslateTaskStepSettings = z.infer<typeof TRANSLATE_TASK_STEP_SETTINGS_SCHEMA> & {\n stepType: StepType\n}\nexport const TRANSLATE_TASK_STEP_SETTINGS: TranslateTaskStepSettings = {\n stepType: 'translate_task_step',\n taskType: 'translation',\n}\n\n// END_STEP\nexport const END_STEP_SETTINGS_SCHEMA = WORKFLOW_LAYOUT_STEP_SETTINGS\nexport type EndStepSettings = z.infer<typeof END_STEP_SETTINGS_SCHEMA> & {\n stepType: StepType\n}\nexport const END_STEP_SETTINGS: EndStepSettings = {\n stepType: 'end_step',\n}\n","import {\n END_STEP_SETTINGS,\n REVIEW_TASK_STEP_SETTINGS,\n 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 to 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 TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: SCHEDULED_TRIGGER_STEP_SETTINGS,\n ReviewTaskStep: REVIEW_TASK_STEP_SETTINGS,\n EndStep: END_STEP_SETTINGS,\n },\n }\n","import {\n END_STEP_SETTINGS,\n REVIEW_TASK_STEP_SETTINGS,\n SCHEDULED_TRIGGER_STEP_SETTINGS,\n 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: 'translate',\n },\n },\n ],\n on: {\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 TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: SCHEDULED_TRIGGER_STEP_SETTINGS,\n TranslateTaskStep: TRANSLATE_TASK_STEP_SETTINGS,\n ReviewTaskStep: REVIEW_TASK_STEP_SETTINGS,\n EndStep: END_STEP_SETTINGS,\n },\n}\n","import {\n END_STEP_SETTINGS,\n SCHEDULED_TRIGGER_STEP_SETTINGS,\n 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 to 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: 'translate',\n },\n },\n ],\n on: {\n TaskClosedEvent: {\n target: 'EndStep',\n },\n },\n },\n EndStep: {\n type: 'final',\n },\n },\n },\n settings: {\n TriggerStep: SCHEDULED_TRIGGER_STEP_SETTINGS,\n TranslateTaskStep: TRANSLATE_TASK_STEP_SETTINGS,\n EndStep: END_STEP_SETTINGS,\n },\n}\n","import { LayoutTranslator } from '../workflow/LayoutTranslator.js'\nimport { REVIEW_TASK_TEMPLATE } from './resources/review-task.template.js'\nimport { TRANSLATE_AND_REVIEW_TASK_TEMPLATE } from './resources/translate-and-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 = ['reviewTask', 'translateTask', 'translateAndReviewTask'] 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 reviewTask: buildTemplate(REVIEW_TASK_TEMPLATE),\n translateTask: buildTemplate(TRANSLATE_TASK_TEMPLATE),\n translateAndReviewTask: buildTemplate(TRANSLATE_AND_REVIEW_TASK_TEMPLATE),\n}\n"],"mappings":"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","names":["import_zod","_","template","z"]}