@hed-hog/operations 0.0.299 → 0.0.301

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.
Files changed (97) hide show
  1. package/dist/operations.controller.d.ts +713 -31
  2. package/dist/operations.controller.d.ts.map +1 -1
  3. package/dist/operations.controller.js +157 -0
  4. package/dist/operations.controller.js.map +1 -1
  5. package/dist/operations.module.d.ts.map +1 -1
  6. package/dist/operations.module.js +5 -1
  7. package/dist/operations.module.js.map +1 -1
  8. package/dist/operations.proposal.subscriber.d.ts +11 -0
  9. package/dist/operations.proposal.subscriber.d.ts.map +1 -0
  10. package/dist/operations.proposal.subscriber.js +80 -0
  11. package/dist/operations.proposal.subscriber.js.map +1 -0
  12. package/dist/operations.proposal.subscriber.spec.d.ts +2 -0
  13. package/dist/operations.proposal.subscriber.spec.d.ts.map +1 -0
  14. package/dist/operations.proposal.subscriber.spec.js +88 -0
  15. package/dist/operations.proposal.subscriber.spec.js.map +1 -0
  16. package/dist/operations.service.d.ts +490 -46
  17. package/dist/operations.service.d.ts.map +1 -1
  18. package/dist/operations.service.js +3590 -1267
  19. package/dist/operations.service.js.map +1 -1
  20. package/dist/operations.service.spec.d.ts +2 -0
  21. package/dist/operations.service.spec.d.ts.map +1 -0
  22. package/dist/operations.service.spec.js +159 -0
  23. package/dist/operations.service.spec.js.map +1 -0
  24. package/hedhog/data/menu.yaml +232 -198
  25. package/hedhog/data/role.yaml +23 -23
  26. package/hedhog/data/role_route.yaml +39 -0
  27. package/hedhog/data/route.yaml +447 -317
  28. package/hedhog/frontend/app/_components/collaborator-details-screen.tsx.ejs +8 -6
  29. package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +1163 -327
  30. package/hedhog/frontend/app/_components/collaborator-select-with-create.tsx.ejs +256 -0
  31. package/hedhog/frontend/app/_components/contract-content-editor.tsx.ejs +258 -0
  32. package/hedhog/frontend/app/_components/contract-creation-wizard.tsx.ejs +631 -0
  33. package/hedhog/frontend/app/_components/contract-details-screen.tsx.ejs +353 -27
  34. package/hedhog/frontend/app/_components/contract-form-screen.tsx.ejs +1926 -87
  35. package/hedhog/frontend/app/_components/contract-template-form-screen.tsx.ejs +526 -0
  36. package/hedhog/frontend/app/_components/contract-template-select-with-create.tsx.ejs +247 -0
  37. package/hedhog/frontend/app/_components/contract-wizard-sheet.tsx.ejs +3520 -0
  38. package/hedhog/frontend/app/_components/department-select-with-create.tsx.ejs +370 -0
  39. package/hedhog/frontend/app/_components/person-select-with-create.tsx.ejs +826 -0
  40. package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +1251 -364
  41. package/hedhog/frontend/app/_components/section-card.tsx.ejs +48 -13
  42. package/hedhog/frontend/app/_lib/api.ts.ejs +2 -5
  43. package/hedhog/frontend/app/_lib/types.ts.ejs +76 -33
  44. package/hedhog/frontend/app/_lib/utils/format.ts.ejs +85 -8
  45. package/hedhog/frontend/app/approvals/page.tsx.ejs +90 -54
  46. package/hedhog/frontend/app/collaborators/[id]/edit/page.tsx.ejs +2 -2
  47. package/hedhog/frontend/app/collaborators/[id]/page.tsx.ejs +2 -2
  48. package/hedhog/frontend/app/collaborators/page.tsx.ejs +597 -140
  49. package/hedhog/frontend/app/contracts/[id]/edit/page.tsx.ejs +2 -2
  50. package/hedhog/frontend/app/contracts/[id]/page.tsx.ejs +2 -2
  51. package/hedhog/frontend/app/contracts/page.tsx.ejs +941 -262
  52. package/hedhog/frontend/app/contracts/templates/page.tsx.ejs +384 -0
  53. package/hedhog/frontend/app/departments/page.tsx.ejs +442 -0
  54. package/hedhog/frontend/app/page.tsx.ejs +36 -12
  55. package/hedhog/frontend/app/projects/[id]/edit/page.tsx.ejs +2 -2
  56. package/hedhog/frontend/app/projects/new/page.tsx.ejs +2 -2
  57. package/hedhog/frontend/app/projects/page.tsx.ejs +264 -102
  58. package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +50 -28
  59. package/hedhog/frontend/app/time-off/page.tsx.ejs +57 -31
  60. package/hedhog/frontend/app/timesheets/page.tsx.ejs +85 -42
  61. package/hedhog/frontend/messages/en.json +473 -12
  62. package/hedhog/frontend/messages/pt.json +528 -66
  63. package/hedhog/table/operations_approval.yaml +49 -49
  64. package/hedhog/table/operations_approval_history.yaml +29 -29
  65. package/hedhog/table/operations_collaborator.yaml +87 -67
  66. package/hedhog/table/operations_collaborator_schedule_day.yaml +34 -34
  67. package/hedhog/table/operations_contract.yaml +121 -100
  68. package/hedhog/table/operations_contract_document.yaml +40 -23
  69. package/hedhog/table/operations_contract_financial_term.yaml +40 -40
  70. package/hedhog/table/operations_contract_history.yaml +27 -27
  71. package/hedhog/table/operations_contract_party.yaml +46 -46
  72. package/hedhog/table/operations_contract_revision.yaml +38 -38
  73. package/hedhog/table/operations_contract_signature.yaml +38 -38
  74. package/hedhog/table/operations_contract_template.yaml +58 -0
  75. package/hedhog/table/operations_department.yaml +24 -0
  76. package/hedhog/table/operations_project.yaml +54 -54
  77. package/hedhog/table/operations_project_assignment.yaml +55 -55
  78. package/hedhog/table/operations_schedule_adjustment_day.yaml +34 -34
  79. package/hedhog/table/operations_schedule_adjustment_request.yaml +53 -53
  80. package/hedhog/table/operations_time_off_request.yaml +57 -57
  81. package/hedhog/table/operations_timesheet.yaml +41 -41
  82. package/hedhog/table/operations_timesheet_entry.yaml +40 -40
  83. package/package.json +5 -3
  84. package/src/operations.controller.ts +304 -182
  85. package/src/operations.module.ts +26 -22
  86. package/src/operations.proposal.subscriber.spec.ts +121 -0
  87. package/src/operations.proposal.subscriber.ts +86 -0
  88. package/src/operations.service.spec.ts +210 -0
  89. package/src/operations.service.ts +7317 -3595
  90. package/dist/operations-data.controller.d.ts +0 -139
  91. package/dist/operations-data.controller.d.ts.map +0 -1
  92. package/dist/operations-data.controller.js +0 -113
  93. package/dist/operations-data.controller.js.map +0 -1
  94. package/dist/operations-growth.controller.d.ts +0 -48
  95. package/dist/operations-growth.controller.d.ts.map +0 -1
  96. package/dist/operations-growth.controller.js +0 -90
  97. package/dist/operations-growth.controller.js.map +0 -1
