@billfn/admin 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,586 @@
1
+ import { createAdminCapabilityAdapter as createKernelAdminCapabilityAdapter, createCapabilityAdminClient, defineAdminCapability, } from "@superfunctions/admin";
2
+ export const billFnAdminResources = [
3
+ {
4
+ id: "customers",
5
+ label: "Customers",
6
+ description: "Inspect and operate customers in BillFn.",
7
+ icon: "billfn:customers",
8
+ risk: "standard",
9
+ idField: "id",
10
+ displayFields: ["id", "name", "status", "updatedAt"],
11
+ searchableFields: ["id", "name", "status"],
12
+ filterableFields: ["status", "createdAt", "updatedAt"],
13
+ sortableFields: ["createdAt", "updatedAt", "name"],
14
+ sensitiveFields: [],
15
+ },
16
+ {
17
+ id: "products",
18
+ label: "Products",
19
+ description: "Inspect and operate products in BillFn.",
20
+ icon: "billfn:products",
21
+ risk: "standard",
22
+ idField: "id",
23
+ displayFields: ["id", "productKey", "planCount"],
24
+ searchableFields: ["id", "productKey"],
25
+ filterableFields: ["productKey", "planCount"],
26
+ sortableFields: ["productKey", "planCount"],
27
+ sensitiveFields: [],
28
+ },
29
+ {
30
+ id: "plans",
31
+ label: "Plans",
32
+ description: "Inspect and operate plans in BillFn.",
33
+ icon: "billfn:plans",
34
+ risk: "standard",
35
+ idField: "id",
36
+ displayFields: ["id", "displayName", "productKey", "planKey"],
37
+ searchableFields: ["id", "displayName", "productKey", "planKey"],
38
+ filterableFields: ["productKey", "planKey"],
39
+ sortableFields: ["displayName", "productKey", "planKey"],
40
+ sensitiveFields: [],
41
+ },
42
+ {
43
+ id: "prices",
44
+ label: "Prices",
45
+ description: "Inspect and operate prices in BillFn.",
46
+ icon: "billfn:prices",
47
+ risk: "standard",
48
+ idField: "id",
49
+ displayFields: ["id", "displayName", "amount", "currency", "interval", "provider"],
50
+ searchableFields: ["id", "displayName", "priceId", "planKey", "productKey", "provider"],
51
+ filterableFields: ["provider", "currency", "kind", "interval", "planKey", "productKey"],
52
+ sortableFields: ["amount", "currency", "displayName", "interval", "provider"],
53
+ sensitiveFields: [],
54
+ },
55
+ {
56
+ id: "subscriptions",
57
+ label: "Subscriptions",
58
+ description: "Inspect and operate subscriptions in BillFn.",
59
+ icon: "billfn:subscriptions",
60
+ risk: "standard",
61
+ idField: "id",
62
+ displayFields: ["id", "planKey", "status", "provider", "currentPeriodEnd", "updatedAt"],
63
+ searchableFields: ["id", "planKey", "priceId", "provider", "status"],
64
+ filterableFields: ["planKey", "provider", "status"],
65
+ sortableFields: ["createdAt", "currentPeriodEnd", "status", "updatedAt"],
66
+ sensitiveFields: [],
67
+ },
68
+ {
69
+ id: "entitlements",
70
+ label: "Entitlements",
71
+ description: "Inspect and operate entitlements in BillFn.",
72
+ icon: "billfn:entitlements",
73
+ risk: "standard",
74
+ idField: "id",
75
+ displayFields: ["id", "planKey", "status", "effectiveAt", "expiresAt", "updatedAt"],
76
+ searchableFields: ["id", "planKey", "status"],
77
+ filterableFields: ["planKey", "status"],
78
+ sortableFields: ["createdAt", "effectiveAt", "expiresAt", "updatedAt"],
79
+ sensitiveFields: [],
80
+ },
81
+ {
82
+ id: "quotas",
83
+ label: "Quotas",
84
+ description: "Inspect and operate quotas in BillFn.",
85
+ icon: "billfn:quotas",
86
+ risk: "standard",
87
+ idField: "id",
88
+ displayFields: ["id", "name", "status", "updatedAt"],
89
+ searchableFields: ["id", "name", "status"],
90
+ filterableFields: ["status", "createdAt", "updatedAt"],
91
+ sortableFields: ["createdAt", "updatedAt", "name"],
92
+ sensitiveFields: [],
93
+ },
94
+ {
95
+ id: "invoices",
96
+ label: "Invoices",
97
+ description: "Inspect and operate invoices in BillFn.",
98
+ icon: "billfn:invoices",
99
+ risk: "standard",
100
+ idField: "id",
101
+ displayFields: ["id", "name", "status", "updatedAt"],
102
+ searchableFields: ["id", "name", "status"],
103
+ filterableFields: ["status", "createdAt", "updatedAt"],
104
+ sortableFields: ["createdAt", "updatedAt", "name"],
105
+ sensitiveFields: [],
106
+ },
107
+ {
108
+ id: "payments",
109
+ label: "Payments",
110
+ description: "Inspect and operate payments in BillFn.",
111
+ icon: "billfn:payments",
112
+ risk: "sensitive",
113
+ idField: "id",
114
+ displayFields: ["id", "name", "status", "updatedAt"],
115
+ searchableFields: ["id", "name", "status"],
116
+ filterableFields: ["status", "createdAt", "updatedAt"],
117
+ sortableFields: ["createdAt", "updatedAt", "name"],
118
+ sensitiveFields: [
119
+ "secret",
120
+ "token",
121
+ "credential",
122
+ "value",
123
+ "password",
124
+ "passwd",
125
+ "apiKey",
126
+ "privateKey",
127
+ "authorization",
128
+ "cookie",
129
+ "otp",
130
+ "otpCode",
131
+ "recoveryCode",
132
+ "recoveryCodes",
133
+ "verificationCode",
134
+ "sessionToken",
135
+ ],
136
+ },
137
+ {
138
+ id: "usage",
139
+ label: "Usage",
140
+ description: "Inspect and operate usage in BillFn.",
141
+ icon: "billfn:usage",
142
+ risk: "standard",
143
+ idField: "id",
144
+ displayFields: ["id", "resource", "current", "limit"],
145
+ searchableFields: ["id", "resource"],
146
+ filterableFields: ["resource"],
147
+ sortableFields: ["current", "limit", "resource"],
148
+ sensitiveFields: [],
149
+ },
150
+ {
151
+ id: "reconciliation",
152
+ label: "Reconciliation",
153
+ description: "Inspect and operate reconciliation in BillFn.",
154
+ icon: "billfn:reconciliation",
155
+ risk: "standard",
156
+ idField: "id",
157
+ displayFields: ["id", "name", "status", "updatedAt"],
158
+ searchableFields: ["id", "name", "status"],
159
+ filterableFields: ["status", "createdAt", "updatedAt"],
160
+ sortableFields: ["createdAt", "updatedAt", "name"],
161
+ sensitiveFields: [],
162
+ },
163
+ {
164
+ id: "revenue",
165
+ label: "Revenue",
166
+ description: "Inspect and operate revenue in BillFn.",
167
+ icon: "billfn:revenue",
168
+ risk: "standard",
169
+ idField: "id",
170
+ displayFields: ["id", "name", "status", "updatedAt"],
171
+ searchableFields: ["id", "name", "status"],
172
+ filterableFields: ["status", "createdAt", "updatedAt"],
173
+ sortableFields: ["createdAt", "updatedAt", "name"],
174
+ sensitiveFields: [],
175
+ },
176
+ ];
177
+ export const billFnAdminActions = [
178
+ {
179
+ id: "create-catalog",
180
+ resource: "products",
181
+ title: "Create Catalog",
182
+ description: "Create Catalog for products.",
183
+ classification: "write",
184
+ requiresConfirmation: false,
185
+ idempotent: true,
186
+ target: "collection",
187
+ },
188
+ {
189
+ id: "update-catalog",
190
+ resource: "products",
191
+ title: "Update Catalog",
192
+ description: "Update Catalog for products.",
193
+ classification: "write",
194
+ requiresConfirmation: false,
195
+ idempotent: true,
196
+ target: "resource",
197
+ },
198
+ {
199
+ id: "grant-entitlement",
200
+ resource: "entitlements",
201
+ title: "Grant Entitlement",
202
+ description: "Grant Entitlement for entitlements.",
203
+ classification: "write",
204
+ requiresConfirmation: false,
205
+ idempotent: true,
206
+ target: "resource",
207
+ },
208
+ {
209
+ id: "change-subscription",
210
+ resource: "subscriptions",
211
+ title: "Change Subscription",
212
+ description: "Change Subscription for subscriptions.",
213
+ classification: "write",
214
+ requiresConfirmation: true,
215
+ idempotent: true,
216
+ target: "resource",
217
+ },
218
+ {
219
+ id: "cancel-subscription",
220
+ resource: "subscriptions",
221
+ title: "Cancel Subscription",
222
+ description: "Cancel Subscription for subscriptions.",
223
+ classification: "destructive",
224
+ requiresConfirmation: true,
225
+ idempotent: true,
226
+ target: "resource",
227
+ },
228
+ {
229
+ id: "issue-credit",
230
+ resource: "invoices",
231
+ title: "Issue Credit",
232
+ description: "Issue Credit for invoices.",
233
+ classification: "write",
234
+ requiresConfirmation: false,
235
+ idempotent: true,
236
+ target: "resource",
237
+ },
238
+ {
239
+ id: "refund-payment",
240
+ resource: "payments",
241
+ title: "Refund Payment",
242
+ description: "Refund Payment for payments.",
243
+ classification: "write",
244
+ requiresConfirmation: true,
245
+ idempotent: true,
246
+ target: "resource",
247
+ },
248
+ {
249
+ id: "reconcile-provider",
250
+ resource: "reconciliation",
251
+ title: "Reconcile Provider",
252
+ description: "Reconcile Provider for reconciliation.",
253
+ classification: "write",
254
+ requiresConfirmation: true,
255
+ idempotent: true,
256
+ target: "collection",
257
+ },
258
+ ];
259
+ export const billFnAdminResourcePolicies = Object.freeze(Object.fromEntries(billFnAdminResources.map((resource) => [
260
+ resource.id,
261
+ {
262
+ defaultScope: "active",
263
+ permission: "billfn." + resource.id + ".read",
264
+ redaction: resource.sensitiveFields.length > 0 ? "sensitive-fields" : "none",
265
+ },
266
+ ])));
267
+ export const billFnAdminOperationPolicies = Object.freeze(Object.fromEntries(billFnAdminActions.map((action) => [
268
+ "billfn." + action.resource + "." + action.id,
269
+ {
270
+ permission: "billfn." + action.resource + "." + action.id,
271
+ scope: {
272
+ levels: ["organization", "workspace", "project", "environment"],
273
+ forwardsNamespace: true,
274
+ forwardsRegion: true,
275
+ },
276
+ safety: {
277
+ classification: action.classification,
278
+ requiresConfirmation: action.requiresConfirmation,
279
+ },
280
+ idempotency: {
281
+ mode: "required",
282
+ keyStrategy: "context.idempotencyKey",
283
+ },
284
+ audit: {
285
+ mode: "required",
286
+ action: "billfn." + action.id,
287
+ targetResource: action.resource,
288
+ ...(action.target === "resource"
289
+ ? { targetIdPath: "$.id" }
290
+ : { collection: true }),
291
+ },
292
+ observation: {
293
+ domain: "billfn",
294
+ requestIdPath: "context.requestId",
295
+ correlationIdPath: "context.correlationId",
296
+ },
297
+ },
298
+ ])));
299
+ const entitySchema = {
300
+ type: "object",
301
+ description: "A domain-owned administration resource. Sensitive fields are redacted by the domain service.",
302
+ additionalProperties: true,
303
+ };
304
+ const listInputSchema = {
305
+ type: "object",
306
+ properties: {
307
+ cursor: { type: "string", minLength: 1 },
308
+ limit: { type: "integer", minimum: 1, maximum: 200, default: 50 },
309
+ search: { type: "string", maxLength: 500 },
310
+ filter: { type: "object", additionalProperties: true },
311
+ sort: {
312
+ type: "array",
313
+ items: { type: "object", additionalProperties: true },
314
+ maxItems: 10,
315
+ },
316
+ },
317
+ additionalProperties: false,
318
+ };
319
+ const listOutputSchema = {
320
+ type: "object",
321
+ properties: {
322
+ items: { type: "array", items: entitySchema },
323
+ nextCursor: { type: ["string", "null"] },
324
+ },
325
+ required: ["items"],
326
+ additionalProperties: false,
327
+ };
328
+ const getInputSchema = {
329
+ type: "object",
330
+ properties: { id: { type: "string", minLength: 1 } },
331
+ required: ["id"],
332
+ additionalProperties: false,
333
+ };
334
+ const getOutputSchema = {
335
+ type: "object",
336
+ properties: { item: entitySchema },
337
+ required: ["item"],
338
+ additionalProperties: false,
339
+ };
340
+ const actionInputSchema = {
341
+ type: "object",
342
+ properties: {
343
+ id: { type: "string", minLength: 1 },
344
+ payload: { type: "object", additionalProperties: true },
345
+ reason: { type: "string", minLength: 1, maxLength: 2000 },
346
+ },
347
+ additionalProperties: false,
348
+ };
349
+ const actionOutputSchema = {
350
+ type: "object",
351
+ properties: {
352
+ item: entitySchema,
353
+ accepted: { type: "boolean" },
354
+ operationReference: { type: "string" },
355
+ },
356
+ required: ["accepted"],
357
+ additionalProperties: true,
358
+ };
359
+ const payloadSchema = (properties, required = []) => ({
360
+ type: "object",
361
+ properties,
362
+ ...(required.length ? { required } : {}),
363
+ additionalProperties: false,
364
+ });
365
+ const domainActionInputSchemas = {
366
+ "change-subscription": payloadSchema({
367
+ id: { type: "string", minLength: 1 },
368
+ payload: payloadSchema({
369
+ targetPriceId: { type: "string", minLength: 1 },
370
+ effectiveAt: { type: "string", enum: ["immediate", "next_renewal"] },
371
+ prorationBehavior: { type: "string", enum: ["provider_default", "prorate", "none"] },
372
+ }, ["targetPriceId"]),
373
+ reason: { type: "string", minLength: 1, maxLength: 2000 },
374
+ }, ["id", "payload"]),
375
+ "cancel-subscription": payloadSchema({ id: { type: "string", minLength: 1 }, reason: { type: "string", minLength: 1, maxLength: 2000 } }, ["id"]),
376
+ "refund-payment": payloadSchema({
377
+ id: { type: "string", minLength: 1 },
378
+ payload: payloadSchema({
379
+ subscriptionId: { type: "string", minLength: 1 },
380
+ mode: { type: "string", enum: ["full", "prorated_remaining_period", "custom"] },
381
+ amount: { type: "number", minimum: 0 },
382
+ }),
383
+ reason: { type: "string", minLength: 1, maxLength: 2000 },
384
+ }, ["id", "payload"]),
385
+ "reconcile-provider": payloadSchema({
386
+ payload: payloadSchema({
387
+ kind: { type: "string", enum: ["subscription-sync", "account-scan"] },
388
+ provider: { type: "string", enum: ["dodo", "apple", "stripe", "polar", "google-play", "microsoft-store"] },
389
+ billingAccountId: { type: "string", minLength: 1 },
390
+ subscriptionId: { type: "string", minLength: 1 },
391
+ providerEventId: { type: "string", minLength: 1 },
392
+ cursor: { type: "string", minLength: 1 },
393
+ }, ["kind"]),
394
+ }, ["payload"]),
395
+ };
396
+ export const billFnAdminSchemas = {
397
+ entity: entitySchema,
398
+ listInput: listInputSchema,
399
+ listOutput: listOutputSchema,
400
+ getInput: getInputSchema,
401
+ getOutput: getOutputSchema,
402
+ actionInput: actionInputSchema,
403
+ actionOutput: actionOutputSchema,
404
+ };
405
+ function resourceOperations(resource) {
406
+ const baseId = "billfn." + resource.id;
407
+ const basePath = "/resources/" + resource.id;
408
+ return [
409
+ {
410
+ id: baseId + ".list",
411
+ title: "List " + resource.label,
412
+ description: "List permitted " +
413
+ resource.label.toLowerCase() +
414
+ " in the active administration scope.",
415
+ inputSchema: listInputSchema,
416
+ outputSchema: listOutputSchema,
417
+ route: { method: "GET", path: basePath },
418
+ permission: "billfn." + resource.id + ".read",
419
+ minimumScope: "workspace",
420
+ safety: {
421
+ classification: "read",
422
+ idempotent: true,
423
+ requiresConfirmation: false,
424
+ audit: resource.risk === "sensitive" ? "required" : "optional",
425
+ },
426
+ pagination: { mode: "cursor", defaultLimit: 50, maxLimit: 200 },
427
+ mcp: { readOnlyHint: true, destructiveHint: false, idempotentHint: true },
428
+ redaction: { outputFields: resource.sensitiveFields },
429
+ target: { resource: resource.id, collection: true },
430
+ },
431
+ {
432
+ id: baseId + ".get",
433
+ title: "Get " + resource.label,
434
+ description: "Get one permitted " + resource.label.toLowerCase() + " resource.",
435
+ inputSchema: getInputSchema,
436
+ outputSchema: getOutputSchema,
437
+ route: { method: "GET", path: basePath + "/:id" },
438
+ permission: "billfn." + resource.id + ".read",
439
+ minimumScope: "workspace",
440
+ safety: {
441
+ classification: "read",
442
+ idempotent: true,
443
+ requiresConfirmation: false,
444
+ audit: resource.risk === "sensitive" ? "required" : "optional",
445
+ },
446
+ mcp: { readOnlyHint: true, destructiveHint: false, idempotentHint: true },
447
+ redaction: { outputFields: resource.sensitiveFields },
448
+ target: { resource: resource.id, idInput: "id" },
449
+ },
450
+ ];
451
+ }
452
+ function actionOperation(action) {
453
+ const sensitiveFields = billFnAdminResources.find((resource) => resource.id === action.resource)
454
+ ?.sensitiveFields ?? [];
455
+ return {
456
+ id: "billfn." + action.resource + "." + action.id,
457
+ title: action.title,
458
+ description: action.description,
459
+ inputSchema: domainActionInputSchemas[action.id] ?? (action.target === "resource"
460
+ ? { ...actionInputSchema, required: ["id"] }
461
+ : actionInputSchema),
462
+ outputSchema: actionOutputSchema,
463
+ route: {
464
+ method: "POST",
465
+ path: "/resources/" + action.resource + "/actions/" + action.id,
466
+ },
467
+ permission: "billfn." + action.resource + "." + action.id,
468
+ minimumScope: "workspace",
469
+ safety: {
470
+ classification: action.classification,
471
+ idempotent: action.idempotent,
472
+ requiresConfirmation: action.requiresConfirmation,
473
+ ...(action.id === "refund-payment"
474
+ ? {
475
+ confirmation: {
476
+ risk: "critical",
477
+ method: "mfa",
478
+ reason: "Refunds move money and require a recently verified operator.",
479
+ maxAgeSeconds: 300,
480
+ },
481
+ }
482
+ : action.id === "change-subscription"
483
+ ? { confirmation: { risk: "high", method: "recent-auth", reason: "Changing a subscription updates externally billed recurring service.", maxAgeSeconds: 300 } }
484
+ : action.id === "reconcile-provider"
485
+ ? { confirmation: { risk: "high", method: "explicit", reason: "Provider reconciliation imports and persists external billing state.", maxAgeSeconds: 300 } }
486
+ : action.id === "cancel-subscription"
487
+ ? { confirmation: { risk: "critical", method: "mfa", reason: "Cancellation changes externally billed recurring service and access.", maxAgeSeconds: 300 } }
488
+ : {}),
489
+ audit: "required",
490
+ },
491
+ mcp: {
492
+ readOnlyHint: false,
493
+ destructiveHint: action.classification === "destructive",
494
+ idempotentHint: action.idempotent,
495
+ },
496
+ redaction: { inputFields: sensitiveFields, outputFields: sensitiveFields },
497
+ target: action.target === "resource"
498
+ ? { resource: action.resource, idInput: "id" }
499
+ : { resource: action.resource, collection: true },
500
+ };
501
+ }
502
+ const domainReadResourceIds = new Set(["products", "plans", "prices", "subscriptions", "entitlements", "usage"]);
503
+ const domainResourceIds = new Set([...domainReadResourceIds, "payments", "reconciliation"]);
504
+ const domainActionIds = new Set(["change-subscription", "cancel-subscription", "refund-payment", "reconcile-provider"]);
505
+ const domainResources = billFnAdminResources.filter((resource) => domainResourceIds.has(resource.id));
506
+ const domainReadResources = domainResources.filter((resource) => domainReadResourceIds.has(resource.id));
507
+ const domainActions = billFnAdminActions.filter((action) => domainActionIds.has(action.id));
508
+ const operations = [
509
+ ...domainReadResources.flatMap(resourceOperations),
510
+ ...domainActions.map(actionOperation),
511
+ ];
512
+ export const billFnAdminCapability = defineAdminCapability({
513
+ schemaVersion: "1.0",
514
+ id: "billfn",
515
+ displayName: "BillFn",
516
+ version: "1.0.0",
517
+ description: "Function-owned BillFn operator capabilities backed by the configured billing instance.",
518
+ category: "commerce",
519
+ availability: "required-product",
520
+ scopeLevels: ["organization", "workspace", "project", "environment"],
521
+ dependencies: [],
522
+ resources: domainResources,
523
+ navigation: [
524
+ {
525
+ id: "billfn",
526
+ label: "BillFn",
527
+ path: "/modules/billfn",
528
+ icon: "billfn",
529
+ description: "Operate BillFn in the active scope.",
530
+ order: 100,
531
+ },
532
+ ],
533
+ operations: operations,
534
+ });
535
+ export function createBillFnAdminClient(adminClient) {
536
+ const client = createCapabilityAdminClient(billFnAdminCapability, adminClient);
537
+ const resource = (name) => ({
538
+ list: (input = {}, options) => client.invoke(`billfn.${name}.list`, input, options),
539
+ get: (input, options) => client.invoke(`billfn.${name}.get`, input, options),
540
+ });
541
+ return Object.assign(client, {
542
+ products: resource("products"),
543
+ plans: resource("plans"),
544
+ prices: resource("prices"),
545
+ subscriptions: {
546
+ ...resource("subscriptions"),
547
+ change: (input, options) => client.invoke("billfn.subscriptions.change-subscription", input, options),
548
+ cancel: (input, options) => client.invoke("billfn.subscriptions.cancel-subscription", input, options),
549
+ },
550
+ entitlements: resource("entitlements"),
551
+ usage: resource("usage"),
552
+ payments: {
553
+ refund: (input, options) => client.invoke("billfn.payments.refund-payment", input, options),
554
+ },
555
+ reconciliation: {
556
+ run: (input, options) => client.invoke("billfn.reconciliation.reconcile-provider", input, options),
557
+ },
558
+ });
559
+ }
560
+ function bind(handler) {
561
+ return ({ input, context }) => handler(input, context);
562
+ }
563
+ export function createBillFnAdminAdapter(service) {
564
+ return createKernelAdminCapabilityAdapter(billFnAdminCapability, {
565
+ "billfn.products.list": bind(service.listProducts),
566
+ "billfn.products.get": bind(service.getProduct),
567
+ "billfn.plans.list": bind(service.listPlans),
568
+ "billfn.plans.get": bind(service.getPlan),
569
+ "billfn.prices.list": bind(service.listPrices),
570
+ "billfn.prices.get": bind(service.getPrice),
571
+ "billfn.subscriptions.list": bind(service.listSubscriptions),
572
+ "billfn.subscriptions.get": bind(service.getSubscription),
573
+ "billfn.entitlements.list": bind(service.listEntitlements),
574
+ "billfn.entitlements.get": bind(service.getEntitlement),
575
+ "billfn.usage.list": bind(service.listUsage),
576
+ "billfn.usage.get": bind(service.getUsage),
577
+ "billfn.subscriptions.change-subscription": bind(service.changeSubscription),
578
+ "billfn.subscriptions.cancel-subscription": bind(service.cancelSubscription),
579
+ "billfn.payments.refund-payment": bind(service.refundPayment),
580
+ "billfn.reconciliation.reconcile-provider": bind(service.reconcileProvider),
581
+ });
582
+ }
583
+ export const adminCapability = billFnAdminCapability;
584
+ export const createAdminAdapter = createBillFnAdminAdapter;
585
+ export { createBillFnDomainAdminService, } from "./domain-service.js";
586
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}