@nominalso/vibe-host 0.0.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.
- package/LICENSE +10 -0
- package/README.md +39 -0
- package/dist/index.cjs +681 -0
- package/dist/index.d.cts +3497 -0
- package/dist/index.d.ts +3497 -0
- package/dist/index.js +657 -0
- package/package.json +80 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,681 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var index_exports = {};
|
|
22
|
+
__export(index_exports, {
|
|
23
|
+
VibeAppHost: () => VibeAppHost
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(index_exports);
|
|
26
|
+
|
|
27
|
+
// package.json
|
|
28
|
+
var version = "0.0.1";
|
|
29
|
+
|
|
30
|
+
// ../protocol-types/dist/index.js
|
|
31
|
+
var PROTOCOL_ID = "nominal-vibe-bridge";
|
|
32
|
+
var PROTOCOL_VERSION = 1;
|
|
33
|
+
var BRIDGE_KINDS = ["request", "response", "push", "command", "progress"];
|
|
34
|
+
var CORRELATED_KINDS = ["request", "response", "progress"];
|
|
35
|
+
var BRIDGE_KINDS_SET = new Set(BRIDGE_KINDS);
|
|
36
|
+
var CORRELATED_KINDS_SET = new Set(CORRELATED_KINDS);
|
|
37
|
+
function isBridgeMessage(data) {
|
|
38
|
+
if (typeof data !== "object" || data === null) return false;
|
|
39
|
+
const d = data;
|
|
40
|
+
if (d.__protocol !== PROTOCOL_ID) return false;
|
|
41
|
+
if (d.__version !== PROTOCOL_VERSION) return false;
|
|
42
|
+
if (typeof d.kind !== "string" || !BRIDGE_KINDS_SET.has(d.kind)) return false;
|
|
43
|
+
if (typeof d.type !== "string") return false;
|
|
44
|
+
if (CORRELATED_KINDS_SET.has(d.kind) && typeof d.requestId !== "string") return false;
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// ../api-client/dist/index.js
|
|
49
|
+
var import_client_fetch = require("@hey-api/client-fetch");
|
|
50
|
+
var import_client_fetch2 = require("@hey-api/client-fetch");
|
|
51
|
+
var client = (0, import_client_fetch.createClient)((0, import_client_fetch.createConfig)());
|
|
52
|
+
var getAccountsApiAccountingAccountGet = (options) => {
|
|
53
|
+
return (options?.client ?? client).get({
|
|
54
|
+
url: "/api/accounting/account",
|
|
55
|
+
...options
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
var getAccountApiAccountingAccountAccountIdGet = (options) => {
|
|
59
|
+
return (options.client ?? client).get({
|
|
60
|
+
url: "/api/accounting/account/{account_id}",
|
|
61
|
+
...options
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
var getCoaTreeApiAccountingSubsidiarySubsidiaryIdCoaGet = (options) => {
|
|
65
|
+
return (options.client ?? client).get({
|
|
66
|
+
url: "/api/accounting/subsidiary/{subsidiary_id}/coa",
|
|
67
|
+
...options
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
var getCoaFlatApiAccountingSubsidiarySubsidiaryIdCoaAccountGet = (options) => {
|
|
71
|
+
return (options.client ?? client).get({
|
|
72
|
+
url: "/api/accounting/subsidiary/{subsidiary_id}/coa/account",
|
|
73
|
+
...options,
|
|
74
|
+
headers: {
|
|
75
|
+
"Content-Type": "application/json",
|
|
76
|
+
...options?.headers
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
var getSubsidiaryAvailableCurrenciesApiAccountingSubsidiarySubsidiaryIdCoaAvailableCurrenciesGet = (options) => {
|
|
81
|
+
return (options.client ?? client).get({
|
|
82
|
+
url: "/api/accounting/subsidiary/{subsidiary_id}/coa/available-currencies",
|
|
83
|
+
...options
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
var getCoaFlatSimpleApiAccountingSubsidiarySubsidiaryIdCoaAccountSimpleGet = (options) => {
|
|
87
|
+
return (options.client ?? client).get({
|
|
88
|
+
url: "/api/accounting/subsidiary/{subsidiary_id}/coa/account/simple",
|
|
89
|
+
...options,
|
|
90
|
+
headers: {
|
|
91
|
+
"Content-Type": "application/json",
|
|
92
|
+
...options?.headers
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
var getGroupedCoaFlatApiAccountingSubsidiarySubsidiaryIdCoaAccountGroupGet = (options) => {
|
|
97
|
+
return (options.client ?? client).get({
|
|
98
|
+
url: "/api/accounting/subsidiary/{subsidiary_id}/coa/account/group",
|
|
99
|
+
...options
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
var getAccountByIdApiAccountingSubsidiarySubsidiaryIdCoaAccountAccountIdGet = (options) => {
|
|
103
|
+
return (options.client ?? client).get({
|
|
104
|
+
url: "/api/accounting/subsidiary/{subsidiary_id}/coa/account/{account_id}",
|
|
105
|
+
...options
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
var getConversionRateApiAccountingCurrencyCurrencyConversionRatesGet = (options) => {
|
|
109
|
+
return (options.client ?? client).get({
|
|
110
|
+
url: "/api/accounting/currency/{currency}/conversion-rates",
|
|
111
|
+
...options
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
var getSubsidiaryJournalLinesApiAccountingSubsidiarySubsidiaryIdJournalEntryLinesGet = (options) => {
|
|
115
|
+
return (options.client ?? client).get({
|
|
116
|
+
url: "/api/accounting/subsidiary/{subsidiary_id}/journal-entry/lines",
|
|
117
|
+
...options,
|
|
118
|
+
headers: {
|
|
119
|
+
"Content-Type": "application/json",
|
|
120
|
+
...options?.headers
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
var getSubsidiaryJournalApiAccountingSubsidiarySubsidiaryIdJournalEntryGet = (options) => {
|
|
125
|
+
return (options.client ?? client).get({
|
|
126
|
+
url: "/api/accounting/subsidiary/{subsidiary_id}/journal-entry",
|
|
127
|
+
...options,
|
|
128
|
+
headers: {
|
|
129
|
+
"Content-Type": "application/json",
|
|
130
|
+
...options?.headers
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
var getJournalEntryApiAccountingSubsidiarySubsidiaryIdJournalEntryJournalEntryIdGet = (options) => {
|
|
135
|
+
return (options.client ?? client).get({
|
|
136
|
+
url: "/api/accounting/subsidiary/{subsidiary_id}/journal-entry/{journal_entry_id}",
|
|
137
|
+
...options
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
var getDimensionsApiAccountingDimensionGet = (options) => {
|
|
141
|
+
return (options?.client ?? client).get({
|
|
142
|
+
url: "/api/accounting/dimension",
|
|
143
|
+
...options
|
|
144
|
+
});
|
|
145
|
+
};
|
|
146
|
+
var getAccountDimensionAssignmentsForDimensionApiAccountingDimensionDimensionIdAccountAccountIdGet = (options) => {
|
|
147
|
+
return (options.client ?? client).get({
|
|
148
|
+
url: "/api/accounting/dimension/{dimension_id}/account/{account_id}",
|
|
149
|
+
...options
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
var getDimensionValuesApiAccountingDimensionValueGet = (options) => {
|
|
153
|
+
return (options?.client ?? client).get({
|
|
154
|
+
url: "/api/accounting/dimension-value",
|
|
155
|
+
...options
|
|
156
|
+
});
|
|
157
|
+
};
|
|
158
|
+
var getDimensionValuesHierarchicalApiAccountingDimensionValueHierarchicalGet = (options) => {
|
|
159
|
+
return (options?.client ?? client).get({
|
|
160
|
+
url: "/api/accounting/dimension-value/hierarchical",
|
|
161
|
+
...options
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
var getEffectiveExchangeRateApiAccountingConsolidationExchangeRateGet = (options) => {
|
|
165
|
+
return (options?.client ?? client).get({
|
|
166
|
+
url: "/api/accounting/consolidation-exchange-rate",
|
|
167
|
+
...options,
|
|
168
|
+
headers: {
|
|
169
|
+
"Content-Type": "application/json",
|
|
170
|
+
...options?.headers
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
};
|
|
174
|
+
var getPeriodByDateApiAccountingConsolidationExchangeRatePeriodInputDateGet = (options) => {
|
|
175
|
+
return (options.client ?? client).get({
|
|
176
|
+
url: "/api/accounting/consolidation-exchange-rate/period/{input_date}",
|
|
177
|
+
...options
|
|
178
|
+
});
|
|
179
|
+
};
|
|
180
|
+
var getActivityDefinitionsApiActivityActivityDefinitionGet = (options) => {
|
|
181
|
+
return (options?.client ?? client).get({
|
|
182
|
+
url: "/api/activity/activity-definition",
|
|
183
|
+
...options
|
|
184
|
+
});
|
|
185
|
+
};
|
|
186
|
+
var getActivityDefinitionByIdApiActivityActivityDefinitionActivityDefinitionIdGet = (options) => {
|
|
187
|
+
return (options.client ?? client).get({
|
|
188
|
+
url: "/api/activity/activity-definition/{activity_definition_id}",
|
|
189
|
+
...options
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
var getPeriodInstancesApiActivityPeriodInstanceGet = (options) => {
|
|
193
|
+
return (options?.client ?? client).get({
|
|
194
|
+
url: "/api/activity/period-instance",
|
|
195
|
+
...options
|
|
196
|
+
});
|
|
197
|
+
};
|
|
198
|
+
var getPeriodInstanceApiActivityPeriodInstancePeriodInstanceIdGet = (options) => {
|
|
199
|
+
return (options.client ?? client).get({
|
|
200
|
+
url: "/api/activity/period-instance/{period_instance_id}",
|
|
201
|
+
...options
|
|
202
|
+
});
|
|
203
|
+
};
|
|
204
|
+
var getPeriodInstanceBySlugApiActivityPeriodInstanceBySlugPeriodDisplayIdGet = (options) => {
|
|
205
|
+
return (options.client ?? client).get({
|
|
206
|
+
url: "/api/activity/period-instance/by-slug/{period_display_id}",
|
|
207
|
+
...options
|
|
208
|
+
});
|
|
209
|
+
};
|
|
210
|
+
var getPeriodInstanceProgressBreakdownBySlugApiActivityPeriodInstanceBySlugPeriodDisplayIdProgressBreakdownGet = (options) => {
|
|
211
|
+
return (options.client ?? client).get({
|
|
212
|
+
url: "/api/activity/period-instance/by-slug/{period_display_id}/progress-breakdown",
|
|
213
|
+
...options
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
var getAllTasksDefinitionsApiActivityTaskDefinitionGet = (options) => {
|
|
217
|
+
return (options?.client ?? client).get({
|
|
218
|
+
url: "/api/activity/task-definition",
|
|
219
|
+
...options
|
|
220
|
+
});
|
|
221
|
+
};
|
|
222
|
+
var createTaskDefinitionApiActivityTaskDefinitionPost = (options) => {
|
|
223
|
+
return (options.client ?? client).post({
|
|
224
|
+
url: "/api/activity/task-definition",
|
|
225
|
+
...options,
|
|
226
|
+
headers: {
|
|
227
|
+
"Content-Type": "application/json",
|
|
228
|
+
...options?.headers
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
};
|
|
232
|
+
var getAllTasksDefinitionsByFilterApiActivityTaskDefinitionQueryPost = (options) => {
|
|
233
|
+
return (options?.client ?? client).post({
|
|
234
|
+
url: "/api/activity/task-definition/query",
|
|
235
|
+
...options
|
|
236
|
+
});
|
|
237
|
+
};
|
|
238
|
+
var getTaskDefinitionByIdApiActivityTaskDefinitionTaskDefinitionIdGet = (options) => {
|
|
239
|
+
return (options.client ?? client).get({
|
|
240
|
+
url: "/api/activity/task-definition/{task_definition_id}",
|
|
241
|
+
...options
|
|
242
|
+
});
|
|
243
|
+
};
|
|
244
|
+
var updateTaskDefinitionApiActivityTaskDefinitionTaskDefinitionIdPut = (options) => {
|
|
245
|
+
return (options.client ?? client).put({
|
|
246
|
+
url: "/api/activity/task-definition/{task_definition_id}",
|
|
247
|
+
...options,
|
|
248
|
+
headers: {
|
|
249
|
+
"Content-Type": "application/json",
|
|
250
|
+
...options?.headers
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
};
|
|
254
|
+
var getActivityInstanceApiActivityActivityInstanceActivityInstanceIdGet = (options) => {
|
|
255
|
+
return (options.client ?? client).get({
|
|
256
|
+
url: "/api/activity/activity-instance/{activity_instance_id}",
|
|
257
|
+
...options
|
|
258
|
+
});
|
|
259
|
+
};
|
|
260
|
+
var getTaskInstancesByActivityApiActivityActivityInstanceActivityInstanceIdTaskGet = (options) => {
|
|
261
|
+
return (options.client ?? client).get({
|
|
262
|
+
url: "/api/activity/activity-instance/{activity_instance_id}/task",
|
|
263
|
+
...options,
|
|
264
|
+
headers: {
|
|
265
|
+
"Content-Type": "application/json",
|
|
266
|
+
...options?.headers
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
};
|
|
270
|
+
var getActivityInstancesApiActivityActivityInstanceGet = (options) => {
|
|
271
|
+
return (options?.client ?? client).get({
|
|
272
|
+
url: "/api/activity/activity-instance",
|
|
273
|
+
...options
|
|
274
|
+
});
|
|
275
|
+
};
|
|
276
|
+
var getActivityInstanceByPeriodApiActivityActivityInstanceByPeriodPeriodDisplayIdActivityDefinitionIdGet = (options) => {
|
|
277
|
+
return (options.client ?? client).get({
|
|
278
|
+
url: "/api/activity/activity-instance/by-period/{period_display_id}/{activity_definition_id}",
|
|
279
|
+
...options
|
|
280
|
+
});
|
|
281
|
+
};
|
|
282
|
+
var getTaskInstancesByActivityPeriodApiActivityActivityInstanceByPeriodPeriodDisplayIdActivityDefinitionIdTaskGet = (options) => {
|
|
283
|
+
return (options.client ?? client).get({
|
|
284
|
+
url: "/api/activity/activity-instance/by-period/{period_display_id}/{activity_definition_id}/task",
|
|
285
|
+
...options,
|
|
286
|
+
headers: {
|
|
287
|
+
"Content-Type": "application/json",
|
|
288
|
+
...options?.headers
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
};
|
|
292
|
+
var getAllTaskInstancesApiActivityTaskInstanceGet = (options) => {
|
|
293
|
+
return (options?.client ?? client).get({
|
|
294
|
+
url: "/api/activity/task-instance",
|
|
295
|
+
...options
|
|
296
|
+
});
|
|
297
|
+
};
|
|
298
|
+
var getAllTaskInstancesByFilterApiActivityTaskInstanceQueryPost = (options) => {
|
|
299
|
+
return (options?.client ?? client).post({
|
|
300
|
+
url: "/api/activity/task-instance/query",
|
|
301
|
+
...options,
|
|
302
|
+
headers: {
|
|
303
|
+
"Content-Type": "application/json",
|
|
304
|
+
...options?.headers
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
};
|
|
308
|
+
var getTaskInstanceByIdApiActivityTaskInstanceTaskInstanceIdGet = (options) => {
|
|
309
|
+
return (options.client ?? client).get({
|
|
310
|
+
url: "/api/activity/task-instance/{task_instance_id}",
|
|
311
|
+
...options
|
|
312
|
+
});
|
|
313
|
+
};
|
|
314
|
+
var updateTaskInstanceApiActivityTaskInstanceTaskInstanceIdPut = (options) => {
|
|
315
|
+
return (options.client ?? client).put({
|
|
316
|
+
url: "/api/activity/task-instance/{task_instance_id}",
|
|
317
|
+
...options,
|
|
318
|
+
headers: {
|
|
319
|
+
"Content-Type": "application/json",
|
|
320
|
+
...options?.headers
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
};
|
|
324
|
+
var getEventsApiAuditTrailEventGet = (options) => {
|
|
325
|
+
return (options?.client ?? client).get({
|
|
326
|
+
url: "/api/audit-trail/event",
|
|
327
|
+
...options
|
|
328
|
+
});
|
|
329
|
+
};
|
|
330
|
+
var getEntityEventsApiAuditTrailEventEntityTargetTypeTargetIdPost = (options) => {
|
|
331
|
+
return (options.client ?? client).post({
|
|
332
|
+
url: "/api/audit-trail/event/entity/{target_type}/{target_id}",
|
|
333
|
+
...options,
|
|
334
|
+
headers: {
|
|
335
|
+
"Content-Type": "application/json",
|
|
336
|
+
...options?.headers
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
};
|
|
340
|
+
var getFiscalCalendarsBySubsidiaryApiPeriodManagerFiscalCalendarBySubsidiarySubsidiaryIdGet = (options) => {
|
|
341
|
+
return (options.client ?? client).get({
|
|
342
|
+
url: "/api/period-manager/fiscal-calendar/by-subsidiary/{subsidiary_id}",
|
|
343
|
+
...options
|
|
344
|
+
});
|
|
345
|
+
};
|
|
346
|
+
var getFiscalCalendarByIdApiPeriodManagerFiscalCalendarCalendarIdGet = (options) => {
|
|
347
|
+
return (options.client ?? client).get({
|
|
348
|
+
url: "/api/period-manager/fiscal-calendar/{calendar_id}",
|
|
349
|
+
...options
|
|
350
|
+
});
|
|
351
|
+
};
|
|
352
|
+
var getTenantUsersApiTenancyTenantTenantIdOrNameUsersGet = (options) => {
|
|
353
|
+
return (options.client ?? client).get({
|
|
354
|
+
url: "/api/tenancy/tenant/{tenant_id_or_name}/users",
|
|
355
|
+
...options
|
|
356
|
+
});
|
|
357
|
+
};
|
|
358
|
+
var getAllSubsidiariesApiTenancySubsidiaryGet = (options) => {
|
|
359
|
+
return (options?.client ?? client).get({
|
|
360
|
+
url: "/api/tenancy/subsidiary",
|
|
361
|
+
...options
|
|
362
|
+
});
|
|
363
|
+
};
|
|
364
|
+
var getSubsidiaryApiTenancySubsidiarySubsidiaryIdGet = (options) => {
|
|
365
|
+
return (options.client ?? client).get({
|
|
366
|
+
url: "/api/tenancy/subsidiary/{subsidiary_id}",
|
|
367
|
+
...options
|
|
368
|
+
});
|
|
369
|
+
};
|
|
370
|
+
var getSubsidiaryParentCurrenciesApiTenancySubsidiarySubsidiaryIdParentCurrenciesGet = (options) => {
|
|
371
|
+
return (options.client ?? client).get({
|
|
372
|
+
url: "/api/tenancy/subsidiary/{subsidiary_id}/parent-currencies",
|
|
373
|
+
...options
|
|
374
|
+
});
|
|
375
|
+
};
|
|
376
|
+
function createVibeApiClient({ baseUrl, stripApiPrefix }) {
|
|
377
|
+
const client2 = (0, import_client_fetch2.createClient)((0, import_client_fetch2.createConfig)({ baseUrl }));
|
|
378
|
+
client2.interceptors.request.use((request) => {
|
|
379
|
+
console.log("[vibe-api-client] request url:", request.url);
|
|
380
|
+
return request;
|
|
381
|
+
});
|
|
382
|
+
if (stripApiPrefix) {
|
|
383
|
+
client2.interceptors.request.use(
|
|
384
|
+
(request) => new Request(request.url.replace(`${baseUrl}/api/`, `${baseUrl}/`), request)
|
|
385
|
+
);
|
|
386
|
+
}
|
|
387
|
+
return client2;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
// src/handlerMap.ts
|
|
391
|
+
async function call(fn, payload, client2) {
|
|
392
|
+
const { data } = await fn({ ...payload, client: client2 });
|
|
393
|
+
if (data == null) throw new Error("API returned no data");
|
|
394
|
+
return data;
|
|
395
|
+
}
|
|
396
|
+
function createHandlerMap(options) {
|
|
397
|
+
const client2 = createVibeApiClient(options);
|
|
398
|
+
return {
|
|
399
|
+
// Accounting — chart of accounts
|
|
400
|
+
GET_CHART_OF_ACCOUNTS: (p) => call(getCoaFlatApiAccountingSubsidiarySubsidiaryIdCoaAccountGet, p, client2),
|
|
401
|
+
GET_COA_TREE: (p) => call(getCoaTreeApiAccountingSubsidiarySubsidiaryIdCoaGet, p, client2),
|
|
402
|
+
GET_COA_FLAT_SIMPLE: (p) => call(
|
|
403
|
+
getCoaFlatSimpleApiAccountingSubsidiarySubsidiaryIdCoaAccountSimpleGet,
|
|
404
|
+
p,
|
|
405
|
+
client2
|
|
406
|
+
),
|
|
407
|
+
GET_COA_GROUPED: (p) => call(
|
|
408
|
+
getGroupedCoaFlatApiAccountingSubsidiarySubsidiaryIdCoaAccountGroupGet,
|
|
409
|
+
p,
|
|
410
|
+
client2
|
|
411
|
+
),
|
|
412
|
+
GET_COA_ACCOUNT: (p) => call(
|
|
413
|
+
getAccountByIdApiAccountingSubsidiarySubsidiaryIdCoaAccountAccountIdGet,
|
|
414
|
+
p,
|
|
415
|
+
client2
|
|
416
|
+
),
|
|
417
|
+
GET_SUBSIDIARY_AVAILABLE_CURRENCIES: (p) => call(
|
|
418
|
+
getSubsidiaryAvailableCurrenciesApiAccountingSubsidiarySubsidiaryIdCoaAvailableCurrenciesGet,
|
|
419
|
+
p,
|
|
420
|
+
client2
|
|
421
|
+
),
|
|
422
|
+
GET_ACCOUNTS: (p) => call(getAccountsApiAccountingAccountGet, p, client2),
|
|
423
|
+
GET_ACCOUNT: (p) => call(getAccountApiAccountingAccountAccountIdGet, p, client2),
|
|
424
|
+
// Accounting — exchange rates
|
|
425
|
+
GET_CONVERSION_RATES: (p) => call(getConversionRateApiAccountingCurrencyCurrencyConversionRatesGet, p, client2),
|
|
426
|
+
GET_EFFECTIVE_EXCHANGE_RATE: (p) => call(getEffectiveExchangeRateApiAccountingConsolidationExchangeRateGet, p, client2),
|
|
427
|
+
GET_EXCHANGE_RATE_BY_DATE: (p) => call(
|
|
428
|
+
getPeriodByDateApiAccountingConsolidationExchangeRatePeriodInputDateGet,
|
|
429
|
+
p,
|
|
430
|
+
client2
|
|
431
|
+
),
|
|
432
|
+
// Accounting — dimensions
|
|
433
|
+
GET_DIMENSIONS: (p) => call(getDimensionsApiAccountingDimensionGet, p, client2),
|
|
434
|
+
GET_DIMENSION_VALUES: (p) => call(getDimensionValuesApiAccountingDimensionValueGet, p, client2),
|
|
435
|
+
GET_DIMENSION_VALUES_HIERARCHICAL: (p) => call(
|
|
436
|
+
getDimensionValuesHierarchicalApiAccountingDimensionValueHierarchicalGet,
|
|
437
|
+
p,
|
|
438
|
+
client2
|
|
439
|
+
),
|
|
440
|
+
GET_DIMENSION_ACCOUNT_ASSIGNMENTS: (p) => call(
|
|
441
|
+
getAccountDimensionAssignmentsForDimensionApiAccountingDimensionDimensionIdAccountAccountIdGet,
|
|
442
|
+
p,
|
|
443
|
+
client2
|
|
444
|
+
),
|
|
445
|
+
// Accounting — journal entries
|
|
446
|
+
GET_JOURNAL_ENTRIES: (p) => call(
|
|
447
|
+
getSubsidiaryJournalApiAccountingSubsidiarySubsidiaryIdJournalEntryGet,
|
|
448
|
+
p,
|
|
449
|
+
client2
|
|
450
|
+
),
|
|
451
|
+
GET_JOURNAL_LINES: (p) => call(
|
|
452
|
+
getSubsidiaryJournalLinesApiAccountingSubsidiarySubsidiaryIdJournalEntryLinesGet,
|
|
453
|
+
p,
|
|
454
|
+
client2
|
|
455
|
+
),
|
|
456
|
+
GET_JOURNAL_ENTRY: (p) => call(
|
|
457
|
+
getJournalEntryApiAccountingSubsidiarySubsidiaryIdJournalEntryJournalEntryIdGet,
|
|
458
|
+
p,
|
|
459
|
+
client2
|
|
460
|
+
),
|
|
461
|
+
// Activity — period instances
|
|
462
|
+
GET_PERIODS: (p) => call(getPeriodInstancesApiActivityPeriodInstanceGet, p, client2),
|
|
463
|
+
GET_PERIOD_INSTANCE: (p) => call(getPeriodInstanceApiActivityPeriodInstancePeriodInstanceIdGet, p, client2),
|
|
464
|
+
GET_PERIOD_INSTANCE_BY_SLUG: (p) => call(
|
|
465
|
+
getPeriodInstanceBySlugApiActivityPeriodInstanceBySlugPeriodDisplayIdGet,
|
|
466
|
+
p,
|
|
467
|
+
client2
|
|
468
|
+
),
|
|
469
|
+
GET_PERIOD_PROGRESS_BREAKDOWN: (p) => call(
|
|
470
|
+
getPeriodInstanceProgressBreakdownBySlugApiActivityPeriodInstanceBySlugPeriodDisplayIdProgressBreakdownGet,
|
|
471
|
+
p,
|
|
472
|
+
client2
|
|
473
|
+
),
|
|
474
|
+
// Activity — activity definitions
|
|
475
|
+
GET_ACTIVITY_DEFINITIONS: (p) => call(getActivityDefinitionsApiActivityActivityDefinitionGet, p, client2),
|
|
476
|
+
GET_ACTIVITY_DEFINITION: (p) => call(
|
|
477
|
+
getActivityDefinitionByIdApiActivityActivityDefinitionActivityDefinitionIdGet,
|
|
478
|
+
p,
|
|
479
|
+
client2
|
|
480
|
+
),
|
|
481
|
+
// Activity — activity instances
|
|
482
|
+
GET_ACTIVITY_INSTANCES: (p) => call(getActivityInstancesApiActivityActivityInstanceGet, p, client2),
|
|
483
|
+
GET_ACTIVITY_INSTANCE: (p) => call(getActivityInstanceApiActivityActivityInstanceActivityInstanceIdGet, p, client2),
|
|
484
|
+
GET_ACTIVITY_INSTANCE_BY_PERIOD: (p) => call(
|
|
485
|
+
getActivityInstanceByPeriodApiActivityActivityInstanceByPeriodPeriodDisplayIdActivityDefinitionIdGet,
|
|
486
|
+
p,
|
|
487
|
+
client2
|
|
488
|
+
),
|
|
489
|
+
GET_ACTIVITY_INSTANCE_TASKS: (p) => call(
|
|
490
|
+
getTaskInstancesByActivityApiActivityActivityInstanceActivityInstanceIdTaskGet,
|
|
491
|
+
p,
|
|
492
|
+
client2
|
|
493
|
+
),
|
|
494
|
+
GET_ACTIVITY_PERIOD_TASKS: (p) => call(
|
|
495
|
+
getTaskInstancesByActivityPeriodApiActivityActivityInstanceByPeriodPeriodDisplayIdActivityDefinitionIdTaskGet,
|
|
496
|
+
p,
|
|
497
|
+
client2
|
|
498
|
+
),
|
|
499
|
+
// Activity — task definitions
|
|
500
|
+
GET_TASK_DEFINITIONS: (p) => call(getAllTasksDefinitionsApiActivityTaskDefinitionGet, p, client2),
|
|
501
|
+
GET_TASK_DEFINITION: (p) => call(getTaskDefinitionByIdApiActivityTaskDefinitionTaskDefinitionIdGet, p, client2),
|
|
502
|
+
CREATE_TASK_DEFINITION: (p) => call(createTaskDefinitionApiActivityTaskDefinitionPost, p, client2),
|
|
503
|
+
UPDATE_TASK_DEFINITION: (p) => call(updateTaskDefinitionApiActivityTaskDefinitionTaskDefinitionIdPut, p, client2),
|
|
504
|
+
GET_TASK_DEFINITIONS_BY_FILTER: (p) => call(getAllTasksDefinitionsByFilterApiActivityTaskDefinitionQueryPost, p, client2),
|
|
505
|
+
// Activity — task instances
|
|
506
|
+
GET_TASK_INSTANCES: (p) => call(getAllTaskInstancesApiActivityTaskInstanceGet, p, client2),
|
|
507
|
+
GET_TASK_INSTANCE: (p) => call(getTaskInstanceByIdApiActivityTaskInstanceTaskInstanceIdGet, p, client2),
|
|
508
|
+
POST_TASK_OUTPUT: (p) => call(updateTaskInstanceApiActivityTaskInstanceTaskInstanceIdPut, p, client2),
|
|
509
|
+
GET_TASK_INSTANCES_BY_FILTER: (p) => call(getAllTaskInstancesByFilterApiActivityTaskInstanceQueryPost, p, client2),
|
|
510
|
+
// Audit trail
|
|
511
|
+
GET_AUDIT_EVENTS: (p) => call(getEventsApiAuditTrailEventGet, p, client2),
|
|
512
|
+
GET_ENTITY_AUDIT_EVENTS: (p) => call(getEntityEventsApiAuditTrailEventEntityTargetTypeTargetIdPost, p, client2),
|
|
513
|
+
// Period manager
|
|
514
|
+
GET_FISCAL_CALENDARS: (p) => call(
|
|
515
|
+
getFiscalCalendarsBySubsidiaryApiPeriodManagerFiscalCalendarBySubsidiarySubsidiaryIdGet,
|
|
516
|
+
p,
|
|
517
|
+
client2
|
|
518
|
+
),
|
|
519
|
+
GET_FISCAL_CALENDAR: (p) => call(getFiscalCalendarByIdApiPeriodManagerFiscalCalendarCalendarIdGet, p, client2),
|
|
520
|
+
// Tenancy
|
|
521
|
+
GET_SUBSIDIARIES: (p) => call(getAllSubsidiariesApiTenancySubsidiaryGet, p, client2),
|
|
522
|
+
GET_SUBSIDIARY: (p) => call(getSubsidiaryApiTenancySubsidiarySubsidiaryIdGet, p, client2),
|
|
523
|
+
GET_SUBSIDIARY_PARENT_CURRENCIES: (p) => call(
|
|
524
|
+
getSubsidiaryParentCurrenciesApiTenancySubsidiarySubsidiaryIdParentCurrenciesGet,
|
|
525
|
+
p,
|
|
526
|
+
client2
|
|
527
|
+
),
|
|
528
|
+
GET_TENANT_USERS: (p) => call(getTenantUsersApiTenancyTenantTenantIdOrNameUsersGet, p, client2)
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
// src/uploadHandler.ts
|
|
533
|
+
async function uploadHandler(payload, sendProgress) {
|
|
534
|
+
const attachmentId = crypto.randomUUID();
|
|
535
|
+
for (const progress of [25, 50, 75, 100]) {
|
|
536
|
+
await new Promise((r) => setTimeout(r, 400));
|
|
537
|
+
sendProgress({ attachmentId, progress });
|
|
538
|
+
}
|
|
539
|
+
return { attachmentId, name: payload.fileName };
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
// src/VibeAppHost.ts
|
|
543
|
+
var VibeAppHost = class {
|
|
544
|
+
constructor({ trustedOrigins, getContext, appBasePath, clientConfig }) {
|
|
545
|
+
this.iframeWindow = null;
|
|
546
|
+
this.kindHandlers = {
|
|
547
|
+
request: (msg, source, origin) => this.handleRequest(msg, source, origin),
|
|
548
|
+
command: (msg) => this.dispatchCommand(msg)
|
|
549
|
+
};
|
|
550
|
+
this.commandHandlers = {
|
|
551
|
+
REPORT_SUBROUTE: (payload) => {
|
|
552
|
+
const newPath = payload.subroute === "/" ? this.appBasePath : `${this.appBasePath}${payload.subroute}`;
|
|
553
|
+
const method = payload.replace ? "replaceState" : "pushState";
|
|
554
|
+
window.history[method](null, "", newPath);
|
|
555
|
+
}
|
|
556
|
+
};
|
|
557
|
+
this.trustedOrigins = new Set(trustedOrigins);
|
|
558
|
+
this.getContext = getContext;
|
|
559
|
+
this.appBasePath = appBasePath;
|
|
560
|
+
this.boundHandleMessage = this.handleMessage.bind(this);
|
|
561
|
+
this.boundHandlePopState = this.handlePopState.bind(this);
|
|
562
|
+
this.handlers = this.initializeHandlers(clientConfig || { baseUrl: "", stripApiPrefix: false });
|
|
563
|
+
}
|
|
564
|
+
dispatchCommand(msg) {
|
|
565
|
+
const handler = this.commandHandlers[msg.type];
|
|
566
|
+
handler(msg.payload);
|
|
567
|
+
}
|
|
568
|
+
initializeHandlers(clientConfig) {
|
|
569
|
+
return {
|
|
570
|
+
...createHandlerMap(clientConfig),
|
|
571
|
+
UPLOAD_FILE: uploadHandler
|
|
572
|
+
};
|
|
573
|
+
}
|
|
574
|
+
/**
|
|
575
|
+
* Starts listening for bridge messages and sets up browser back/forward sync.
|
|
576
|
+
* Returns a cleanup function to call on unmount.
|
|
577
|
+
*
|
|
578
|
+
* Pass `iframeWindow` to immediately push context to the iframe. If omitted,
|
|
579
|
+
* the host will respond to GET_CONTEXT polls from the bridge but won't
|
|
580
|
+
* proactively push — call `pushContextTo(iframeWindow)` once the iframe has
|
|
581
|
+
* loaded to trigger the proactive push.
|
|
582
|
+
*/
|
|
583
|
+
mount(iframeWindow) {
|
|
584
|
+
if (iframeWindow) this.iframeWindow = iframeWindow;
|
|
585
|
+
window.addEventListener("message", this.boundHandleMessage);
|
|
586
|
+
window.addEventListener("popstate", this.boundHandlePopState);
|
|
587
|
+
if (iframeWindow) this.pushContext(iframeWindow);
|
|
588
|
+
return () => {
|
|
589
|
+
window.removeEventListener("message", this.boundHandleMessage);
|
|
590
|
+
window.removeEventListener("popstate", this.boundHandlePopState);
|
|
591
|
+
this.iframeWindow = null;
|
|
592
|
+
};
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* Pushes the current context to the iframe and updates the stored iframe
|
|
596
|
+
* window reference. Call this once the iframe has loaded if `mount()` was
|
|
597
|
+
* called without an `iframeWindow`.
|
|
598
|
+
*/
|
|
599
|
+
pushContextTo(iframeWindow) {
|
|
600
|
+
this.iframeWindow = iframeWindow;
|
|
601
|
+
this.pushContext(iframeWindow);
|
|
602
|
+
}
|
|
603
|
+
pushContext(target) {
|
|
604
|
+
const message = {
|
|
605
|
+
__protocol: PROTOCOL_ID,
|
|
606
|
+
__version: PROTOCOL_VERSION,
|
|
607
|
+
kind: "push",
|
|
608
|
+
type: "CONTEXT_PUSH",
|
|
609
|
+
payload: { ...this.getContext(), hostVersion: version }
|
|
610
|
+
};
|
|
611
|
+
for (const origin of this.trustedOrigins) {
|
|
612
|
+
target.postMessage(message, origin);
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
handlePopState() {
|
|
616
|
+
if (!this.iframeWindow) return;
|
|
617
|
+
const currentPath = window.location.pathname;
|
|
618
|
+
if (!currentPath.startsWith(this.appBasePath)) return;
|
|
619
|
+
const subroute = currentPath.slice(this.appBasePath.length) || "/";
|
|
620
|
+
this.pushToIframe("SUBROUTE_PUSH", { subroute });
|
|
621
|
+
}
|
|
622
|
+
pushToIframe(type, payload) {
|
|
623
|
+
if (!this.iframeWindow) return;
|
|
624
|
+
const message = {
|
|
625
|
+
__protocol: PROTOCOL_ID,
|
|
626
|
+
__version: PROTOCOL_VERSION,
|
|
627
|
+
kind: "push",
|
|
628
|
+
type,
|
|
629
|
+
payload
|
|
630
|
+
};
|
|
631
|
+
for (const origin of this.trustedOrigins) {
|
|
632
|
+
this.iframeWindow.postMessage(message, origin);
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
async handleMessage(event) {
|
|
636
|
+
if (!this.trustedOrigins.has(event.origin)) return;
|
|
637
|
+
if (!isBridgeMessage(event.data)) return;
|
|
638
|
+
await this.kindHandlers[event.data.kind]?.(event.data, event.source, event.origin);
|
|
639
|
+
}
|
|
640
|
+
async handleRequest(msg, source, origin) {
|
|
641
|
+
const { requestId, type } = msg;
|
|
642
|
+
if (type === "GET_CONTEXT") {
|
|
643
|
+
const ctx = { ...this.getContext(), hostVersion: version };
|
|
644
|
+
const bridgeVersion = msg.payload?.bridgeVersion ?? "unknown";
|
|
645
|
+
console.log(
|
|
646
|
+
`[vibe-host] Vibe App connected \u2014 bridge: ${bridgeVersion}, host: ${version}, tenant: ${ctx.tenant}, user: ${ctx.user.displayName}`
|
|
647
|
+
);
|
|
648
|
+
this.respond(source, origin, { kind: "response", type, requestId, ok: true, data: ctx });
|
|
649
|
+
return;
|
|
650
|
+
}
|
|
651
|
+
const sendProgress = (payload) => {
|
|
652
|
+
const message = {
|
|
653
|
+
__protocol: PROTOCOL_ID,
|
|
654
|
+
__version: PROTOCOL_VERSION,
|
|
655
|
+
kind: "progress",
|
|
656
|
+
type,
|
|
657
|
+
requestId,
|
|
658
|
+
payload
|
|
659
|
+
};
|
|
660
|
+
source.postMessage(message, origin);
|
|
661
|
+
};
|
|
662
|
+
try {
|
|
663
|
+
const handler = this.handlers[type];
|
|
664
|
+
const data = await handler(msg.payload, sendProgress);
|
|
665
|
+
this.respond(source, origin, { kind: "response", type, requestId, ok: true, data });
|
|
666
|
+
} catch (err) {
|
|
667
|
+
const error = err instanceof Error ? err.message : String(err);
|
|
668
|
+
this.respond(source, origin, { kind: "response", type, requestId, ok: false, error });
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
respond(target, origin, response) {
|
|
672
|
+
target.postMessage(
|
|
673
|
+
{ __protocol: PROTOCOL_ID, __version: PROTOCOL_VERSION, ...response },
|
|
674
|
+
origin
|
|
675
|
+
);
|
|
676
|
+
}
|
|
677
|
+
};
|
|
678
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
679
|
+
0 && (module.exports = {
|
|
680
|
+
VibeAppHost
|
|
681
|
+
});
|