@lokalise/maestro-expert-tenant-lib 4.0.0 → 4.1.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.
@@ -23,40 +23,40 @@ type StrictWorkflowLayoutStepSettingsList = WorkflowLayoutStepSettingsList & {
23
23
  export type StrictWorkflowLayoutSettings<StateName extends string> = StrictWorkflowLayoutStepSettingsList & {
24
24
  [key in StateName]: StrictWorkflowLayoutStepSettings;
25
25
  };
26
- export type FrontendLayoutStep<StateName extends string> = {
27
- id: StateName;
26
+ export type FrontendLayoutStep = {
27
+ id: string;
28
28
  type: 'trigger_step';
29
29
  values: Record<string, unknown>;
30
30
  triggerType: string;
31
31
  } | {
32
- id: StateName;
32
+ id: string;
33
33
  type: 'translate_task_step';
34
34
  values: Record<string, unknown>;
35
35
  taskType: string;
36
36
  } | {
37
- id: StateName;
37
+ id: string;
38
38
  type: 'review_task_step';
39
39
  values: Record<string, unknown>;
40
40
  taskType: string;
41
41
  } | {
42
- id: StateName;
42
+ id: string;
43
43
  type: 'clear_translations_step';
44
44
  values: Record<string, unknown>;
45
45
  } | {
46
- id: StateName;
46
+ id: string;
47
47
  type: 'apply_tm_step';
48
48
  values: Record<string, unknown>;
49
49
  } | {
50
- id: StateName;
50
+ id: string;
51
51
  type: 'ai_mt_translation_step';
52
52
  values: Record<string, unknown>;
53
53
  taskType: string;
54
54
  } | {
55
- id: StateName;
55
+ id: string;
56
56
  type: 'end_step';
57
57
  values: Record<string, unknown>;
58
58
  };
59
- export type FrontendLayout<StateName extends string> = FrontendLayoutStep<StateName>[];
59
+ export type FrontendLayout = FrontendLayoutStep[];
60
60
  export type InternalTemplate<StateName extends string> = BaseTemplate<StateName> & {
61
61
  id: TemplateId;
62
62
  title: string;
@@ -68,6 +68,6 @@ export type InternalTemplate<StateName extends string> = BaseTemplate<StateName>
68
68
  gateLevel: number;
69
69
  };
70
70
  export type Template<StateName extends string> = InternalTemplate<StateName> & {
71
- frontendLayout: FrontendLayout<StateName>;
71
+ frontendLayout: FrontendLayout;
72
72
  };
73
73
  export {};
@@ -1,14 +1,23 @@
1
- import type { LayoutTranslatorInterface, WorkflowLayout, WorkflowLayoutStepSettingsList, WorkflowMetadata } from '@lokalise/maestro-common';
1
+ import type { LayoutTranslatorInterface, WorkflowLayout, WorkflowLayoutStep, WorkflowLayoutStepSettingsList, WorkflowMetadata } from '@lokalise/maestro-common';
2
2
  import type { FrontendLayout, InternalTemplate, StrictWorkflowLayoutSettings, Template } from '../templates/types.js';
3
+ import { type StepType, type StrictFrontendStep } from './steps.js';
3
4
  export declare class LayoutTranslator implements LayoutTranslatorInterface {
4
- translateTemplateToFrontendLayout<StateName extends string>(template: InternalTemplate<StateName>): FrontendLayout<StateName>;
5
- translateFrontendLayoutToTemplate<StateName extends string>(frontendLayout: FrontendLayout<StateName>): Pick<InternalTemplate<StateName>, 'layout' | 'settings'> | undefined;
6
- buildFrontendLayout<StateName extends string>(settings: StrictWorkflowLayoutSettings<StateName>, sort?: StateName[]): FrontendLayout<StateName>;
5
+ translateTemplateToFrontendLayout<StateName extends string>(template: InternalTemplate<StateName>): FrontendLayout;
6
+ translateFrontendLayoutToTemplate<StateName extends string>(frontendLayout: FrontendLayout): Pick<InternalTemplate<StateName>, 'layout' | 'settings'> | undefined;
7
+ translateFrontendLayoutToBackendLayout(frontendLayout: StrictFrontendStep[]): {
8
+ layout: WorkflowLayout;
9
+ settings: WorkflowLayoutStepSettingsList;
10
+ } | undefined;
11
+ buildFrontendLayout<StateName extends string>(settings: StrictWorkflowLayoutSettings<StateName>, sort?: StateName[]): FrontendLayout;
7
12
  getStepSortFromLayout(layout: WorkflowLayout): string[];
8
13
  buildWorkflowMetadata({ settings, }: Pick<InternalTemplate<string>, 'settings'>): WorkflowMetadata;
9
14
  getTriggerSchedulerExpression(settings: WorkflowLayoutStepSettingsList): string | undefined;
10
15
  getTriggerSchedulerStartDate(settings: WorkflowLayoutStepSettingsList): string | undefined;
11
- getTemplateGateLevel<StateName extends string>(frontendLayout: FrontendLayout<StateName>): number | undefined;
12
- buildLayoutSettings<StateName extends string>(frontendLayout: FrontendLayout<StateName>): StrictWorkflowLayoutSettings<StateName>;
13
- findTemplate<StateName extends string>(frontendLayout: FrontendLayout<StateName>): Template<StateName> | undefined;
16
+ getTemplateGateLevel(frontendLayout: FrontendLayout): number | undefined;
17
+ buildStrictLayoutSettings<StateName extends string>(frontendLayout: FrontendLayout): StrictWorkflowLayoutSettings<StateName>;
18
+ buildCustomLayoutSettings(frontendLayout: StrictFrontendStep[]): Record<string, import("zod").objectOutputType<{
19
+ stepType: import("zod").ZodString;
20
+ }, import("zod").ZodTypeAny, "passthrough">>;
21
+ findTemplate<StateName extends string>(frontendLayout: FrontendLayout): Template<StateName> | undefined;
22
+ buildInternalStep(stepType: StepType, nextStep?: StrictFrontendStep): WorkflowLayoutStep | undefined;
14
23
  }
@@ -1,5 +1,6 @@
1
1
  import { areDeepEqual } from '@lokalise/universal-ts-utils/node';
2
2
  import { TEMPLATES } from '../templates/schemas.js';
3
+ import { FRONTEND_TO_BACKEND_STEPS_MAP, } from './steps.js';
3
4
  export class LayoutTranslator {
4
5
  translateTemplateToFrontendLayout(template) {
5
6
  return this.buildFrontendLayout(template.settings, template.sort);
@@ -9,12 +10,30 @@ export class LayoutTranslator {
9
10
  if (!template) {
10
11
  return undefined;
11
12
  }
12
- const layoutSettings = this.buildLayoutSettings(frontendLayout);
13
+ const layoutSettings = this.buildStrictLayoutSettings(frontendLayout);
13
14
  return {
14
15
  layout: template.layout,
15
16
  settings: layoutSettings,
16
17
  };
17
18
  }
19
+ translateFrontendLayoutToBackendLayout(frontendLayout) {
20
+ const internalLayout = { initial: 'TriggerStep', states: {} };
21
+ for (const idx in frontendLayout) {
22
+ if (frontendLayout[idx] === undefined) {
23
+ return undefined;
24
+ }
25
+ const backendStep = this.buildInternalStep(frontendLayout[idx].type, frontendLayout[Number.parseInt(idx) + 1] ?? undefined);
26
+ if (backendStep === undefined) {
27
+ return undefined;
28
+ }
29
+ internalLayout.states[frontendLayout[idx].id] = backendStep;
30
+ }
31
+ const layoutSettings = this.buildCustomLayoutSettings(frontendLayout);
32
+ return {
33
+ layout: internalLayout,
34
+ settings: layoutSettings,
35
+ };
36
+ }
18
37
  buildFrontendLayout(settings, sort = []) {
19
38
  return Object.keys(settings)
20
39
  .sort((a, b) => sort.indexOf(a) - sort.indexOf(b))
@@ -89,7 +108,23 @@ export class LayoutTranslator {
89
108
  }
90
109
  return template.gateLevel;
91
110
  }
92
- buildLayoutSettings(frontendLayout) {
111
+ buildStrictLayoutSettings(frontendLayout) {
112
+ return frontendLayout.reduce((acc, frontendStep) => {
113
+ const step = {
114
+ ...frontendStep.values,
115
+ stepType: frontendStep.type,
116
+ triggerType: frontendStep.type === 'trigger_step' ? frontendStep.triggerType : undefined,
117
+ taskType: frontendStep.type === 'translate_task_step' ||
118
+ frontendStep.type === 'review_task_step' ||
119
+ frontendStep.type === 'ai_mt_translation_step'
120
+ ? frontendStep.taskType
121
+ : undefined,
122
+ };
123
+ acc[frontendStep.id] = Object.fromEntries(Object.entries(step).filter(([_, value]) => value !== undefined));
124
+ return acc;
125
+ }, {});
126
+ }
127
+ buildCustomLayoutSettings(frontendLayout) {
93
128
  return frontendLayout.reduce((acc, frontendStep) => {
94
129
  const step = {
95
130
  ...frontendStep.values,
@@ -117,5 +152,17 @@ export class LayoutTranslator {
117
152
  const [_, template] = result;
118
153
  return template;
119
154
  }
155
+ buildInternalStep(stepType, nextStep) {
156
+ const targetId = nextStep?.id;
157
+ if (stepType !== 'end_step' && !targetId) {
158
+ // We can't have anything after the END step
159
+ return undefined;
160
+ }
161
+ const stepBuilder = FRONTEND_TO_BACKEND_STEPS_MAP[stepType];
162
+ if (!stepBuilder) {
163
+ return undefined;
164
+ }
165
+ return stepBuilder(targetId);
166
+ }
120
167
  }
121
168
  //# sourceMappingURL=LayoutTranslator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutTranslator.js","sourceRoot":"","sources":["../../src/workflow/LayoutTranslator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LayoutTranslator.js","sourceRoot":"","sources":["../../src/workflow/LayoutTranslator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { FrontendStep, WorkflowLayoutStep } from '@lokalise/maestro-common';
1
2
  export { SCHEDULED_TRIGGER_STEP_FORM_SCHEMA, SCHEDULED_TRIGGER_STEP_SETTINGS_SCHEMA, DEFAULT_SCHEDULED_TRIGGER_STEP_SETTINGS, } from './steps/scheduledTriggerStep.js';
2
3
  export type { ScheduledTriggerStepForm, ScheduledTriggerStepSettings, } from './steps/scheduledTriggerStep.js';
3
4
  export { AI_MT_TRANSLATION_STEP_FORM_SCHEMA, AI_MT_TRANSLATION_STEP_SETTINGS_SCHEMA, DEFAULT_AI_MT_TRANSLATION_STEP_SETTINGS, } from './steps/aiMtTranslationStep.js';
@@ -13,3 +14,7 @@ export type { EndStepForm, EndStepSettings } from './steps/endStep.js';
13
14
  export declare const STEP_TYPES: readonly ["trigger_step", "review_task_step", "translate_task_step", "clear_translations_step", "apply_tm_step", "end_step", "ai_mt_translation_step"];
14
15
  export type StepType = (typeof STEP_TYPES)[number];
15
16
  export { AVAILABLE_STEPS, MAX_STEPS } from './stepRegistry.js';
17
+ export type StrictFrontendStep = FrontendStep & {
18
+ type: StepType;
19
+ };
20
+ export declare const FRONTEND_TO_BACKEND_STEPS_MAP: Record<StepType, (targetId: FrontendStep['id'] | undefined) => WorkflowLayoutStep>;
@@ -15,4 +15,98 @@ export const STEP_TYPES = [
15
15
  'ai_mt_translation_step',
16
16
  ];
17
17
  export { AVAILABLE_STEPS, MAX_STEPS } from './stepRegistry.js';
18
+ export const FRONTEND_TO_BACKEND_STEPS_MAP = {
19
+ trigger_step: (targetId) => ({
20
+ on: {
21
+ WorkflowTriggerEvent: {
22
+ target: targetId,
23
+ actions: [{ type: 'storeWorkflowTriggerEventScope' }],
24
+ },
25
+ },
26
+ }),
27
+ clear_translations_step: (targetId) => ({
28
+ entry: [
29
+ {
30
+ type: 'clearTranslationsAction',
31
+ },
32
+ ],
33
+ on: {
34
+ TranslationsClearedEvent: {
35
+ target: targetId,
36
+ },
37
+ },
38
+ }),
39
+ translate_task_step: (targetId) => ({
40
+ entry: [
41
+ {
42
+ type: 'createTaskAction',
43
+ params: {
44
+ type: 'translation',
45
+ },
46
+ },
47
+ ],
48
+ on: {
49
+ TaskCreatedEvent: {
50
+ actions: [{ type: 'storeCreatedTaskId' }],
51
+ },
52
+ TaskClosedEvent: {
53
+ target: targetId,
54
+ },
55
+ },
56
+ }),
57
+ review_task_step: (targetId) => ({
58
+ entry: [
59
+ {
60
+ type: 'createTaskAction',
61
+ params: {
62
+ type: 'review',
63
+ },
64
+ },
65
+ ],
66
+ on: {
67
+ TaskCreatedEvent: {
68
+ actions: [{ type: 'storeCreatedTaskId' }],
69
+ },
70
+ TaskClosedEvent: {
71
+ target: targetId,
72
+ },
73
+ },
74
+ }),
75
+ ai_mt_translation_step: (targetId) => ({
76
+ entry: [
77
+ {
78
+ type: 'createTaskAction',
79
+ params: {
80
+ type: 'ai_mt_translation',
81
+ },
82
+ },
83
+ ],
84
+ on: {
85
+ TaskCreatedEvent: {
86
+ actions: [{ type: 'storeCreatedTaskId' }],
87
+ },
88
+ TaskSkippedEvent: {
89
+ target: targetId,
90
+ },
91
+ TaskClosedEvent: {
92
+ target: targetId,
93
+ },
94
+ },
95
+ }),
96
+ apply_tm_step: (targetId) => ({
97
+ entry: [
98
+ {
99
+ type: 'applyTmAction',
100
+ },
101
+ ],
102
+ on: {
103
+ TmAppliedEvent: {
104
+ target: targetId,
105
+ },
106
+ },
107
+ }),
108
+ end_step: () => ({
109
+ type: 'final',
110
+ }),
111
+ };
18
112
  //# sourceMappingURL=steps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/workflow/steps.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,sCAAsC,EACtC,uCAAuC,GACxC,MAAM,iCAAiC,CAAA;AAMxC,OAAO,EACL,kCAAkC,EAClC,sCAAsC,EACtC,uCAAuC,GACxC,MAAM,gCAAgC,CAAA;AAMvC,OAAO,EACL,+BAA+B,EAC/B,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,8BAA8B,CAAA;AAKrC,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,iCAAiC,EACjC,6CAA6C,GAC9C,MAAM,2BAA2B,CAAA;AAKlC,OAAO,EACL,mCAAmC,EACnC,uCAAuC,EACvC,wCAAwC,GAGzC,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,8BAA8B,GAG/B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAA;AAG3B,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,cAAc;IACd,kBAAkB;IAClB,qBAAqB;IACrB,yBAAyB;IACzB,eAAe;IACf,UAAU;IACV,wBAAwB;CAChB,CAAA;AAGV,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/workflow/steps.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokalise/maestro-expert-tenant-lib",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "license": "Apache-2.0",
5
5
  "homepage": "https://github.com/lokalise/maestro",
6
6
  "description": "This library provides shared objects, types and zod schemas for Maestro",