@antelopejs/interface-dms-saas 0.2.7 → 0.4.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.
Files changed (59) hide show
  1. package/README.md +19 -0
  2. package/dist/billing.d.ts +2 -0
  3. package/dist/billing.js +2 -1
  4. package/dist/billing.js.map +1 -1
  5. package/dist/db/models/creditNotes.model.d.ts +1 -0
  6. package/dist/db/models/creditNotes.model.js +9 -0
  7. package/dist/db/models/creditNotes.model.js.map +1 -1
  8. package/dist/db/models/planMigrations.model.d.ts +5 -2
  9. package/dist/db/models/planMigrations.model.js +25 -8
  10. package/dist/db/models/planMigrations.model.js.map +1 -1
  11. package/dist/db/models/segments.model.d.ts +7 -2
  12. package/dist/db/models/segments.model.js +14 -3
  13. package/dist/db/models/segments.model.js.map +1 -1
  14. package/dist/db/models/tenantBillingState.model.d.ts +3 -2
  15. package/dist/db/models/tenantBillingState.model.js +47 -5
  16. package/dist/db/models/tenantBillingState.model.js.map +1 -1
  17. package/dist/db/models/tenantSubscriptions.model.d.ts +1 -0
  18. package/dist/db/models/tenantSubscriptions.model.js +6 -0
  19. package/dist/db/models/tenantSubscriptions.model.js.map +1 -1
  20. package/dist/db/models/userSegments.model.d.ts +2 -1
  21. package/dist/db/models/userSegments.model.js +2 -2
  22. package/dist/db/models/userSegments.model.js.map +1 -1
  23. package/dist/db/tables/billingSettings.table.d.ts +1 -0
  24. package/dist/db/tables/billingSettings.table.js +4 -0
  25. package/dist/db/tables/billingSettings.table.js.map +1 -1
  26. package/dist/db/tables/features.table.d.ts +9 -1
  27. package/dist/db/tables/features.table.js +7 -2
  28. package/dist/db/tables/features.table.js.map +1 -1
  29. package/dist/db/tables/invoices.table.d.ts +6 -0
  30. package/dist/db/tables/invoices.table.js +24 -0
  31. package/dist/db/tables/invoices.table.js.map +1 -1
  32. package/dist/db/tables/legalDocuments.table.d.ts +8 -0
  33. package/dist/db/tables/legalDocuments.table.js +10 -1
  34. package/dist/db/tables/legalDocuments.table.js.map +1 -1
  35. package/dist/db/tables/planMigrations.table.d.ts +19 -1
  36. package/dist/db/tables/planMigrations.table.js +60 -1
  37. package/dist/db/tables/planMigrations.table.js.map +1 -1
  38. package/dist/db/tables/plans.table.d.ts +1 -0
  39. package/dist/db/tables/plans.table.js +2 -1
  40. package/dist/db/tables/plans.table.js.map +1 -1
  41. package/dist/db/tables/segments.table.d.ts +6 -0
  42. package/dist/db/tables/segments.table.js +8 -0
  43. package/dist/db/tables/segments.table.js.map +1 -1
  44. package/dist/db/tables/tenantBillingState.table.d.ts +48 -1
  45. package/dist/db/tables/tenantBillingState.table.js +100 -1
  46. package/dist/db/tables/tenantBillingState.table.js.map +1 -1
  47. package/dist/db/tables/tenantSubscriptions.table.d.ts +2 -0
  48. package/dist/db/tables/tenantSubscriptions.table.js +9 -0
  49. package/dist/db/tables/tenantSubscriptions.table.js.map +1 -1
  50. package/dist/page-definitions.d.ts +1 -8
  51. package/dist/page-definitions.js +1 -27
  52. package/dist/page-definitions.js.map +1 -1
  53. package/dist/pages.d.ts +1 -2
  54. package/dist/pages.js +13 -11
  55. package/dist/pages.js.map +1 -1
  56. package/dist/plans.d.ts +5 -3
  57. package/dist/plans.js +23 -4
  58. package/dist/plans.js.map +1 -1
  59. package/package.json +3 -3