@@ -1,55 +1,55 @@
1
- columns:
2
- - type: pk
3
- - name: project_id
4
- type: fk
5
- references:
6
- table: operations_project
7
- column: id
8
- onDelete: CASCADE
9
- onUpdate: CASCADE
10
- - name: collaborator_id
11
- type: fk
12
- references:
13
- table: operations_collaborator
14
- column: id
15
- onDelete: CASCADE
16
- onUpdate: CASCADE
17
- - name: role_label
18
- type: varchar
19
- length: 120
20
- - name: allocation_percent
21
- type: decimal
22
- precision: 5
23
- scale: 2
24
- isNullable: true
25
- - name: weekly_hours
26
- type: decimal
27
- precision: 6
28
- scale: 2
29
- isNullable: true
30
- - name: is_billable
31
- type: boolean
32
- default: true
33
- - name: start_date
34
- type: date
35
- isNullable: true
36
- - name: end_date
37
- type: date
38
- isNullable: true
39
- - name: status
40
- type: enum
41
- values: [planned, active, completed, cancelled]
42
- default: active
43
- - name: deleted_at
44
- type: datetime
45
- isNullable: true
46
- - type: created_at
47
- - type: updated_at
48
-
49
- indices:
50
- - columns: [project_id]
51
- - columns: [collaborator_id]
52
- - columns: [status]
53
- - columns: [start_date]
54
- - columns: [end_date]
55
- - columns: [deleted_at]
1
+ columns:
2
+ - type: pk
3
+ - name: project_id
4
+ type: fk
5
+ references:
6
+ table: operations_project
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: collaborator_id
11
+ type: fk
12
+ references:
13
+ table: operations_collaborator
14
+ column: id
15
+ onDelete: CASCADE
16
+ onUpdate: CASCADE
17
+ - name: role_label
18
+ type: varchar
19
+ length: 120
20
+ - name: allocation_percent
21
+ type: decimal
22
+ precision: 5
23
+ scale: 2
24
+ isNullable: true
25
+ - name: weekly_hours
26
+ type: decimal
27
+ precision: 6
28
+ scale: 2
29
+ isNullable: true
30
+ - name: is_billable
31
+ type: boolean
32
+ default: true
33
+ - name: start_date
34
+ type: date
35
+ isNullable: true
36
+ - name: end_date
37
+ type: date
38
+ isNullable: true
39
+ - name: status
40
+ type: enum
41
+ values: [planned, active, completed, cancelled]
42
+ default: active
43
+ - name: deleted_at
44
+ type: datetime
45
+ isNullable: true
46
+ - type: created_at
47
+ - type: updated_at
48
+
49
+ indices:
50
+ - columns: [project_id]
51
+ - columns: [collaborator_id]
52
+ - columns: [status]
53
+ - columns: [start_date]
54
+ - columns: [end_date]
55
+ - columns: [deleted_at]
@@ -1,34 +1,34 @@
1
- columns:
2
- - type: pk
3
- - name: schedule_adjustment_request_id
4
- type: fk
5
- references:
6
- table: operations_schedule_adjustment_request
7
- column: id
8
- onDelete: CASCADE
9
- onUpdate: CASCADE
10
- - name: weekday
11
- type: enum
12
- values: [monday, tuesday, wednesday, thursday, friday, saturday, sunday]
13
- - name: is_working_day
14
- type: boolean
15
- default: true
16
- - name: start_time
17
- type: varchar
18
- length: 5
19
- isNullable: true
20
- - name: end_time
21
- type: varchar
22
- length: 5
23
- isNullable: true
24
- - name: break_minutes
25
- type: int
26
- isNullable: true
27
- - type: created_at
28
- - type: updated_at
29
-
30
- indices:
31
- - columns: [schedule_adjustment_request_id]
32
- - columns: [weekday]
33
- - columns: [schedule_adjustment_request_id, weekday]
34
- isUnique: true
1
+ columns:
2
+ - type: pk
3
+ - name: schedule_adjustment_request_id
4
+ type: fk
5
+ references:
6
+ table: operations_schedule_adjustment_request
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: weekday
11
+ type: enum
12
+ values: [monday, tuesday, wednesday, thursday, friday, saturday, sunday]
13
+ - name: is_working_day
14
+ type: boolean
15
+ default: true
16
+ - name: start_time
17
+ type: varchar
18
+ length: 5
19
+ isNullable: true
20
+ - name: end_time
21
+ type: varchar
22
+ length: 5
23
+ isNullable: true
24
+ - name: break_minutes
25
+ type: int
26
+ isNullable: true
27
+ - type: created_at
28
+ - type: updated_at
29
+
30
+ indices:
31
+ - columns: [schedule_adjustment_request_id]
32
+ - columns: [weekday]
33
+ - columns: [schedule_adjustment_request_id, weekday]
34
+ isUnique: true
@@ -1,53 +1,53 @@
1
- columns:
2
- - type: pk
3
- - name: collaborator_id
4
- type: fk
5
- references:
6
- table: operations_collaborator
7
- column: id
8
- onDelete: CASCADE
9
- onUpdate: CASCADE
10
- - name: approver_collaborator_id
11
- type: fk
12
- isNullable: true
13
- references:
14
- table: operations_collaborator
15
- column: id
16
- onDelete: SET NULL
17
- onUpdate: CASCADE
18
- - name: request_scope
19
- type: enum
20
- values: [temporary, permanent]
21
- default: temporary
22
- - name: effective_start_date
23
- type: date
24
- - name: effective_end_date
25
- type: date
26
- isNullable: true
27
- - name: status
28
- type: enum
29
- values: [draft, submitted, approved, rejected, cancelled]
30
- default: draft
31
- - name: reason
32
- type: text
33
- isNullable: true
34
- - name: submitted_at
35
- type: datetime
36
- isNullable: true
37
- - name: reviewed_at
38
- type: datetime
39
- isNullable: true
40
- - name: deleted_at
41
- type: datetime
42
- isNullable: true
43
- - type: created_at
44
- - type: updated_at
45
-
46
- indices:
47
- - columns: [collaborator_id]
48
- - columns: [approver_collaborator_id]
49
- - columns: [request_scope]
50
- - columns: [status]
51
- - columns: [effective_start_date]
52
- - columns: [effective_end_date]
53
- - columns: [deleted_at]
1
+ columns:
2
+ - type: pk
3
+ - name: collaborator_id
4
+ type: fk
5
+ references:
6
+ table: operations_collaborator
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: approver_collaborator_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: operations_collaborator
15
+ column: id
16
+ onDelete: SET NULL
17
+ onUpdate: CASCADE
18
+ - name: request_scope
19
+ type: enum
20
+ values: [temporary, permanent]
21
+ default: temporary
22
+ - name: effective_start_date
23
+ type: date
24
+ - name: effective_end_date
25
+ type: date
26
+ isNullable: true
27
+ - name: status
28
+ type: enum
29
+ values: [draft, submitted, approved, rejected, cancelled]
30
+ default: draft
31
+ - name: reason
32
+ type: text
33
+ isNullable: true
34
+ - name: submitted_at
35
+ type: datetime
36
+ isNullable: true
37
+ - name: reviewed_at
38
+ type: datetime
39
+ isNullable: true
40
+ - name: deleted_at
41
+ type: datetime
42
+ isNullable: true
43
+ - type: created_at
44
+ - type: updated_at
45
+
46
+ indices:
47
+ - columns: [collaborator_id]
48
+ - columns: [approver_collaborator_id]
49
+ - columns: [request_scope]
50
+ - columns: [status]
51
+ - columns: [effective_start_date]
52
+ - columns: [effective_end_date]
53
+ - columns: [deleted_at]
@@ -1,57 +1,57 @@
1
- columns:
2
- - type: pk
3
- - name: collaborator_id
4
- type: fk
5
- references:
6
- table: operations_collaborator
7
- column: id
8
- onDelete: CASCADE
9
- onUpdate: CASCADE
10
- - name: approver_collaborator_id
11
- type: fk
12
- isNullable: true
13
- references:
14
- table: operations_collaborator
15
- column: id
16
- onDelete: SET NULL
17
- onUpdate: CASCADE
18
- - name: request_type
19
- type: enum
20
- values: [vacation, personal_time, sick_leave, unpaid_leave, other]
21
- default: vacation
22
- - name: start_date
23
- type: date
24
- - name: end_date
25
- type: date
26
- - name: total_days
27
- type: decimal
28
- precision: 6
29
- scale: 2
30
- isNullable: true
31
- - name: status
32
- type: enum
33
- values: [draft, submitted, approved, rejected, cancelled]
34
- default: draft
35
- - name: reason
36
- type: text
37
- isNullable: true
38
- - name: submitted_at
39
- type: datetime
40
- isNullable: true
41
- - name: reviewed_at
42
- type: datetime
43
- isNullable: true
44
- - name: deleted_at
45
- type: datetime
46
- isNullable: true
47
- - type: created_at
48
- - type: updated_at
49
-
50
- indices:
51
- - columns: [collaborator_id]
52
- - columns: [approver_collaborator_id]
53
- - columns: [request_type]
54
- - columns: [status]
55
- - columns: [start_date]
56
- - columns: [end_date]
57
- - columns: [deleted_at]
1
+ columns:
2
+ - type: pk
3
+ - name: collaborator_id
4
+ type: fk
5
+ references:
6
+ table: operations_collaborator
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: approver_collaborator_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: operations_collaborator
15
+ column: id
16
+ onDelete: SET NULL
17
+ onUpdate: CASCADE
18
+ - name: request_type
19
+ type: enum
20
+ values: [vacation, personal_time, sick_leave, unpaid_leave, other]
21
+ default: vacation
22
+ - name: start_date
23
+ type: date
24
+ - name: end_date
25
+ type: date
26
+ - name: total_days
27
+ type: decimal
28
+ precision: 6
29
+ scale: 2
30
+ isNullable: true
31
+ - name: status
32
+ type: enum
33
+ values: [draft, submitted, approved, rejected, cancelled]
34
+ default: draft
35
+ - name: reason
36
+ type: text
37
+ isNullable: true
38
+ - name: submitted_at
39
+ type: datetime
40
+ isNullable: true
41
+ - name: reviewed_at
42
+ type: datetime
43
+ isNullable: true
44
+ - name: deleted_at
45
+ type: datetime
46
+ isNullable: true
47
+ - type: created_at
48
+ - type: updated_at
49
+
50
+ indices:
51
+ - columns: [collaborator_id]
52
+ - columns: [approver_collaborator_id]
53
+ - columns: [request_type]
54
+ - columns: [status]
55
+ - columns: [start_date]
56
+ - columns: [end_date]
57
+ - columns: [deleted_at]
@@ -1,33 +1,33 @@
1
- columns:
2
- - type: pk
3
- - name: collaborator_id
4
- type: fk
5
- references:
6
- table: operations_collaborator
7
- column: id
8
- onDelete: CASCADE
9
- onUpdate: CASCADE
10
- - name: approver_collaborator_id
11
- type: fk
12
- isNullable: true
13
- references:
14
- table: operations_collaborator
15
- column: id
16
- onDelete: SET NULL
17
- onUpdate: CASCADE
18
- - name: week_start_date
19
- type: date
20
- - name: week_end_date
21
- type: date
22
- - name: total_hours
23
- type: decimal
24
- precision: 6
25
- scale: 2
26
- isNullable: true
27
- - name: status
28
- type: enum
29
- values: [draft, submitted, approved, rejected]
30
- default: draft
1
+ columns:
2
+ - type: pk
3
+ - name: collaborator_id
4
+ type: fk
5
+ references:
6
+ table: operations_collaborator
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: approver_collaborator_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: operations_collaborator
15
+ column: id
16
+ onDelete: SET NULL
17
+ onUpdate: CASCADE
18
+ - name: week_start_date
19
+ type: date
20
+ - name: week_end_date
21
+ type: date
22
+ - name: total_hours
23
+ type: decimal
24
+ precision: 6
25
+ scale: 2
26
+ isNullable: true
27
+ - name: status
28
+ type: enum
29
+ values: [draft, submitted, approved, rejected]
30
+ default: draft
31
31
  - name: submitted_at
