@antelopejs/interface-dms-saas 0.1.0 → 0.1.2

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
@@ -14,7 +14,7 @@ on the runtime, and imports the extension points from it:
14
14
  | Subpath | Surface |
15
15
  | --- | --- |
16
16
  | `@antelopejs/interface-dms-saas` | every extension point except `db`: billing, data API, pages, plans, provisioning and registration flat, plus the `invoiceLineItems` and `workspaceLifecycle` namespaces |
17
- | `@antelopejs/interface-dms-saas/billing` | customer balance and complimentary subscription state |
17
+ | `@antelopejs/interface-dms-saas/billing` | customer balance, upcoming invoice preview and complimentary subscription state |
18
18
  | `@antelopejs/interface-dms-saas/data-api` | hidden-value data API filters |
19
19
  | `@antelopejs/interface-dms-saas/db` | canonical SaaS tables and data models |
20
20
  | `@antelopejs/interface-dms-saas/hidden-filter` | the `HiddenStringFilter` decorator on its own |
package/dist/billing.d.ts CHANGED
@@ -23,3 +23,61 @@ export interface AbsentTenantCustomerBalance {
23
23
  }
24
24
  export type TenantCustomerBalance = AvailableTenantCustomerBalance | AbsentTenantCustomerBalance;
25
25
  export declare const GetTenantCustomerBalance: (scope: TenantCustomerBalanceScope) => Promise<TenantCustomerBalance>;
26
+ export type UpcomingInvoicePreviewScope = TenantCustomerBalanceScope;
27
+ export type UpcomingInvoiceLineKind = "subscription" | "usage" | "invoice_item";
28
+ export interface UpcomingInvoiceLine {
29
+ kind: UpcomingInvoiceLineKind;
30
+ description: string | null;
31
+ amountMinorUnits: number;
32
+ taxMinorUnits: number;
33
+ quantity: number | null;
34
+ periodStart: string;
35
+ periodEnd: string;
36
+ isProration: boolean;
37
+ usageLineKey: string | null;
38
+ }
39
+ export interface UpcomingInvoiceTax {
40
+ amountMinorUnits: number;
41
+ taxableAmountMinorUnits: number | null;
42
+ isInclusive: boolean;
43
+ ratePercentage: number | null;
44
+ country: string | null;
45
+ taxType: string | null;
46
+ displayName: string | null;
47
+ jurisdiction: string | null;
48
+ taxabilityReason: string | null;
49
+ isReverseCharge: boolean;
50
+ }
51
+ export interface AvailableUpcomingInvoicePreview {
52
+ status: "available";
53
+ currency: string;
54
+ lines: UpcomingInvoiceLine[];
55
+ hasMoreLines: boolean;
56
+ subtotalMinorUnits: number;
57
+ totalExcludingTaxMinorUnits: number;
58
+ taxMinorUnits: number;
59
+ taxes: UpcomingInvoiceTax[];
60
+ taxCountry: string | null;
61
+ isReverseCharge: boolean;
62
+ totalMinorUnits: number;
63
+ amountDueMinorUnits: number;
64
+ periodStart: string;
65
+ periodEnd: string;
66
+ billingDate: string;
67
+ usageThrough: string | null;
68
+ computedAt: string;
69
+ }
70
+ export type UpcomingInvoicePreviewAbsenceReason = "complimentary" | "free_plan" | "customer_not_configured" | "subscription_not_configured" | "no_upcoming_invoice";
71
+ export interface AbsentUpcomingInvoicePreview {
72
+ status: "absent";
73
+ reason: UpcomingInvoicePreviewAbsenceReason;
74
+ computedAt: string;
75
+ }
76
+ export type UpcomingInvoicePreviewUnavailableReason = "stripe_not_configured" | "tax_not_configured" | "tax_location_invalid" | "tax_location_required" | "tax_calculation_failed" | "usage_unavailable" | "provider_error";
77
+ export interface UnavailableUpcomingInvoicePreview {
78
+ status: "unavailable";
79
+ reason: UpcomingInvoicePreviewUnavailableReason;
80
+ computedAt: string;
81
+ }
82
+ export type UpcomingInvoicePreview = AvailableUpcomingInvoicePreview | AbsentUpcomingInvoicePreview | UnavailableUpcomingInvoicePreview;
83
+ export declare const GetUpcomingInvoicePreview: (scope: TenantCustomerBalanceScope) => Promise<UpcomingInvoicePreview>;
package/dist/billing.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GetTenantCustomerBalance = void 0;
3
+ exports.GetUpcomingInvoicePreview = exports.GetTenantCustomerBalance = void 0;
4
4
  exports.isComplimentarySubscription = isComplimentarySubscription;
5
5
  const interface_core_1 = require("@antelopejs/interface-core");
6
6
  function isComplimentarySubscription(subscription) {
@@ -12,4 +12,5 @@ function isComplimentarySubscription(subscription) {
12
12
  !subscription.stripeSubscriptionId));
13
13
  }
14
14
  exports.GetTenantCustomerBalance = (0, interface_core_1.InterfaceFunction)();