@@ -1,17 +1,10 @@
1
- import type { MenuOptions, ModuleInfo, PageInfo } from "@antelopejs/interface-dms/page";
1
+ import type { ModuleInfo, PageInfo } from "@antelopejs/interface-dms/page";
2
2
  interface SaasModuleDefinition {
3
3
  fullId: string;
4
4
  fullSlug: string;
5
5
  registration: ModuleInfo;
6
6
  }
7
- interface WorkspaceSettingsCategoryDefinition extends Omit<MenuOptions, "category" | "module"> {
8
- id: string;
9
- fullId: string;
10
- fullSlug: string;
11
- }
12
7
  export declare const MODULES_ROOT_DEFINITION: PageInfo;
13
- export declare const SETTINGS_ROOT_DEFINITION: PageInfo;
14
8
  export declare const SAAS_MODULE_ID = "saas";
15
9
  export declare const SAAS_MODULE_DEFINITION: SaasModuleDefinition;
16
- export declare const WORKSPACE_SETTINGS_CATEGORY_DEFINITION: WorkspaceSettingsCategoryDefinition;
17
10
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WORKSPACE_SETTINGS_CATEGORY_DEFINITION = exports.SAAS_MODULE_DEFINITION = exports.SAAS_MODULE_ID = exports.SETTINGS_ROOT_DEFINITION = exports.MODULES_ROOT_DEFINITION = void 0;
3
+ exports.SAAS_MODULE_DEFINITION = exports.SAAS_MODULE_ID = exports.MODULES_ROOT_DEFINITION = void 0;
4
4
  exports.MODULES_ROOT_DEFINITION = {
5
5
  id: "modules",
6
6
  fullId: "modules",
@@ -19,23 +19,6 @@ exports.MODULES_ROOT_DEFINITION = {
19
19
  authOnly: undefined,
20
20
  bypassTenantAccessGate: undefined,
21
21
  };
22
- exports.SETTINGS_ROOT_DEFINITION = {
23
- id: "settings",
24
- fullId: "settings",
25
- fullSlug: "/settings",
26
- layoutUrl: "/settings/pagelayout",
27
- category: undefined,
28
- displayName: "$page.settings.title",
29
- description: "$page.settings.intro",
30
- urlSlug: "/settings",
31
- icon: "i-ph-gear",
32
- order: 3,
33
- noComponentPermissions: true,
34
- hidden: undefined,
35
- publicAccess: undefined,
36
- authOnly: undefined,
37
- bypassTenantAccessGate: undefined,
38
- };
39
22
  exports.SAAS_MODULE_ID = "saas";
40
23
  exports.SAAS_MODULE_DEFINITION = {
41
24
  fullId: `${exports.MODULES_ROOT_DEFINITION.fullId}.${exports.SAAS_MODULE_ID}`,
@@ -48,13 +31,4 @@ exports.SAAS_MODULE_DEFINITION = {
48
31
  landingPage: "dashboard",
49
32
  },
50
33
  };
51
- exports.WORKSPACE_SETTINGS_CATEGORY_DEFINITION = {
52
- id: "workspace",
53
- fullId: `${exports.SETTINGS_ROOT_DEFINITION.fullId}.workspace`,
54
- fullSlug: `${exports.SETTINGS_ROOT_DEFINITION.fullSlug}/workspace`,
55
- displayName: "$saas.workspace.settings.title",
56
- urlSlug: "workspace",
57
- icon: "i-ph-buildings",
58
- order: 2,
59
- };
60
34
  //# sourceMappingURL=page-definitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-definitions.js","sourceRoot":"","sources":["../src/page-definitions.ts"],"names":[],"mappings":";;;AAqBa,QAAA,uBAAuB,GAAa;IAC/C,EAAE,EAAE,SAAS;IACb,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,qBAAqB;IAChC,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,CAAC;IACR,sBAAsB,EAAE,IAAI;IAC5B,YAAY,EAAE,IAAI;IAClB,MAAM,EAAE,SAAS;IACjB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,SAAS;IACnB,sBAAsB,EAAE,SAAS;CAClC,CAAC;AAEW,QAAA,wBAAwB,GAAa;IAChD,EAAE,EAAE,UAAU;IACd,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,sBAAsB;IACjC,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,sBAAsB;IACnC,WAAW,EAAE,sBAAsB;IACnC,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,CAAC;IACR,sBAAsB,EAAE,IAAI;IAC5B,MAAM,EAAE,SAAS;IACjB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,SAAS;IACnB,sBAAsB,EAAE,SAAS;CAClC,CAAC;AAEW,QAAA,cAAc,GAAG,MAAM,CAAC;AAExB,QAAA,sBAAsB,GAAyB;IAC1D,MAAM,EAAE,GAAG,+BAAuB,CAAC,MAAM,IAAI,sBAAc,EAAE;IAC7D,QAAQ,EAAE,GAAG,+BAAuB,CAAC,QAAQ,IAAI,sBAAc,EAAE;IACjE,YAAY,EAAE;QACZ,EAAE,EAAE,sBAAc;QAClB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,0BAA0B;QACvC,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,WAAW;KACzB;CACF,CAAC;AAEW,QAAA,sCAAsC,GACjD;IACE,EAAE,EAAE,WAAW;IACf,MAAM,EAAE,GAAG,gCAAwB,CAAC,MAAM,YAAY;IACtD,QAAQ,EAAE,GAAG,gCAAwB,CAAC,QAAQ,YAAY;IAC1D,WAAW,EAAE,gCAAgC;IAC7C,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,CAAC;CACT,CAAC"}
1
+ {"version":3,"file":"page-definitions.js","sourceRoot":"","sources":["../src/page-definitions.ts"],"names":[],"mappings":";;;AAQa,QAAA,uBAAuB,GAAa;IAC/C,EAAE,EAAE,SAAS;IACb,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,qBAAqB;IAChC,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,CAAC;IACR,sBAAsB,EAAE,IAAI;IAC5B,YAAY,EAAE,IAAI;IAClB,MAAM,EAAE,SAAS;IACjB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,SAAS;IACnB,sBAAsB,EAAE,SAAS;CAClC,CAAC;AAEW,QAAA,cAAc,GAAG,MAAM,CAAC;AAExB,QAAA,sBAAsB,GAAyB;IAC1D,MAAM,EAAE,GAAG,+BAAuB,CAAC,MAAM,IAAI,sBAAc,EAAE;IAC7D,QAAQ,EAAE,GAAG,+BAAuB,CAAC,QAAQ,IAAI,sBAAc,EAAE;IACjE,YAAY,EAAE;QACZ,EAAE,EAAE,sBAAc;QAClB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,0BAA0B;QACvC,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,WAAW;KACzB;CACF,CAAC"}
package/dist/pages.d.ts CHANGED
@@ -1,7 +1,5 @@
1
1
  import type { Component, PlacementSide } from "@antelopejs/interface-dms/component";
2
2
  import { type CategoryInfo, type PageExtensionComponent } from "@antelopejs/interface-dms/page";
3
- export declare const workspaceSettingsCategory: CategoryInfo;
4
- export declare const GetWorkspaceSettingsCategory: () => Promise<CategoryInfo>;
5
3
  export declare const tenantBillingPage: {
6
4
  readonly id: "billing";
7
5
  readonly fullId: "settings.workspace.billing";
@@ -17,6 +15,7 @@ export declare const tenantBillingPage: {
17
15
  };
18
16
  };
19
17
  export type TenantBillingPageComponentKey = (typeof tenantBillingPage.components)[keyof typeof tenantBillingPage.components];
18
+ export declare const tenantBillingPageAnchorPaths: Readonly<Record<TenantBillingPageComponentKey, readonly string[]>>;
20
19
  export interface TenantBillingPageExtensionComponentBase {
21
20
  key: string;
22
21
  component: Component;
package/dist/pages.js CHANGED
@@ -1,19 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.platformWorkspaceDetailPage = exports.GetPlatformSaasModule = exports.platformSaasModule = exports.tenantBillingPage = exports.GetWorkspaceSettingsCategory = exports.workspaceSettingsCategory = void 0;
3
+ exports.platformWorkspaceDetailPage = exports.GetPlatformSaasModule = exports.platformSaasModule = exports.tenantBillingPageAnchorPaths = exports.tenantBillingPage = void 0;
4
4
  exports.RegisterTenantBillingPageExtension = RegisterTenantBillingPageExtension;
5
5
  exports.RegisterPlatformWorkspaceDetailPageExtension = RegisterPlatformWorkspaceDetailPageExtension;
6
6
  const interface_core_1 = require("@antelopejs/interface-core");
7
7
  const page_1 = require("@antelopejs/interface-dms/page");
8
8
  const page_definitions_1 = require("./page-definitions");
9
- exports.workspaceSettingsCategory = {
10
- ...page_definitions_1.WORKSPACE_SETTINGS_CATEGORY_DEFINITION,
11
- category: page_definitions_1.SETTINGS_ROOT_DEFINITION,
12
- urlTransparent: false,
13
- hidden: undefined,
14
- bypassTenantAccessGate: undefined,
15
- };
16
- exports.GetWorkspaceSettingsCategory = (0, interface_core_1.InterfaceFunction)();
17
9
  exports.tenantBillingPage = {
18
10
  id: "billing",
19
11
  fullId: "settings.workspace.billing",
@@ -28,6 +20,15 @@ exports.tenantBillingPage = {
28
20
  table: "table",
29
21
  },
30
22
  };
23
+ exports.tenantBillingPageAnchorPaths = {
24
+ freeAccessBanner: ["freeAccessBanner"],
25
+ pastDueAlert: ["pastDueAlert"],
26
+ planCard: ["overview", "plan", "current", "planCard"],
27
+ paymentMethod: ["overview", "payment", "method", "paymentMethod"],
28
+ refundButton: ["overview", "payment", "guarantee", "refundButton"],
29
+ billingForm: ["billingForm"],
30
+ table: ["invoices", "table"],
31
+ };
31
32
  exports.platformSaasModule = {
32
33
  id: page_definitions_1.SAAS_MODULE_DEFINITION.registration.id,
33
34
  fullId: page_definitions_1.SAAS_MODULE_DEFINITION.fullId,
@@ -59,8 +60,9 @@ function toPageExtensionComponent(input) {
59
60
  side: input.side ?? "end",
60
61
  order: input.order ?? 0,
61
62
  };
62
- if (input.anchorKey)
63
- component.anchorPath = [input.anchorKey];
63
+ if (input.anchorKey) {
64
+ component.anchorPath = exports.tenantBillingPageAnchorPaths[input.anchorKey];
65
+ }
64
66
  return component;
65
67
  }
66
68
  function RegisterTenantBillingPageExtension(extension) {
package/dist/pages.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pages.js","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"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"}
package/dist/plans.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { FeatureModel, FeatureValueType, Plan, PlanInterval, PlanModel } from "./db";
1
+ import type { Feature, FeatureModel, FeatureValueType, Plan, PlanInterval, PlanModel } from "./db";
2
2
  export interface TenantPlanFeature {
3
3
  featureId: string;
4
4
  displayName: string;
@@ -23,5 +23,7 @@ export interface TenantPlanCatalog {
23
23
  features: TenantPlanFeature[];
24
24
  }
25
25
  export declare function monthlyPrice(plan: Plan): number;
26
- export declare function isDowngrade(current: Plan | null, target: Plan): boolean;
27
- export declare function buildTenantPlanCatalog(planModel: PlanModel, featureModel: FeatureModel, plans: Plan[]): Promise<TenantPlanCatalog>;
26
+ export declare function isDowngrade(current: Plan | null, target: Plan, seats?: number): boolean;
27
+ export declare const FEATURE_LOCALIZED_FIELDS: Array<keyof Feature>;
28
+ export declare function localizeFeature(feature: Feature, locale: string): Feature;
29
+ export declare function buildTenantPlanCatalog(planModel: PlanModel, featureModel: FeatureModel, plans: Plan[], locale: string): Promise<TenantPlanCatalog>;
package/dist/plans.js CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FEATURE_LOCALIZED_FIELDS = void 0;
3
4
  exports.monthlyPrice = monthlyPrice;
4
5
  exports.isDowngrade = isDowngrade;
6
+ exports.localizeFeature = localizeFeature;
5
7
  exports.buildTenantPlanCatalog = buildTenantPlanCatalog;
6
8
  const db_1 = require("./db");
7
9
  const MONTHS_PER_INTERVAL = {
@@ -11,10 +13,27 @@ const MONTHS_PER_INTERVAL = {
11
13
  function monthlyPrice(plan) {
12
14
  return plan.price / MONTHS_PER_INTERVAL[plan.interval];
13
15
  }
14
- function isDowngrade(current, target) {
16
+ const SEAT_BILLING_MODE = "seat";
17
+ const MIN_BILLED_SEATS = 1;
18
+ function monthlyCost(plan, seats) {
19
+ const units = plan.billingMode === SEAT_BILLING_MODE
20
+ ? Math.max(MIN_BILLED_SEATS, seats)
21
+ : 1;
22
+ return monthlyPrice(plan) * units;
23
+ }
24
+ function isDowngrade(current, target, seats = MIN_BILLED_SEATS) {
15
25
  if (!current)
16
26
  return false;
17
- return monthlyPrice(target) < monthlyPrice(current);
27
+ return monthlyCost(target, seats) < monthlyCost(current, seats);
28
+ }
29
+ exports.FEATURE_LOCALIZED_FIELDS = [
30
+ "displayName",
31
+ "description",
32
+ "tooltip",
33
+ "unit",
34
+ ];
35
+ function localizeFeature(feature, locale) {
36
+ return feature.localize(locale, exports.FEATURE_LOCALIZED_FIELDS);
18
37
  }
19
38
  function toPlanFeature(feature) {
20
39
  return {
@@ -46,14 +65,14 @@ async function toPlanView(planModel, plan, knownFeatureIds) {
46
65
  featureValues,
47
66
  };
48
67
  }
49
- async function buildTenantPlanCatalog(planModel, featureModel, plans) {
68
+ async function buildTenantPlanCatalog(planModel, featureModel, plans, locale) {
50
69
  const features = await featureModel.getAll();
51
70
  const knownFeatureIds = new Set(features.map((feature) => feature._id));
52
71
  const views = await Promise.all(plans.map((plan) => toPlanView(planModel, plan, knownFeatureIds)));
53
72
  return {
54
73
  plans: views.sort((left, right) => left.order - right.order),
55
74
  features: features
56
- .map(toPlanFeature)
75
+ .map((feature) => toPlanFeature(localizeFeature(feature, locale)))
57
76
  .sort((left, right) => left.order - right.order),
58
77
  };
59
78
  }
package/dist/plans.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plans.js","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":";;AA6CA,oCAEC;AAMD,kCAGC;AA0CD,wDAgBC;AA1GD,6BAA6C;AAE7C,MAAM,mBAAmB,GAAiC;IACxD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,EAAE;CACT,CAAC;AAgCF,SAAgB,YAAY,CAAC,IAAU;IACrC,OAAO,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzD,CAAC;AAMD,SAAgB,WAAW,CAAC,OAAoB,EAAE,MAAY;IAC5D,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB;IACrC,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,GAAG;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,0BAAqB;KAC9C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,SAAoB,EACpB,IAAU,EACV,eAA4B;IAE5B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,aAAa,GAA4B,EAAE,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;YAAE,SAAS;QACpD,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAC/C,CAAC;IACD,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,aAAa;QAC5D,aAAa;KACd,CAAC;AACJ,CAAC;AAOM,KAAK,UAAU,sBAAsB,CAC1C,SAAoB,EACpB,YAA0B,EAC1B,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;IAC7C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAClE,CAAC;IACF,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5D,QAAQ,EAAE,QAAQ;aACf,GAAG,CAAC,aAAa,CAAC;aAClB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;KACnD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"plans.js","sourceRoot":"","sources":["../src/plans.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.2.7",
3
+ "version": "0.4.0",
4
4
  "description": "Public interfaces for the DMS SaaS module",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -57,8 +57,8 @@
57
57
  "prepack": "pnpm run build"
58
58
  },
59
59
  "dependencies": {
60
- "@antelopejs/interface-data-api": ">=0.1.9 <1.0.0",
61
- "@antelopejs/interface-dms": ">=0.3.1 <1.0.0"
60
+ "@antelopejs/interface-data-api": ">=0.2.0 <1.0.0",
61
+ "@antelopejs/interface-dms": ">=0.5.5 <1.0.0"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@antelopejs/interface-core": ">=0.1.1 <1.0.0",