@objectstack/plugin-approvals 16.1.0 → 17.0.0-rc.1

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.
@@ -1,205 +0,0 @@
1
- // Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
2
-
3
- /**
4
- * Auto-generated by 'os i18n extract' for locale 'en'.
5
- * Edit translations in place; re-run extract (with --merge) to fill new gaps.
6
- * Do not hand-edit the structure — only the leaf string values.
7
- */
8
-
9
- import type { TranslationData } from '@objectstack/spec/system';
10
-
11
- export const enObjects: NonNullable<TranslationData['objects']> = {
12
- sys_approval_request: {
13
- label: "Approval Request",
14
- pluralLabel: "Approval Requests",
15
- description: "Live approval instance tracked per submission",
16
- fields: {
17
- id: {
18
- label: "Request ID"
19
- },
20
- organization_id: {
21
- label: "Organization",
22
- help: "Tenant that owns this approval request (propagated from submitter context)"
23
- },
24
- process_name: {
25
- label: "Source",
26
- help: "Origin of the request — `flow:<flowName|nodeId>` for node-driven approvals"
27
- },
28
- object_name: {
29
- label: "Object"
30
- },
31
- record_id: {
32
- label: "Record ID"
33
- },
34
- submitter_id: {
35
- label: "Submitter"
36
- },
37
- submitter_comment: {
38
- label: "Submitter Comment"
39
- },
40
- status: {
41
- label: "Status",
42
- help: "Lifecycle state of the request",
43
- options: {
44
- pending: "pending",
45
- approved: "approved",
46
- rejected: "rejected",
47
- recalled: "recalled"
48
- }
49
- },
50
- current_step: {
51
- label: "Current Step",
52
- help: "Machine name of the step awaiting approval"
53
- },
54
- current_step_index: {
55
- label: "Current Step Index"
56
- },
57
- pending_approvers: {
58
- label: "Pending Approvers",
59
- help: "Comma-separated user ids who can act on the current step"
60
- },
61
- payload_json: {
62
- label: "Snapshot",
63
- help: "Record snapshot at submission time"
64
- },
65
- flow_run_id: {
66
- label: "Flow Run",
67
- help: "Suspended automation run id this request gates (ADR-0019). The decision resumes it."
68
- },
69
- flow_node_id: {
70
- label: "Flow Node",
71
- help: "Approval node id within the flow that opened this request (ADR-0019)."
72
- },
73
- node_config_json: {
74
- label: "Node Config",
75
- help: "Snapshot of the Approval node config (approvers/behavior) for node-driven requests (ADR-0019)."
76
- },
77
- completed_at: {
78
- label: "Completed At"
79
- },
80
- created_at: {
81
- label: "Created At"
82
- },
83
- updated_at: {
84
- label: "Updated At"
85
- }
86
- },
87
- _views: {
88
- my_pending: {
89
- label: "My Pending"
90
- },
91
- submitted_by_me: {
92
- label: "I Submitted"
93
- },
94
- completed: {
95
- label: "Completed"
96
- },
97
- all_requests: {
98
- label: "All"
99
- }
100
- }
101
- },
102
- sys_approval_action: {
103
- label: "Approval Action",
104
- pluralLabel: "Approval Actions",
105
- description: "Append-only audit trail for approval actions",
106
- fields: {
107
- id: {
108
- label: "Action ID"
109
- },
110
- organization_id: {
111
- label: "Organization",
112
- help: "Tenant that owns this action (mirrors the parent request)"
113
- },
114
- request_id: {
115
- label: "Request"
116
- },
117
- step_name: {
118
- label: "Step",
119
- help: "Machine name of the step at the time of the action"
120
- },
121
- step_index: {
122
- label: "Step Index"
123
- },
124
- action: {
125
- label: "Action",
126
- options: {
127
- submit: "submit",
128
- approve: "approve",
129
- reject: "reject",
130
- recall: "recall",
131
- escalate: "escalate"
132
- }
133
- },
134
- actor_id: {
135
- label: "Actor"
136
- },
137
- comment: {
138
- label: "Comment"
139
- },
140
- created_at: {
141
- label: "Created At"
142
- }
143
- },
144
- _views: {
145
- recent: {
146
- label: "Recent"
147
- },
148
- by_actor: {
149
- label: "By Actor"
150
- },
151
- all_actions: {
152
- label: "All"
153
- }
154
- }
155
- },
156
- sys_approval_delegation: {
157
- label: "Approval Delegation",
158
- pluralLabel: "Approval Delegations",
159
- description: "Self-service out-of-office rule: route this user's approver slots to a delegate within a time window (#1322 M1).",
160
- fields: {
161
- id: {
162
- label: "Delegation ID"
163
- },
164
- delegator_id: {
165
- label: "Delegator",
166
- help: "The user going out of office; their individually-routed approver slots are rerouted while active."
167
- },
168
- delegate_id: {
169
- label: "Delegate",
170
- help: "The backup who receives the delegator's approvals while this rule is active. Acts under their own identity."
171
- },
172
- valid_from: {
173
- label: "Valid From",
174
- help: "Rule is inactive before this instant. Null = active immediately. Enforced at resolution time via isGrantActive (ADR-0091 D2 predicate) — never by a background job."
175
- },
176
- valid_until: {
177
- label: "Valid Until",
178
- help: "Rule is inactive AT and AFTER this instant (half-open [from, until), UTC). Null = never expires."
179
- },
180
- reason: {
181
- label: "Reason",
182
- help: "Why the delegation exists (e.g. \"Annual leave 5/26\u20135/30\"). Recorded on the substitution audit row."
183
- },
184
- organization_id: {
185
- label: "Organization",
186
- help: "Tenant that owns this rule; null = applies across tenants for this delegator."
187
- },
188
- created_at: {
189
- label: "Created At"
190
- },
191
- updated_at: {
192
- label: "Updated At"
193
- }
194
- },
195
- _views: {
196
- active: {
197
- label: "Active",
198
- emptyState: {
199
- title: "No delegations",
200
- message: "Declare an out-of-office delegation so approvals route to a backup while you are away."
201
- }
202
- }
203
- }
204
- }
205
- };
@@ -1,205 +0,0 @@
1
- // Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
2
-
3
- /**
4
- * Auto-generated by 'os i18n extract' for locale 'es-ES'.
5
- * Edit translations in place; re-run extract (with --merge) to fill new gaps.
6
- * Do not hand-edit the structure — only the leaf string values.
7
- */
8
-
9
- import type { TranslationData } from '@objectstack/spec/system';
10
-
11
- export const esESObjects: NonNullable<TranslationData['objects']> = {
12
- sys_approval_request: {
13
- label: "Solicitud de aprobación",
14
- pluralLabel: "Solicitudes de aprobación",
15
- description: "Instancia activa de aprobación registrada por envío",
16
- fields: {
17
- id: {
18
- label: "ID de solicitud"
19
- },
20
- organization_id: {
21
- label: "Organización",
22
- help: "Tenant que posee esta solicitud de aprobación (propagado desde el contexto del solicitante)."
23
- },
24
- process_name: {
25
- label: "Origen",
26
- help: "Origen de la solicitud — `flow:<flowName|nodeId>` para aprobaciones por nodo"
27
- },
28
- object_name: {
29
- label: "Objeto"
30
- },
31
- record_id: {
32
- label: "ID de registro"
33
- },
34
- submitter_id: {
35
- label: "Solicitante"
36
- },
37
- submitter_comment: {
38
- label: "Comentario del solicitante"
39
- },
40
- status: {
41
- label: "Estado",
42
- help: "Estado del ciclo de vida de la solicitud.",
43
- options: {
44
- pending: "Pendiente",
45
- approved: "Aprobada",
46
- rejected: "Rechazada",
47
- recalled: "Retirada"
48
- }
49
- },
50
- current_step: {
51
- label: "Paso actual",
52
- help: "Nombre técnico del paso pendiente de aprobación."
53
- },
54
- current_step_index: {
55
- label: "Índice del paso actual"
56
- },
57
- pending_approvers: {
58
- label: "Aprobadores pendientes",
59
- help: "ID de usuario separados por comas que pueden actuar en el paso actual."
60
- },
61
- payload_json: {
62
- label: "Instantánea",
63
- help: "Instantánea del registro en el momento del envío."
64
- },
65
- flow_run_id: {
66
- label: "Flow Run",
67
- help: "Suspended automation run id this request gates (ADR-0019). The decision resumes it."
68
- },
69
- flow_node_id: {
70
- label: "Flow Node",
71
- help: "Approval node id within the flow that opened this request (ADR-0019)."
72
- },
73
- node_config_json: {
74
- label: "Node Config",
75
- help: "Snapshot of the Approval node config (approvers/behavior) for node-driven requests (ADR-0019)."
76
- },
77
- completed_at: {
78
- label: "Completado el"
79
- },
80
- created_at: {
81
- label: "Creado el"
82
- },
83
- updated_at: {
84
- label: "Actualizado el"
85
- }
86
- },
87
- _views: {
88
- my_pending: {
89
- label: "Mis pendientes"
90
- },
91
- submitted_by_me: {
92
- label: "Enviadas por mí"
93
- },
94
- completed: {
95
- label: "Completadas"
96
- },
97
- all_requests: {
98
- label: "Todas"
99
- }
100
- }
101
- },
102
- sys_approval_action: {
103
- label: "Acción de aprobación",
104
- pluralLabel: "Acciones de aprobación",
105
- description: "Registro de auditoría append-only para acciones de aprobación",
106
- fields: {
107
- id: {
108
- label: "ID de acción"
109
- },
110
- organization_id: {
111
- label: "Organización",
112
- help: "Tenant que posee esta acción (refleja la solicitud principal)."
113
- },
114
- request_id: {
115
- label: "Solicitud"
116
- },
117
- step_name: {
118
- label: "Paso",
119
- help: "Nombre técnico del paso en el momento de la acción."
120
- },
121
- step_index: {
122
- label: "Índice del paso"
123
- },
124
- action: {
125
- label: "Acción",
126
- options: {
127
- submit: "Enviar",
128
- approve: "Aprobar",
129
- reject: "Rechazar",
130
- recall: "Retirar",
131
- escalate: "Escalar"
132
- }
133
- },
134
- actor_id: {
135
- label: "Actor"
136
- },
137
- comment: {
138
- label: "Comentario"
139
- },
140
- created_at: {
141
- label: "Creado el"
142
- }
143
- },
144
- _views: {
145
- recent: {
146
- label: "Recientes"
147
- },
148
- by_actor: {
149
- label: "Por actor"
150
- },
151
- all_actions: {
152
- label: "Todas"
153
- }
154
- }
155
- },
156
- sys_approval_delegation: {
157
- label: "Approval Delegation",
158
- pluralLabel: "Approval Delegations",
159
- description: "Self-service out-of-office rule: route this user's approver slots to a delegate within a time window (#1322 M1).",
160
- fields: {
161
- id: {
162
- label: "Delegation ID"
163
- },
164
- delegator_id: {
165
- label: "Delegator",
166
- help: "The user going out of office; their individually-routed approver slots are rerouted while active."
167
- },
168
- delegate_id: {
169
- label: "Delegate",
170
- help: "The backup who receives the delegator's approvals while this rule is active. Acts under their own identity."
171
- },
172
- valid_from: {
173
- label: "Valid From",
174
- help: "Rule is inactive before this instant. Null = active immediately. Enforced at resolution time via isGrantActive (ADR-0091 D2 predicate) — never by a background job."
175
- },
176
- valid_until: {
177
- label: "Valid Until",
178
- help: "Rule is inactive AT and AFTER this instant (half-open [from, until), UTC). Null = never expires."
179
- },
180
- reason: {
181
- label: "Reason",
182
- help: "Why the delegation exists (e.g. \"Annual leave 5/26\u20135/30\"). Recorded on the substitution audit row."
183
- },
184
- organization_id: {
185
- label: "Organization",
186
- help: "Tenant that owns this rule; null = applies across tenants for this delegator."
187
- },
188
- created_at: {
189
- label: "Created At"
190
- },
191
- updated_at: {
192
- label: "Updated At"
193
- }
194
- },
195
- _views: {
196
- active: {
197
- label: "Active",
198
- emptyState: {
199
- title: "No delegations",
200
- message: "Declare an out-of-office delegation so approvals route to a backup while you are away."
201
- }
202
- }
203
- }
204
- }
205
- };
@@ -1,23 +0,0 @@
1
- // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.
2
-
3
- /**
4
- * ApprovalsTranslations — i18n bundle owned by this plugin (ADR-0029 D8).
5
- *
6
- * Object label/field/view/action translations for the sys_* objects this
7
- * plugin owns. Loaded at runtime via the plugin's `kernel:ready` hook
8
- * (`i18n.loadTranslations`). Regenerate with `os i18n extract` against
9
- * `scripts/i18n-extract.config.ts`.
10
- */
11
-
12
- import type { TranslationBundle } from '@objectstack/spec/system';
13
- import { enObjects } from './en.objects.generated.js';
14
- import { zhCNObjects } from './zh-CN.objects.generated.js';
15
- import { jaJPObjects } from './ja-JP.objects.generated.js';
16
- import { esESObjects } from './es-ES.objects.generated.js';
17
-
18
- export const ApprovalsTranslations: TranslationBundle = {
19
- en: { objects: enObjects },
20
- 'zh-CN': { objects: zhCNObjects },
21
- 'ja-JP': { objects: jaJPObjects },
22
- 'es-ES': { objects: esESObjects },
23
- };
@@ -1,205 +0,0 @@
1
- // Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
2
-
3
- /**
4
- * Auto-generated by 'os i18n extract' for locale 'ja-JP'.
5
- * Edit translations in place; re-run extract (with --merge) to fill new gaps.
6
- * Do not hand-edit the structure — only the leaf string values.
7
- */
8
-
9
- import type { TranslationData } from '@objectstack/spec/system';
10
-
11
- export const jaJPObjects: NonNullable<TranslationData['objects']> = {
12
- sys_approval_request: {
13
- label: "承認リクエスト",
14
- pluralLabel: "承認リクエスト",
15
- description: "送信ごとに追跡されるライブ承認インスタンス",
16
- fields: {
17
- id: {
18
- label: "リクエスト ID"
19
- },
20
- organization_id: {
21
- label: "組織",
22
- help: "この承認リクエストを所有するテナント(送信者コンテキストから伝播)"
23
- },
24
- process_name: {
25
- label: "ソース",
26
- help: "リクエストの発生元 — ノード駆動の承認では `flow:<flowName|nodeId>`"
27
- },
28
- object_name: {
29
- label: "オブジェクト"
30
- },
31
- record_id: {
32
- label: "レコード ID"
33
- },
34
- submitter_id: {
35
- label: "送信者"
36
- },
37
- submitter_comment: {
38
- label: "送信者コメント"
39
- },
40
- status: {
41
- label: "ステータス",
42
- help: "リクエストのライフサイクル状態",
43
- options: {
44
- pending: "保留中",
45
- approved: "承認済み",
46
- rejected: "却下済み",
47
- recalled: "取り消し済み"
48
- }
49
- },
50
- current_step: {
51
- label: "現在のステップ",
52
- help: "承認待ちのステップの機械名"
53
- },
54
- current_step_index: {
55
- label: "現在のステップ番号"
56
- },
57
- pending_approvers: {
58
- label: "承認待ち承認者",
59
- help: "現在のステップを処理できるユーザー ID のカンマ区切りリスト"
60
- },
61
- payload_json: {
62
- label: "スナップショット",
63
- help: "送信時のレコードスナップショット"
64
- },
65
- flow_run_id: {
66
- label: "Flow Run",
67
- help: "Suspended automation run id this request gates (ADR-0019). The decision resumes it."
68
- },
69
- flow_node_id: {
70
- label: "Flow Node",
71
- help: "Approval node id within the flow that opened this request (ADR-0019)."
72
- },
73
- node_config_json: {
74
- label: "Node Config",
75
- help: "Snapshot of the Approval node config (approvers/behavior) for node-driven requests (ADR-0019)."
76
- },
77
- completed_at: {
78
- label: "完了日時"
79
- },
80
- created_at: {
81
- label: "作成日時"
82
- },
83
- updated_at: {
84
- label: "更新日時"
85
- }
86
- },
87
- _views: {
88
- my_pending: {
89
- label: "自分の保留中"
90
- },
91
- submitted_by_me: {
92
- label: "自分が送信"
93
- },
94
- completed: {
95
- label: "完了済み"
96
- },
97
- all_requests: {
98
- label: "すべて"
99
- }
100
- }
101
- },
102
- sys_approval_action: {
103
- label: "承認アクション",
104
- pluralLabel: "承認アクション",
105
- description: "承認アクションの追記専用監査証跡",
106
- fields: {
107
- id: {
108
- label: "アクション ID"
109
- },
110
- organization_id: {
111
- label: "組織",
112
- help: "このアクションを所有するテナント(親リクエストと同じ)"
113
- },
114
- request_id: {
115
- label: "リクエスト"
116
- },
117
- step_name: {
118
- label: "ステップ",
119
- help: "アクション時点のステップの機械名"
120
- },
121
- step_index: {
122
- label: "ステップ番号"
123
- },
124
- action: {
125
- label: "アクション",
126
- options: {
127
- submit: "申請",
128
- approve: "承認",
129
- reject: "却下",
130
- recall: "取消",
131
- escalate: "エスカレーション"
132
- }
133
- },
134
- actor_id: {
135
- label: "操作者"
136
- },
137
- comment: {
138
- label: "コメント"
139
- },
140
- created_at: {
141
- label: "作成日時"
142
- }
143
- },
144
- _views: {
145
- recent: {
146
- label: "最近"
147
- },
148
- by_actor: {
149
- label: "操作者別"
150
- },
151
- all_actions: {
152
- label: "すべて"
153
- }
154
- }
155
- },
156
- sys_approval_delegation: {
157
- label: "Approval Delegation",
158
- pluralLabel: "Approval Delegations",
159
- description: "Self-service out-of-office rule: route this user's approver slots to a delegate within a time window (#1322 M1).",
160
- fields: {
161
- id: {
162
- label: "Delegation ID"
163
- },
164
- delegator_id: {
165
- label: "Delegator",
166
- help: "The user going out of office; their individually-routed approver slots are rerouted while active."
167
- },
168
- delegate_id: {
169
- label: "Delegate",
170
- help: "The backup who receives the delegator's approvals while this rule is active. Acts under their own identity."
171
- },
172
- valid_from: {
173
- label: "Valid From",
174
- help: "Rule is inactive before this instant. Null = active immediately. Enforced at resolution time via isGrantActive (ADR-0091 D2 predicate) — never by a background job."
175
- },
176
- valid_until: {
177
- label: "Valid Until",
178
- help: "Rule is inactive AT and AFTER this instant (half-open [from, until), UTC). Null = never expires."
179
- },
180
- reason: {
181
- label: "Reason",
182
- help: "Why the delegation exists (e.g. \"Annual leave 5/26\u20135/30\"). Recorded on the substitution audit row."
183
- },
184
- organization_id: {
185
- label: "Organization",
186
- help: "Tenant that owns this rule; null = applies across tenants for this delegator."
187
- },
188
- created_at: {
189
- label: "Created At"
190
- },
191
- updated_at: {
192
- label: "Updated At"
193
- }
194
- },
195
- _views: {
196
- active: {
197
- label: "Active",
198
- emptyState: {
199
- title: "No delegations",
200
- message: "Declare an out-of-office delegation so approvals route to a backup while you are away."
201
- }
202
- }
203
- }
204
- }
205
- };