@rytass/bpm-core-client 0.1.3 → 0.1.5

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 (62) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/LICENSE +21 -0
  3. package/README.md +69 -3
  4. package/package.json +5 -4
  5. package/src/index.js +7 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/api-auth-client.d.ts +73 -0
  8. package/src/lib/api-auth-client.js +121 -0
  9. package/src/lib/api-auth-client.js.map +1 -0
  10. package/src/lib/form/form-api.d.ts +48 -0
  11. package/src/lib/form/form-api.js +228 -0
  12. package/src/lib/form/form-api.js.map +1 -0
  13. package/src/lib/form/form-rendering.d.ts +52 -0
  14. package/src/lib/form/form-rendering.js +341 -0
  15. package/src/lib/form/form-rendering.js.map +1 -0
  16. package/src/lib/form/index.js +6 -0
  17. package/src/lib/form/index.js.map +1 -0
  18. package/src/lib/graphql-client.d.ts +45 -0
  19. package/src/lib/graphql-client.js +92 -0
  20. package/src/lib/graphql-client.js.map +1 -0
  21. package/src/lib/member-api.d.ts +49 -0
  22. package/src/lib/member-api.js +72 -0
  23. package/src/lib/member-api.js.map +1 -0
  24. package/src/lib/organization/index.js +5 -0
  25. package/src/lib/organization/index.js.map +1 -0
  26. package/src/lib/organization/organization-api.d.ts +168 -0
  27. package/src/lib/organization/organization-api.js +394 -0
  28. package/src/lib/organization/organization-api.js.map +1 -0
  29. package/src/lib/template/index.js +5 -0
  30. package/src/lib/template/index.js.map +1 -0
  31. package/src/lib/template/template-api.d.ts +150 -0
  32. package/src/lib/template/template-api.js +407 -0
  33. package/src/lib/template/template-api.js.map +1 -0
  34. package/src/lib/workflow/index.js +5 -0
  35. package/src/lib/workflow/index.js.map +1 -0
  36. package/src/lib/workflow/workflow-api.d.ts +376 -0
  37. package/src/lib/workflow/workflow-api.js +867 -0
  38. package/src/lib/workflow/workflow-api.js.map +1 -0
  39. package/eslint.config.mjs +0 -19
  40. package/jest.config.cts +0 -10
  41. package/project.json +0 -66
  42. package/src/lib/api-auth-client.ts +0 -169
  43. package/src/lib/form/form-api.spec.ts +0 -81
  44. package/src/lib/form/form-api.ts +0 -388
  45. package/src/lib/form/form-rendering.ts +0 -580
  46. package/src/lib/graphql-client.spec.ts +0 -65
  47. package/src/lib/graphql-client.ts +0 -114
  48. package/src/lib/member-api.ts +0 -129
  49. package/src/lib/organization/organization-api.spec.ts +0 -90
  50. package/src/lib/organization/organization-api.ts +0 -710
  51. package/src/lib/template/template-api.spec.ts +0 -88
  52. package/src/lib/template/template-api.ts +0 -772
  53. package/src/lib/workflow/workflow-api.spec.ts +0 -132
  54. package/src/lib/workflow/workflow-api.ts +0 -1749
  55. package/tsconfig.json +0 -27
  56. package/tsconfig.lib.json +0 -16
  57. package/tsconfig.spec.json +0 -16
  58. /package/src/{index.ts → index.d.ts} +0 -0
  59. /package/src/lib/form/{index.ts → index.d.ts} +0 -0
  60. /package/src/lib/organization/{index.ts → index.d.ts} +0 -0
  61. /package/src/lib/template/{index.ts → index.d.ts} +0 -0
  62. /package/src/lib/workflow/{index.ts → index.d.ts} +0 -0
