@approvio/api 0.0.39 → 0.0.41

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/README.md CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  This repository contains the OpenAPI specification for the Approvio backend, the tooling to generate the TypeScript API client, and TypeScript validators for the generated models using `fp-ts`.
4
4
 
5
-
6
5
  ## Project Structure
7
6
 
8
7
  - `openapi.yaml`: Main entry point for the OpenAPI 3.0 specification.
@@ -1,4 +1,4 @@
1
- import { a as Workflow, d as ListGroups200Response, f as Pagination, i as ListWorkflows200Response, m as GroupInfo, n as User, p as Group, r as TokenResponse, t as WorkflowCreate, u as UserSummary } from "../workflow-create-YXAJ6Gr8.cjs";
1
+ import { a as Workflow, d as UserSummary, f as ListGroups200Response, h as GroupInfo, i as ListWorkflows200Response, m as Group, n as User, p as Pagination, r as TokenResponse, t as WorkflowCreate } from "../workflow-create-CSCUMfYW.cjs";
2
2
 
3
3
  //#region mocks/user.fixtures.d.ts
4
4
  declare const MOCK_USER_ID = "e6e08687-2189-4710-91b5-479cd25a9119";
@@ -1,4 +1,4 @@
1
- import { a as Workflow, d as ListGroups200Response, f as Pagination, i as ListWorkflows200Response, m as GroupInfo, n as User, p as Group, r as TokenResponse, t as WorkflowCreate, u as UserSummary } from "../workflow-create-BWzcjT6i.mjs";
1
+ import { a as Workflow, d as UserSummary, f as ListGroups200Response, h as GroupInfo, i as ListWorkflows200Response, m as Group, n as User, p as Pagination, r as TokenResponse, t as WorkflowCreate } from "../workflow-create-DyEyaGqO.mjs";
2
2
 
3
3
  //#region mocks/user.fixtures.d.ts
4
4
  declare const MOCK_USER_ID = "e6e08687-2189-4710-91b5-479cd25a9119";
@@ -29,8 +29,8 @@ fp_ts_Array = __toESM(fp_ts_Array);
29
29
  //#region generated/openapi/model/agent-token-request.ts
30
30
  let AgentTokenRequest;
31
31
  (function(_AgentTokenRequest) {
32
- _AgentTokenRequest.GrantTypeEnum = { UrnietfparamsoauthgrantTypejwtBearer: "urn:ietf:params:oauth:grant-type:jwt-bearer" };
33
- _AgentTokenRequest.ClientAssertionTypeEnum = { UrnietfparamsoauthclientAssertionTypejwtBearer: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" };
32
+ _AgentTokenRequest.GrantTypeEnum = { UrnIetfParamsOauthGrantTypeJwtBearer: "urn:ietf:params:oauth:grant-type:jwt-bearer" };
33
+ _AgentTokenRequest.ClientAssertionTypeEnum = { UrnIetfParamsOauthClientAssertionTypeJwtBearer: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" };
34
34
  })(AgentTokenRequest || (AgentTokenRequest = {}));
35
35
  //#endregion
36
36
  //#region generated/openapi/model/and-rule.ts
@@ -57,6 +57,26 @@ let GroupScope;
57
57
  _GroupScope.TypeEnum = { Group: "group" };
58
58
  })(GroupScope || (GroupScope = {}));
59
59
  //#endregion
60
+ //#region generated/openapi/model/list-workflow-votes-params.ts
61
+ let ListWorkflowVotesParams;
62
+ (function(_ListWorkflowVotesParams) {
63
+ _ListWorkflowVotesParams.OrderByEnum = {
64
+ TimestampAsc: "TIMESTAMP:ASC",
65
+ TimestampDesc: "TIMESTAMP:DESC"
66
+ };
67
+ })(ListWorkflowVotesParams || (ListWorkflowVotesParams = {}));
68
+ //#endregion
69
+ //#region generated/openapi/model/list-workflows-params.ts
70
+ let ListWorkflowsParams;
71
+ (function(_ListWorkflowsParams) {
72
+ _ListWorkflowsParams.OrderByEnum = {
73
+ CreatedAtAsc: "CREATED_AT:ASC",
74
+ CreatedAtDesc: "CREATED_AT:DESC",
75
+ UpdatedAtAsc: "UPDATED_AT:ASC",
76
+ UpdatedAtDesc: "UPDATED_AT:DESC"
77
+ };
78
+ })(ListWorkflowsParams || (ListWorkflowsParams = {}));
79
+ //#endregion
60
80
  //#region generated/openapi/model/or-rule.ts
