@antelopejs/interface-dms-saas 0.2.6 → 0.3.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.
- package/dist/db/models/planMigrations.model.d.ts +1 -0
- package/dist/db/models/planMigrations.model.js +5 -0
- package/dist/db/models/planMigrations.model.js.map +1 -1
- package/dist/db/tables/features.table.d.ts +9 -1
- package/dist/db/tables/features.table.js +5 -2
- package/dist/db/tables/features.table.js.map +1 -1
- package/dist/plans.d.ts +4 -2
- package/dist/plans.js +11 -2
- package/dist/plans.js.map +1 -1
- package/package.json +1 -1
|
@@ -22,6 +22,7 @@ export declare class PlanMigrationModel extends PlanMigrationModel_base {
|
|
|
22
22
|
insert(rows: DeepPartial<PlanMigration> | DeepPartial<PlanMigration>[], options?: ValidateOptions): Promise<string[]>;
|
|
23
23
|
beginJob(job: PlanMigration, snapshot: PlanMigrationSnapshot): Promise<boolean>;
|
|
24
24
|
checkpoint(job: PlanMigration, patch: Partial<PlanMigration>): Promise<void>;
|
|
25
|
+
markInterrupted(job: PlanMigration): Promise<boolean>;
|
|
25
26
|
private persist;
|
|
26
27
|
findResumable(): Promise<PlanMigration[]>;
|
|
27
28
|
existsPendingOrRunningForPlan(fromPlanId: string): Promise<boolean>;
|
|
@@ -27,6 +27,11 @@ class PlanMigrationModel extends (0, interface_database_decorators_1.BasicDataMo
|
|
|
27
27
|
if (job.status !== "running" || !(await this.persist(job, patch)))
|
|
28
28
|
throw new Error("Migration progress changed; reconciliation required");
|
|
29
29
|
}
|
|
30
|
+
async markInterrupted(job) {
|
|
31
|
+
if (job.status !== "running")
|
|
32
|
+
return false;
|
|
33
|
+
return this.persist(job, { status: "reconciliation_required" });
|
|
34
|
+
}
|
|
30
35
|
async persist(job, patch) {
|
|
31
36
|
const nextRevision = (0, node_crypto_1.randomUUID)();
|
|
32
37
|
const outcome = await this.table
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planMigrations.model.js","sourceRoot":"","sources":["../../../src/db/models/planMigrations.model.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"planMigrations.model.js","sourceRoot":"","sources":["../../../src/db/models/planMigrations.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,14 @@ export declare const featuresTableName = "features";
|
|
|
3
3
|
export declare const FEATURE_VALUE_TYPES: readonly ["boolean", "number", "string"];
|
|
4
4
|
export type FeatureValueType = (typeof FEATURE_VALUE_TYPES)[number];
|
|
5
5
|
export declare const FEATURE_DEFAULT_ORDER = 0;
|
|
6
|
-
export declare
|
|
6
|
+
export declare const FEATURE_FALLBACK_LOCALE = "en";
|
|
7
|
+
export type FeatureLocalizedText = Record<string, string>;
|
|
8
|
+
declare const Feature_base: import("@antelopejs/interface-database-decorators").TableClass<Table & {
|
|
9
|
+
localize<This extends {
|
|
10
|
+
constructor: any;
|
|
11
|
+
}>(this: This, locale: string, fields?: Array<keyof This>): This;
|
|
12
|
+
}, [], object>;
|
|
13
|
+
export declare class Feature extends Feature_base {
|
|
7
14
|
_id: string;
|
|
8
15
|
displayName: string;
|
|
9
16
|
description: string;
|
|
@@ -16,3 +23,4 @@ export declare class Feature extends Table {
|
|
|
16
23
|
createdAt: Date;
|
|
17
24
|
updatedAt: Date;
|
|
18
25
|
}
|
|
26
|
+
export {};
|
|
@@ -9,13 +9,14 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.Feature = exports.FEATURE_DEFAULT_ORDER = exports.FEATURE_VALUE_TYPES = exports.featuresTableName = void 0;
|
|
12
|
+
exports.Feature = exports.FEATURE_FALLBACK_LOCALE = exports.FEATURE_DEFAULT_ORDER = exports.FEATURE_VALUE_TYPES = exports.featuresTableName = void 0;
|
|
13
13
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
14
14
|
const constants_1 = require("@antelopejs/interface-dms/constants");
|
|
15
15
|
exports.featuresTableName = "features";
|
|
16
16
|
exports.FEATURE_VALUE_TYPES = ["boolean", "number", "string"];
|
|
17
17
|
exports.FEATURE_DEFAULT_ORDER = 0;
|
|
18
|
-
|
|
18
|
+
exports.FEATURE_FALLBACK_LOCALE = "en";
|
|
19
|
+
let Feature = class Feature extends interface_database_decorators_1.Table.with(interface_database_decorators_1.LocalizationModifier) {
|
|
19
20
|
};
|
|
20
21
|
exports.Feature = Feature;
|
|
21
22
|
__decorate([
|
|
@@ -23,6 +24,7 @@ __decorate([
|
|
|
23
24
|
__metadata("design:type", String)
|
|
24
25
|
], Feature.prototype, "_id", void 0);
|
|
25
26
|
__decorate([
|
|
27
|
+
(0, interface_database_decorators_1.Localized)({ fallbackLocale: exports.FEATURE_FALLBACK_LOCALE }),
|
|
26
28
|
(0, interface_database_decorators_1.Field)("string"),
|
|
27
29
|
__metadata("design:type", String)
|
|
28
30
|
], Feature.prototype, "displayName", void 0);
|
|
@@ -39,6 +41,7 @@ __decorate([
|
|
|
39
41
|
__metadata("design:type", Object)
|
|
40
42
|
], Feature.prototype, "defaultValue", void 0);
|
|
41
43
|
__decorate([
|
|
44
|
+
(0, interface_database_decorators_1.Localized)({ fallbackLocale: exports.FEATURE_FALLBACK_LOCALE }),
|
|
42
45
|
(0, interface_database_decorators_1.Field)("string"),
|
|
43
46
|
__metadata("design:type", Object)
|
|
44
47
|
], Feature.prototype, "tooltip", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features.table.js","sourceRoot":"","sources":["../../../src/db/tables/features.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"features.table.js","sourceRoot":"","sources":["../../../src/db/tables/features.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAQmD;AACnD,mEAAuE;AAE1D,QAAA,iBAAiB,GAAG,UAAU,CAAC;AAE/B,QAAA,mBAAmB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAG/D,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAG1B,QAAA,uBAAuB,GAAG,IAAI,CAAC;AAarC,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,qCAAK,CAAC,IAAI,CAAC,oDAAoB,CAAC;CAqC5D,CAAA;AArCY,0BAAO;AAEV;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;oCACI;AAIZ;IAFP,IAAA,yCAAS,EAAC,EAAE,cAAc,EAAE,+BAAuB,EAAE,CAAC;IACtD,IAAA,qCAAK,EAAC,QAAQ,CAAC;;4CACY;AAGpB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;4CACY;AAGpB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;0CACoB;AAG5B;IADP,IAAA,qCAAK,EAAC,KAAK,CAAC;;6CACiB;AAItB;IAFP,IAAA,yCAAS,EAAC,EAAE,cAAc,EAAE,+BAAuB,EAAE,CAAC;IACtD,IAAA,qCAAK,EAAC,QAAQ,CAAC;;wCACe;AAGvB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;qCACY;AAGpB;IADP,IAAA,qCAAK,EAAC,SAAS,CAAC;;4CACY;AAGrB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;sCACM;AAId;IAFP,IAAA,4CAAY,GAAE;IACd,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;0CAAC;AAIhB;IAFP,IAAA,0CAAU,GAAE;IACZ,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;0CAAC;kBApCb,OAAO;IADnB,IAAA,6CAAa,EAAC,yBAAiB,EAAE,4BAAgB,CAAC;GACtC,OAAO,CAqCnB"}
|
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;
|
|
@@ -24,4 +24,6 @@ export interface TenantPlanCatalog {
|
|
|
24
24
|
}
|
|
25
25
|
export declare function monthlyPrice(plan: Plan): number;
|
|
26
26
|
export declare function isDowngrade(current: Plan | null, target: Plan): boolean;
|
|
27
|
-
export declare
|
|
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 = {
|
|
@@ -16,6 +18,13 @@ function isDowngrade(current, target) {
|
|
|
16
18
|
return false;
|
|
17
19
|
return monthlyPrice(target) < monthlyPrice(current);
|
|
18
20
|
}
|
|
21
|
+
exports.FEATURE_LOCALIZED_FIELDS = [
|
|
22
|
+
"displayName",
|
|
23
|
+
"tooltip",
|
|
24
|
+
];
|
|
25
|
+
function localizeFeature(feature, locale) {
|
|
26
|
+
return feature.localize(locale, exports.FEATURE_LOCALIZED_FIELDS);
|
|
27
|
+
}
|
|
19
28
|
function toPlanFeature(feature) {
|
|
20
29
|
return {
|
|
21
30
|
featureId: feature._id,
|
|
@@ -46,14 +55,14 @@ async function toPlanView(planModel, plan, knownFeatureIds) {
|
|
|
46
55
|
featureValues,
|
|
47
56
|
};
|
|
48
57
|
}
|
|
49
|
-
async function buildTenantPlanCatalog(planModel, featureModel, plans) {
|
|
58
|
+
async function buildTenantPlanCatalog(planModel, featureModel, plans, locale) {
|
|
50
59
|
const features = await featureModel.getAll();
|
|
51
60
|
const knownFeatureIds = new Set(features.map((feature) => feature._id));
|
|
52
61
|
const views = await Promise.all(plans.map((plan) => toPlanView(planModel, plan, knownFeatureIds)));
|
|
53
62
|
return {
|
|
54
63
|
plans: views.sort((left, right) => left.order - right.order),
|
|
55
64
|
features: features
|
|
56
|
-
.map(toPlanFeature)
|
|
65
|
+
.map((feature) => toPlanFeature(localizeFeature(feature, locale)))
|
|
57
66
|
.sort((left, right) => left.order - right.order),
|
|
58
67
|
};
|
|
59
68
|
}
|
package/dist/plans.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}
|