32
32
  type: datetime
33
33
  isNullable: true
@@ -41,14 +41,14 @@ columns:
41
41
  type: datetime
42
42
  isNullable: true
43
43
  - type: created_at
44
- - type: updated_at
45
-
46
- indices:
47
- - columns: [collaborator_id]
48
- - columns: [approver_collaborator_id]
49
- - columns: [status]
50
- - columns: [week_start_date]
51
- - columns: [week_end_date]
52
- - columns: [collaborator_id, week_start_date, week_end_date]
53
- isUnique: true
54
- - columns: [deleted_at]
44
+ - type: updated_at
45
+
46
+ indices:
47
+ - columns: [collaborator_id]
48
+ - columns: [approver_collaborator_id]
49
+ - columns: [status]
50
+ - columns: [week_start_date]
51
+ - columns: [week_end_date]
52
+ - columns: [collaborator_id, week_start_date, week_end_date]
53
+ isUnique: true
54
+ - columns: [deleted_at]
@@ -1,41 +1,41 @@
1
- columns:
2
- - type: pk
3
- - name: timesheet_id
4
- type: fk
5
- references:
6
- table: operations_timesheet
7
- column: id
8
- onDelete: CASCADE
9
- onUpdate: CASCADE
10
- - name: project_assignment_id
11
- type: fk
12
- isNullable: true
13
- references:
14
- table: operations_project_assignment
15
- column: id
16
- onDelete: SET NULL
17
- onUpdate: CASCADE
18
- - name: work_date
19
- type: date
20
- - name: activity_label
21
- type: varchar
22
- length: 255
23
- isNullable: true
24
- - name: hours
25
- type: decimal
26
- precision: 6
1
+ columns:
2
+ - type: pk
3
+ - name: timesheet_id
4
+ type: fk
5
+ references:
6
+ table: operations_timesheet
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: project_assignment_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: operations_project_assignment
15
+ column: id
16
+ onDelete: SET NULL
17
+ onUpdate: CASCADE
18
+ - name: work_date
19
+ type: date
20
+ - name: activity_label
21
+ type: varchar
22
+ length: 255
23
+ isNullable: true
24
+ - name: hours
25
+ type: decimal
26
+ precision: 6
27
27
  scale: 2