15
+ exports.GetUpcomingInvoicePreview = (0, interface_core_1.InterfaceFunction)();
15
16
  //# sourceMappingURL=billing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"billing.js","sourceRoot":"","sources":["../src/billing.ts"],"names":[],"mappings":";;;AAWA,kEAUC;AArBD,+DAA+D;AAW/D,SAAgB,2BAA2B,CACzC,YAA+D;IAE/D,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,CACL,YAAY,CAAC,eAAe;QAC5B,CAAC,YAAY,CAAC,MAAM,KAAK,iBAAiB;YACxC,CAAC,YAAY,CAAC,gBAAgB;YAC9B,CAAC,YAAY,CAAC,oBAAoB,CAAC,CACtC,CAAC;AACJ,CAAC;AAwCY,QAAA,wBAAwB,GACnC,IAAA,kCAAiB,GAEd,CAAC"}
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../src/billing.ts"],"names":[],"mappings":";;;AAWA,kEAUC;AArBD,+DAA+D;AAW/D,SAAgB,2BAA2B,CACzC,YAA+D;IAE/D,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,CACL,YAAY,CAAC,eAAe;QAC5B,CAAC,YAAY,CAAC,MAAM,KAAK,iBAAiB;YACxC,CAAC,YAAY,CAAC,gBAAgB;YAC9B,CAAC,YAAY,CAAC,oBAAoB,CAAC,CACtC,CAAC;AACJ,CAAC;AAwCY,QAAA,wBAAwB,GACnC,IAAA,kCAAiB,GAEd,CAAC;AAiIO,QAAA,yBAAyB,GACpC,IAAA,kCAAiB,GAEd,CAAC"}
@@ -13,6 +13,7 @@ export interface InvoiceLineItemsContext {
13
13
  currency: string;
14
14
  periodStart: Date;
15
15
  periodEnd: Date;
16
+ isPreview?: boolean;
16
17
  }
17
18
  export type InvoiceLineItemsResolver = (context: InvoiceLineItemsContext) => Promise<InvoiceLineItem[]> | InvoiceLineItem[];
18
19
  export interface InvoiceLineItemsProvider {
@@ -1 +1 @@
1
- {"version":3,"file":"invoice-line-items.js","sourceRoot":"","sources":["../src/invoice-line-items.ts"],"names":[],"mappings":";;;AAuGA,kDAEC;AAmCD,wEAkCC;AAoCD,4EAYC;AAKD,gFAEC;AArOD,+DAA8D;AAqDjD,QAAA,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AA4BhC,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,eAAe,GAA6B;IAChD,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IACtE;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,0BAAkB,CAAC;KAC5D;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;KACxD;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;KAC9D;IACD,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;CACxE,CAAC;AAEF,SAAgB,mBAAmB,CAAC,UAAkB,EAAE,GAAW;IACjE,OAAO,GAAG,UAAU,GAAG,0BAAkB,GAAG,GAAG,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY;IACrC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAqB;IAErB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;AAC/E,CAAC;AAED,SAAS,yBAAyB,CAChC,OAAe;IAEf,OAAO,OAAO,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAe,EACf,mBAAwC,EACxC,YAAiC;IAEjC,IAAI,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,kBAAkB,CAAC;IAChE,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,eAAe,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AASD,SAAgB,8BAA8B,CAC5C,UAAkB,EAClB,KAAiC,EACjC,mBAAwC;IAExC,MAAM,QAAQ,GAA8B,EAAE,CAAC;IAC/C,MAAM,OAAO,GAA6B,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,mBAAmB,CACjC,UAAU,EACV,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAC5B,CAAC;QACF,MAAM,SAAS,GACb,mBAAmB,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC7C,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,sBAAsB,CACtC,OAAO,EACP,mBAAmB,EACnB,YAAY,CACb,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC7C,SAAS;QACX,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,IAAiB,QAAQ,CAIxB;AAJD,WAAiB,QAAQ;IACV,yCAAgC,GAAG,IAAI,iCAAgB,EAEjE,CAAC;AACN,CAAC,EAJgB,QAAQ,wBAAR,QAAQ,QAIxB;AA8BD,SAAgB,gCAAgC,CAC9C,QAAkC;IAElC,IAAI,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,0BAAkB,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,qDAAqD,0BAAkB,WAAW,QAAQ,CAAC,EAAE,KAAK,CACnG,CAAC;IACJ,CAAC;IACD,QAAQ,CAAC,gCAAgC,CAAC,QAAQ,CAChD,QAAQ,CAAC,EAAE,EACX,QAAQ,CAAC,OAAO,CACjB,CAAC;AACJ,CAAC;AAKD,SAAgB,kCAAkC,CAAC,UAAkB;IACnE,QAAQ,CAAC,gCAAgC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"invoice-line-items.js","sourceRoot":"","sources":["../src/invoice-line-items.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antelopejs/interface-dms-saas",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Public interfaces for the DMS SaaS module",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -58,10 +58,10 @@
58
58
  },
59
59
  "dependencies": {
60
60
  "@antelopejs/interface-data-api": ">=0.1.9 <1.0.0",
61
- "@antelopejs/interface-dms": ">=0.1.0 <1.0.0"
61
+ "@antelopejs/interface-dms": ">=0.2.5 <1.0.0"
62
62
  },
63
63
  "devDependencies": {
64
- "@antelopejs/interface-core": ">=0.0.13 <1.0.0",
64
+ "@antelopejs/interface-core": ">=0.1.1 <1.0.0",
65
65
  "@antelopejs/interface-database": ">=0.1.7 <1.0.0",
66
66
  "@antelopejs/interface-database-decorators": ">=0.1.6 <1.0.0",
67
67
  "@types/node": "^24.0.0",
@@ -75,7 +75,7 @@
75
75
  "typescript": "^6.0.3"
76
76
  },
77
77
  "peerDependencies": {
78
- "@antelopejs/interface-core": ">=0.0.13 <1.0.0",
78
+ "@antelopejs/interface-core": ">=0.1.1 <1.0.0",
79
79
  "@antelopejs/interface-database": ">=0.1.7 <1.0.0",
80
80
  "@antelopejs/interface-database-decorators": ">=0.1.6 <1.0.0"
81
81
  },