61
81
  let OrRule;
62
82
  (function(_OrRule) {
@@ -104,22 +124,19 @@ let WebhookAction;
104
124
  };
105
125
  })(WebhookAction || (WebhookAction = {}));
106
126
  //#endregion
107
- //#region generated/openapi/model/workflow-template.ts
108
- let WorkflowTemplate;
109
- (function(_WorkflowTemplate) {
110
- _WorkflowTemplate.StatusEnum = {
111
- Active: "ACTIVE",
112
- PendingDeprecation: "PENDING_DEPRECATION",
113
- Deprecated: "DEPRECATED"
114
- };
115
- })(WorkflowTemplate || (WorkflowTemplate = {}));
116
- //#endregion
117
127
  //#region generated/openapi/model/workflow-template-scope.ts
118
128
  let WorkflowTemplateScope;
119
129
  (function(_WorkflowTemplateScope) {
120
130
  _WorkflowTemplateScope.TypeEnum = { WorkflowTemplate: "workflow_template" };
121
131
  })(WorkflowTemplateScope || (WorkflowTemplateScope = {}));
122
132
  //#endregion
133
+ //#region generated/openapi/model/workflow-template-status.ts
134
+ const WorkflowTemplateStatus = {
135
+ Active: "ACTIVE",
136
+ PendingDeprecation: "PENDING_DEPRECATION",
137
+ Deprecated: "DEPRECATED"
138
+ };
139
+ //#endregion
123
140
  //#region src/utils/validation.utils.ts
124
141
  function hasOwnProperty(obj, prop) {
125
142
  return Object.hasOwn(obj, prop);
@@ -133,6 +150,17 @@ function isNumber(value) {
133
150
  function isArray(value) {
134
151
  return Array.isArray(value);
135
152
  }
153
+ function isStringBigInt(value) {
154
+ if (typeof value !== "string") return false;
155
+ try {
156
+ BigInt(value);
157
+ } catch {
158
+ return false;
159
+ }
160
+ return true;
161
+ }
162
+ const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
163
+ const isUUIDv4 = (value) => value.match(UUID_REGEX) !== null;
136
164
  //#endregion
137
165
  //#region src/validators/auth.validators.ts
138
166
  function validateTokenResponse(object) {
@@ -221,6 +249,11 @@ function validateOidcCallbackRequest(object) {
221
249
  });
222
250
  }
223
251
  //#endregion
252
+ //#region src/utils/enum.ts
253
+ function getStringAsEnum(str, enumType) {
254
+ if (Object.values(enumType).includes(str)) return str;
255
+ }
256
+ //#endregion
224
257
  //#region src/validators/groups.validators.ts
225
258
  function validateGroup(object) {
226
259
  if (typeof object !== "object" || object === null) return (0, fp_ts_Either.left)("malformed_object");
@@ -433,11 +466,6 @@ function validateGetEntityInfo200Response(object) {
433
466
  });
434
467
  }
435
468
  //#endregion
436
- //#region src/utils/enum.ts
437
- function getStringAsEnum(str, enumType) {
438
- if (Object.values(enumType).includes(str)) return str;
439
- }
440
- //#endregion
441
469
  //#region src/utils/types.ts