28
- - name: description
29
- type: text
30
- isNullable: true
31
- - name: deleted_at
32
- type: datetime
33
- isNullable: true
34
- - type: created_at
35
- - type: updated_at
36
-
37
- indices:
38
- - columns: [timesheet_id]
39
- - columns: [project_assignment_id]
40
- - columns: [work_date]
41
- - columns: [deleted_at]
28
+ - name: description
29
+ type: text
30
+ isNullable: true
31
+ - name: deleted_at
32
+ type: datetime
33
+ isNullable: true
34
+ - type: created_at
35
+ - type: updated_at
36
+
37
+ indices:
38
+ - columns: [timesheet_id]
39
+ - columns: [project_assignment_id]
40
+ - columns: [work_date]
41
+ - columns: [deleted_at]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hed-hog/operations",
3
- "version": "0.0.299",
3
+ "version": "0.0.301",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "dependencies": {
@@ -11,10 +11,11 @@
11
11
  "@nestjs/mapped-types": "*",
12
12
  "@hed-hog/api": "0.0.6",
13
13
  "@hed-hog/api-types": "0.0.1",
14
- "@hed-hog/core": "0.0.299",
14
+ "@hed-hog/api-prisma": "0.0.6",
15
15
  "@hed-hog/api-locale": "0.0.14",
16
16
  "@hed-hog/api-pagination": "0.0.7",
17
- "@hed-hog/api-prisma": "0.0.6"
17
+ "@hed-hog/core": "0.0.301",
18
+ "@hed-hog/contact": "0.0.301"
18
19
  },
19
20
  "exports": {
20
21
  ".": {
@@ -30,6 +31,7 @@
30
31
  ],
31
32
  "scripts": {
32
33
  "lint": "eslint \"{src,apps,libs,test}/**/*.ts\"",
34
+ "test": "jest --config jest.config.ts --runInBand",
33
35
  "prebuild": "pnpm --dir ../.. exec ts-node ./scripts/build-dependencies.ts libraries/operations",
34
36
  "build": "tsc --project tsconfig.production.json",
35
37
  "patch": "pnpm exec ts-node ../../scripts/patch.ts libraries/operations",