@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/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
+ });