@@ -1,132 +0,0 @@
1
- import {
2
- listApprovalInstances,
3
- listInboxTasks,
4
- readApprovalInstance,
5
- } from './workflow-api';
6
-
7
- interface CapturedRequest {
8
- readonly query: string;
9
- readonly variables?: Readonly<Record<string, unknown>>;
10
- }
11
-
12
- function installFetchMock<TData>(payload: TData): {
13
- readonly capture: () => CapturedRequest;
14
- readonly restore: () => void;
15
- } {
16
- const originalFetch = global.fetch;
17
- const fetchMock = jest.fn<
18
- Promise<Response>,
19
- [RequestInfo | URL, RequestInit?]
20
- >();
21
- fetchMock.mockImplementation(
22
- async () =>
23
- new Response(JSON.stringify({ data: payload }), {
24
- headers: { 'Content-Type': 'application/json' },
25
- status: 200,
26
- }),
27
- );
28
- (global as { fetch: typeof fetch }).fetch =
29
- fetchMock as unknown as typeof fetch;
30
-
31
- return {
32
- capture: (): CapturedRequest => {
33
- expect(fetchMock).toHaveBeenCalledTimes(1);
34
- const init = fetchMock.mock.calls[0]?.[1];
35
- return JSON.parse(String(init?.body ?? '{}')) as CapturedRequest;
36
- },
37
- restore: (): void => {
38
- (global as { fetch: typeof fetch }).fetch = originalFetch;
39
- },
40
- };
41
- }
42
-
43
- describe('@rytass/bpm-core-client/workflow', () => {
44
- describe('listApprovalInstances', () => {
45
- it('issues the ApprovalInstances query with no variables', async (): Promise<void> => {
46
- const harness = installFetchMock({ approvalInstances: [] });
47
- try {
48
- const instances = await listApprovalInstances();
49
- const request = harness.capture();
50
-
51
- expect(request.query).toContain('query ApprovalInstances');
52
- expect(request.variables).toBeUndefined();
53
- expect(instances).toEqual([]);
54
- } finally {
55
- harness.restore();
56
- }
57
- });
58
- });
59
-
60
- describe('readApprovalInstance', () => {
61
- it('passes id as a variable and unwraps the instance record', async (): Promise<void> => {
62
- const fixture = {
63
- approvalInstance: {
64
- completedAt: null,
65
- formDataJson: '{}',
66
- formDefinitionSnapshotJson: '{}',
67
- id: 'instance-1',
68
- initiatorMemberId: 'member-001',
69
- startedAt: '2026-05-26T00:00:00.000Z',
70
- state: 'RUNNING',
71
- templateId: 'template-1',
72
- templateVersionId: 'tv-1',
73
- title: 'Test instance',
74
- workflowSnapshotJson: '{}',
75
- },
76
- tasks: [],
77
- workflowTokens: [],
78
- activityLogs: [],
79
- };
80
- const harness = installFetchMock(fixture);
81
- try {
82
- const result = await readApprovalInstance('instance-1');
83
- const request = harness.capture();
84
-
85
- expect(request.query).toContain('query ApprovalInstance');
86
- expect(request.variables).toEqual({ id: 'instance-1' });
87
- expect(result.instance.id).toBe('instance-1');
88
- expect(result.tasks).toEqual([]);
89
- expect(result.workflowTokens).toEqual([]);
90
- } finally {
91
- harness.restore();
92
- }
93
- });
94
- });
95
-
96
- describe('listInboxTasks', () => {
97
- it('passes assigneeMemberId as a variable and returns normalized tasks', async (): Promise<void> => {
98
- const harness = installFetchMock({
99
- inboxTasks: [
100
- {
101
- assigneeMemberId: 'member-001',
102
- assignmentType: 'DIRECT',
103
- candidateMemberIds: [],
104
- completedAt: null,
105
- createdAt: '2026-05-26T00:00:00.000Z',
106
- decisionPolicySnapshotJson: '{}',
107
- delegationChainJson: '[]',
108
- id: 'task-1',
109
- instanceId: 'instance-1',
110
- nodeId: 'node-1',
111
- openedAt: '2026-05-26T00:00:00.000Z',
112
- originalAssigneeMemberId: null,
113
- slaDueAt: null,
114
- status: 'OPEN',
115
- tokenId: 'token-1',
116
- },
117
- ],
118
- });
119
- try {
120
- const tasks = await listInboxTasks('member-001');
121
- const request = harness.capture();
122
-
123
- expect(request.query).toContain('inboxTasks(assigneeMemberId:');
124
- expect(request.variables).toEqual({ assigneeMemberId: 'member-001' });
125
- expect(tasks).toHaveLength(1);
126
- expect(tasks[0]?.assigneeMemberId).toBe('member-001');
127
- } finally {
128
- harness.restore();
129
- }
130
- });
131
- });
132
- });