442
470
  function prefixLeft(prefix, value) {
443
471
  return `${prefix}_${value}`;
@@ -558,7 +586,7 @@ function validateWorkflowTemplate(object) {
558
586
  if (!hasOwnProperty(object, "name") || !isNonEmptyString(object.name)) return (0, fp_ts_Either.left)("invalid_name");
559
587
  if (!hasOwnProperty(object, "version") || !isNonEmptyString(object.version)) return (0, fp_ts_Either.left)("invalid_version");
560
588
  if (!hasOwnProperty(object, "status") || typeof object.status !== "string") return (0, fp_ts_Either.left)("invalid_status");
561
- const status = getStringAsEnum(object.status, WorkflowTemplate.StatusEnum);
589
+ const status = getStringAsEnum(object.status, WorkflowTemplateStatus);
562
590
  if (!status) return (0, fp_ts_Either.left)("invalid_status");
563
591
  if (!hasOwnProperty(object, "allowVotingOnDeprecatedTemplate") || typeof object.allowVotingOnDeprecatedTemplate !== "boolean") return (0, fp_ts_Either.left)("invalid_allow_voting");
564
592
  if (!hasOwnProperty(object, "approvalRule")) return (0, fp_ts_Either.left)("missing_approval_rule");
@@ -567,6 +595,9 @@ function validateWorkflowTemplate(object) {
567
595
  if (!hasOwnProperty(object, "spaceId") || !isNonEmptyString(object.spaceId)) return (0, fp_ts_Either.left)("invalid_space_id");
568
596
  if (!hasOwnProperty(object, "createdAt") || !isNonEmptyString(object.createdAt)) return (0, fp_ts_Either.left)("invalid_created_at");
569
597
  if (!hasOwnProperty(object, "updatedAt") || !isNonEmptyString(object.updatedAt)) return (0, fp_ts_Either.left)("invalid_updated_at");
598
+ if (!hasOwnProperty(object, "concurrencyControl")) return (0, fp_ts_Either.left)("invalid_concurrency_control");
599
+ const concurrencyControlValidation = validateConcurrencyControl(object.concurrencyControl);
600
+ if ((0, fp_ts_Either.isLeft)(concurrencyControlValidation)) return (0, fp_ts_Either.left)("invalid_concurrency_control");
570
601
  const result = {
571
602
  id: object.id,
572
603
  name: object.name,
@@ -576,7 +607,8 @@ function validateWorkflowTemplate(object) {
576
607
  approvalRule: approvalRuleValidation.right,
577
608
  spaceId: object.spaceId,
578
609
  createdAt: object.createdAt,
579
- updatedAt: object.updatedAt
610
+ updatedAt: object.updatedAt,
611
+ concurrencyControl: concurrencyControlValidation.right
580
612
  };
581
613
  if (hasOwnProperty(object, "description") && object.description !== void 0) {
582
614
  if (typeof object.description !== "string") return (0, fp_ts_Either.left)("invalid_description");
@@ -642,7 +674,10 @@ function validateWorkflowTemplateCreate(object) {
642
674
  }
643
675
  function validateWorkflowTemplateUpdate(object) {
644
676
  if (typeof object !== "object" || object === null) return (0, fp_ts_Either.left)("malformed_object");
645
- const result = {};
677
+ if (!hasOwnProperty(object, "concurrencyControl")) return (0, fp_ts_Either.left)("invalid_concurrency_control");
678
+ const concurrencyControlValidation = validateConcurrencyControl(object.concurrencyControl);
679
+ if ((0, fp_ts_Either.isLeft)(concurrencyControlValidation)) return (0, fp_ts_Either.left)("invalid_concurrency_control");
680
+ const result = { concurrencyControl: concurrencyControlValidation.right };
646
681
  if (hasOwnProperty(object, "description") && object.description !== void 0) {
647
682
  if (typeof object.description !== "string") return (0, fp_ts_Either.left)("invalid_description");
648
683
  result.description = object.description;
@@ -702,10 +737,14 @@ function validateWorkflowTemplateSummary(object) {
702
737
  if (!hasOwnProperty(object, "version") || !isNonEmptyString(object.version)) return (0, fp_ts_Either.left)("invalid_version");
703
738
  if (!hasOwnProperty(object, "createdAt") || !isNonEmptyString(object.createdAt)) return (0, fp_ts_Either.left)("invalid_created_at");
704
739
  if (!hasOwnProperty(object, "updatedAt") || !isNonEmptyString(object.updatedAt)) return (0, fp_ts_Either.left)("invalid_updated_at");
740
+ if (!hasOwnProperty(object, "status") || typeof object.status !== "string") return (0, fp_ts_Either.left)("invalid_status");
741
+ const status = getStringAsEnum(object.status, WorkflowTemplateStatus);
742
+ if (!status) return (0, fp_ts_Either.left)("invalid_status");
705
743
  const result = {
706
744
  id: object.id,
707
745
  name: object.name,
708
746
  version: object.version,
747
+ status,
709
748
  createdAt: object.createdAt,
710
749
  updatedAt: object.updatedAt
711
750
  };
@@ -761,14 +800,23 @@ function validateListWorkflowTemplatesParams(object) {
761
800
  if (!isNonEmptyString(object.spaceIdentifier)) return (0, fp_ts_Either.left)("invalid_space_identifier");
762
801
  result.spaceIdentifier = object.spaceIdentifier;
763
802
  }
764
- let status = ["ACTIVE"];
803
+ let status = [WorkflowTemplateStatus.Active];
765
804
  if (hasOwnProperty(object, "status") && object.status !== void 0) {
766
805
  const statusVal = object.status;
806
+ const validatedStatuses = [];
767
807
  if (Array.isArray(statusVal)) {
768
- for (const item of statusVal) if (typeof item !== "string") return (0, fp_ts_Either.left)("invalid_status");
769
- status = statusVal;
770
- } else if (typeof statusVal === "string") status = [statusVal];
771
- else return (0, fp_ts_Either.left)("invalid_status");
808
+ for (const item of statusVal) {
809
+ if (typeof item !== "string") return (0, fp_ts_Either.left)("invalid_status");
810
+ const validatedStatus = getStringAsEnum(item, WorkflowTemplateStatus);
811
+ if (!validatedStatus) return (0, fp_ts_Either.left)("invalid_status");
812
+ validatedStatuses.push(validatedStatus);
813
+ }
814
+ status = validatedStatuses;
815
+ } else if (typeof statusVal === "string") {
816
+ const validatedStatus = getStringAsEnum(statusVal, WorkflowTemplateStatus);
817
+ if (!validatedStatus) return (0, fp_ts_Either.left)("invalid_status");
818
+ status = [validatedStatus];
819
+ } else return (0, fp_ts_Either.left)("invalid_status");
772
820
  }
773
821
  result.status = status;
774
822
  if (hasOwnProperty(object, "sortBy") && object.sortBy !== void 0) {
@@ -807,6 +855,11 @@ function validateListWorkflowTemplatesParams(object) {
807
855
  }
808
856
  return (0, fp_ts_Either.right)(result);
809
857
  }
858
+ function validateConcurrencyControl(object) {
859
+ if (typeof object !== "object" || object === null) return (0, fp_ts_Either.left)("invalid_concurrency_control");
860
+ if (!hasOwnProperty(object, "version") || !isStringBigInt(object.version)) return (0, fp_ts_Either.left)("invalid_concurrency_control");
861
+ return (0, fp_ts_Either.right)({ version: object.version });
862
+ }
810
863
  //#endregion
811
864
  //#region src/validators/workflow.validators.ts
812
865
  function validateWorkflowCreate(object) {
@@ -923,9 +976,41 @@ function validateListWorkflowsParams(object) {
923
976
  if (typeof val !== "string") return (0, fp_ts_Either.left)("invalid_workflow_template_identifier");
924
977
  workflowTemplateIdentifier = val;
925
978
  }
979
+ let includeGroups = void 0;
980
+ if (hasOwnProperty(object, "includeGroups")) {
981
+ const includeGroupsVal = typeof object.includeGroups === "string" ? [object.includeGroups] : object.includeGroups;
982
+ if (!isArray(includeGroupsVal)) return (0, fp_ts_Either.left)("invalid_include_groups");
983
+ const validatedIncludeGroups = [];
984
+ for (const item of includeGroupsVal) {
985
+ if (typeof item !== "string") return (0, fp_ts_Either.left)("invalid_include_groups");
986
+ if (!isUUIDv4(item)) return (0, fp_ts_Either.left)("invalid_include_groups");
987
+ validatedIncludeGroups.push(item);
988
+ }
989
+ includeGroups = validatedIncludeGroups;
990
+ }
991
+ let orderBy = void 0;
992
+ if (hasOwnProperty(object, "orderBy")) {
993
+ const orderByVal = typeof object.orderBy === "string" ? [object.orderBy] : object.orderBy;
994
+ if (!isArray(orderByVal)) return (0, fp_ts_Either.left)("invalid_order_by");
995
+ if (orderByVal.length > 3) return (0, fp_ts_Either.left)("too_many_order_by_items");
996
+ const validatedOrderBy = [];
997
+ const seenFields = /* @__PURE__ */ new Set();
998
+ for (const item of orderByVal) {
999
+ if (typeof item !== "string") return (0, fp_ts_Either.left)("invalid_order_by");
1000
+ const enumVal = getStringAsEnum(item, ListWorkflowsParams.OrderByEnum);
1001
+ if (enumVal === void 0) return (0, fp_ts_Either.left)("invalid_order_by");
1002
+ const field = enumVal.split(":")[0];
1003
+ if (seenFields.has(field)) return (0, fp_ts_Either.left)("duplicate_order_by_fields");
1004
+ seenFields.add(field);
1005
+ validatedOrderBy.push(enumVal);
1006
+ }
1007
+ orderBy = validatedOrderBy;
1008
+ }
926
1009
  if (include !== void 0) result.include = include;
927
1010
  if (includeOnlyNonTerminalState !== void 0) result.includeOnlyNonTerminalState = includeOnlyNonTerminalState;
928
1011
  if (workflowTemplateIdentifier !== void 0) result.workflowTemplateIdentifier = workflowTemplateIdentifier;
1012
+ if (includeGroups !== void 0) result.includeGroups = includeGroups;
1013
+ if (orderBy !== void 0) result.orderBy = orderBy;
929
1014
  return (0, fp_ts_Either.right)(result);
930
1015
  }
931
1016
  function validateListWorkflows200Response(object) {
@@ -1068,6 +1153,32 @@ function validateGetWorkflowVotes200Response(object) {
1068
1153
  }
1069
1154
  return (0, fp_ts_Either.right)({ votes });
1070
1155
  }
1156
+ function validateListWorkflowVotesParams(object) {
1157
+ const sharedValidation = (0, fp_ts_function.pipe)(validateSharedListParams(object), (0, fp_ts_Either.mapLeft)((error) => error === "invalid_search" ? "malformed_object" : error));
1158
+ if ((0, fp_ts_Either.isLeft)(sharedValidation)) return (0, fp_ts_Either.left)(sharedValidation.left);
1159
+ const result = sharedValidation.right;
1160
+ if (typeof object !== "object" || object === null) return (0, fp_ts_Either.left)("malformed_object");
1161
+ let orderBy = void 0;
1162
+ if (hasOwnProperty(object, "orderBy")) {
1163
+ const orderByVal = typeof object.orderBy === "string" ? [object.orderBy] : object.orderBy;
1164
+ if (!isArray(orderByVal)) return (0, fp_ts_Either.left)("invalid_order_by");
1165
+ if (orderByVal.length > 3) return (0, fp_ts_Either.left)("too_many_order_by_items");
1166
+ const validatedOrderBy = [];
1167
+ const seenFields = /* @__PURE__ */ new Set();
1168
+ for (const item of orderByVal) {
1169
+ if (typeof item !== "string") return (0, fp_ts_Either.left)("invalid_order_by");
1170
+ const enumVal = getStringAsEnum(item, ListWorkflowVotesParams.OrderByEnum);
1171
+ if (enumVal === void 0) return (0, fp_ts_Either.left)("invalid_order_by");
1172
+ const field = enumVal.split(":")[0];
1173
+ if (seenFields.has(field)) return (0, fp_ts_Either.left)("duplicate_order_by_fields");
1174
+ seenFields.add(field);
1175
+ validatedOrderBy.push(enumVal);
1176
+ }
1177
+ orderBy = validatedOrderBy;
1178
+ }
1179
+ if (orderBy !== void 0) result.orderBy = orderBy;
1180
+ return (0, fp_ts_Either.right)(result);
1181
+ }
1071
1182
  //#endregion
1072
1183
  //#region src/validators/users.validators.ts
1073
1184
  function validateUser(object) {
@@ -1484,6 +1595,18 @@ Object.defineProperty(exports, "GroupScope", {
1484
1595
  return GroupScope;
1485
1596
  }
1486
1597
  });
1598
+ Object.defineProperty(exports, "ListWorkflowVotesParams", {
1599
+ enumerable: true,
1600
+ get: function() {
1601
+ return ListWorkflowVotesParams;
1602
+ }
1603
+ });
1604
+ Object.defineProperty(exports, "ListWorkflowsParams", {
1605
+ enumerable: true,
1606
+ get: function() {
1607
+ return ListWorkflowsParams;
1608
+ }
1609
+ });
1487
1610
  Object.defineProperty(exports, "OrRule", {
1488
1611
  enumerable: true,
1489
1612
  get: function() {
@@ -1528,18 +1651,13 @@ Object.defineProperty(exports, "WebhookAction", {
1528
1651
  return WebhookAction;
1529
1652
  }
1530
1653
  });
1531
- Object.defineProperty(exports, "WorkflowTemplate", {
1532
- enumerable: true,
1533
- get: function() {
1534
- return WorkflowTemplate;
1535
- }
1536
- });
1537
1654
  Object.defineProperty(exports, "WorkflowTemplateScope", {
1538
1655
  enumerable: true,
1539
1656
  get: function() {
1540
1657
  return WorkflowTemplateScope;
1541
1658
  }
1542
1659
  });
1660
+ exports.WorkflowTemplateStatus = WorkflowTemplateStatus;
1543
1661
  exports.isAPIError = isAPIError;
1544
1662
  exports.validateAPIError = validateAPIError;
1545
1663
  exports.validateAddGroupEntitiesRequest = validateAddGroupEntitiesRequest;
@@ -1551,6 +1669,7 @@ exports.validateAgentRegistrationResponse = validateAgentRegistrationResponse;
1551
1669
  exports.validateAgentTokenRequest = validateAgentTokenRequest;
1552
1670
  exports.validateAgentTokenResponse = validateAgentTokenResponse;
1553
1671
  exports.validateCanVoteResponse = validateCanVoteResponse;
1672
+ exports.validateConcurrencyControl = validateConcurrencyControl;
1554
1673
  exports.validateGetEntityInfo200Response = validateGetEntityInfo200Response;
1555
1674
  exports.validateGetWorkflowParams = validateGetWorkflowParams;
1556
1675
  exports.validateGetWorkflowVotes200Response = validateGetWorkflowVotes200Response;
@@ -1573,6 +1692,7 @@ exports.validateListUsers200Response = validateListUsers200Response;
1573
1692
  exports.validateListUsersParams = validateListUsersParams;
1574
1693
  exports.validateListWorkflowTemplates200Response = validateListWorkflowTemplates200Response;
1575
1694
  exports.validateListWorkflowTemplatesParams = validateListWorkflowTemplatesParams;
1695
+ exports.validateListWorkflowVotesParams = validateListWorkflowVotesParams;
1576
1696
  exports.validateListWorkflows200Response = validateListWorkflows200Response;
1577
1697
  exports.validateListWorkflowsParams = validateListWorkflowsParams;
1578
1698
  exports.validateOidcCallbackRequest = validateOidcCallbackRequest;