@antelopejs/interface-dms-saas 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/LICENSE +190 -0
- package/README.md +51 -0
- package/dist/billing.d.ts +25 -0
- package/dist/billing.js +15 -0
- package/dist/billing.js.map +1 -0
- package/dist/data-api.d.ts +1 -0
- package/dist/data-api.js +6 -0
- package/dist/data-api.js.map +1 -0
- package/dist/db/index.d.ts +2 -0
- package/dist/db/index.js +19 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/models/billingSettings.model.d.ts +22 -0
- package/dist/db/models/billingSettings.model.js +9 -0
- package/dist/db/models/billingSettings.model.js.map +1 -0
- package/dist/db/models/creditNotes.model.d.ts +25 -0
- package/dist/db/models/creditNotes.model.js +26 -0
- package/dist/db/models/creditNotes.model.js.map +1 -0
- package/dist/db/models/features.model.d.ts +22 -0
- package/dist/db/models/features.model.js +9 -0
- package/dist/db/models/features.model.js.map +1 -0
- package/dist/db/models/index.d.ts +19 -0
- package/dist/db/models/index.js +36 -0
- package/dist/db/models/index.js.map +1 -0
- package/dist/db/models/invoices.model.d.ts +29 -0
- package/dist/db/models/invoices.model.js +60 -0
- package/dist/db/models/invoices.model.js.map +1 -0
- package/dist/db/models/legalDocuments.model.d.ts +22 -0
- package/dist/db/models/legalDocuments.model.js +9 -0
- package/dist/db/models/legalDocuments.model.js.map +1 -0
- package/dist/db/models/planMigrations.model.d.ts +29 -0
- package/dist/db/models/planMigrations.model.js +70 -0
- package/dist/db/models/planMigrations.model.js.map +1 -0
- package/dist/db/models/plans.model.d.ts +31 -0
- package/dist/db/models/plans.model.js +74 -0
- package/dist/db/models/plans.model.js.map +1 -0
- package/dist/db/models/platformNotes.model.d.ts +33 -0
- package/dist/db/models/platformNotes.model.js +27 -0
- package/dist/db/models/platformNotes.model.js.map +1 -0
- package/dist/db/models/refunds.model.d.ts +23 -0
- package/dist/db/models/refunds.model.js +17 -0
- package/dist/db/models/refunds.model.js.map +1 -0
- package/dist/db/models/revision.d.ts +1 -0
- package/dist/db/models/revision.js +14 -0
- package/dist/db/models/revision.js.map +1 -0
- package/dist/db/models/segments.model.d.ts +29 -0
- package/dist/db/models/segments.model.js +81 -0
- package/dist/db/models/segments.model.js.map +1 -0
- package/dist/db/models/stripeWebhookEvents.model.d.ts +26 -0
- package/dist/db/models/stripeWebhookEvents.model.js +70 -0
- package/dist/db/models/stripeWebhookEvents.model.js.map +1 -0
- package/dist/db/models/supportMessages.model.d.ts +23 -0
- package/dist/db/models/supportMessages.model.js +17 -0
- package/dist/db/models/supportMessages.model.js.map +1 -0
- package/dist/db/models/supportTicketEvents.model.d.ts +22 -0
- package/dist/db/models/supportTicketEvents.model.js +9 -0
- package/dist/db/models/supportTicketEvents.model.js.map +1 -0
- package/dist/db/models/supportTickets.model.d.ts +25 -0
- package/dist/db/models/supportTickets.model.js +32 -0
- package/dist/db/models/supportTickets.model.js.map +1 -0
- package/dist/db/models/tenantBillingInfo.model.d.ts +24 -0
- package/dist/db/models/tenantBillingInfo.model.js +20 -0
- package/dist/db/models/tenantBillingInfo.model.js.map +1 -0
- package/dist/db/models/tenantBillingState.model.d.ts +28 -0
- package/dist/db/models/tenantBillingState.model.js +72 -0
- package/dist/db/models/tenantBillingState.model.js.map +1 -0
- package/dist/db/models/tenantSubscriptions.model.d.ts +51 -0
- package/dist/db/models/tenantSubscriptions.model.js +305 -0
- package/dist/db/models/tenantSubscriptions.model.js.map +1 -0
- package/dist/db/models/trialConsumptions.model.d.ts +24 -0
- package/dist/db/models/trialConsumptions.model.js +30 -0
- package/dist/db/models/trialConsumptions.model.js.map +1 -0
- package/dist/db/models/update-result.d.ts +1 -0
- package/dist/db/models/update-result.js +13 -0
- package/dist/db/models/update-result.js.map +1 -0
- package/dist/db/models/userSegments.model.d.ts +30 -0
- package/dist/db/models/userSegments.model.js +97 -0
- package/dist/db/models/userSegments.model.js.map +1 -0
- package/dist/db/tables/billingSettings.table.d.ts +22 -0
- package/dist/db/tables/billingSettings.table.js +73 -0
- package/dist/db/tables/billingSettings.table.js.map +1 -0
- package/dist/db/tables/creditNotes.table.d.ts +26 -0
- package/dist/db/tables/creditNotes.table.js +110 -0
- package/dist/db/tables/creditNotes.table.js.map +1 -0
- package/dist/db/tables/features.table.d.ts +18 -0
- package/dist/db/tables/features.table.js +70 -0
- package/dist/db/tables/features.table.js.map +1 -0
- package/dist/db/tables/index.d.ts +19 -0
- package/dist/db/tables/index.js +36 -0
- package/dist/db/tables/index.js.map +1 -0
- package/dist/db/tables/invoices.table.d.ts +47 -0
- package/dist/db/tables/invoices.table.js +140 -0
- package/dist/db/tables/invoices.table.js.map +1 -0
- package/dist/db/tables/legalDocuments.table.d.ts +10 -0
- package/dist/db/tables/legalDocuments.table.js +44 -0
- package/dist/db/tables/legalDocuments.table.js.map +1 -0
- package/dist/db/tables/planMigrations.table.d.ts +61 -0
- package/dist/db/tables/planMigrations.table.js +114 -0
- package/dist/db/tables/planMigrations.table.js.map +1 -0
- package/dist/db/tables/plans.table.d.ts +41 -0
- package/dist/db/tables/plans.table.js +125 -0
- package/dist/db/tables/plans.table.js.map +1 -0
- package/dist/db/tables/platformNotes.table.d.ts +13 -0
- package/dist/db/tables/platformNotes.table.js +58 -0
- package/dist/db/tables/platformNotes.table.js.map +1 -0
- package/dist/db/tables/refunds.table.d.ts +15 -0
- package/dist/db/tables/refunds.table.js +70 -0
- package/dist/db/tables/refunds.table.js.map +1 -0
- package/dist/db/tables/segments.table.d.ts +37 -0
- package/dist/db/tables/segments.table.js +79 -0
- package/dist/db/tables/segments.table.js.map +1 -0
- package/dist/db/tables/stripeWebhookEvents.table.d.ts +12 -0
- package/dist/db/tables/stripeWebhookEvents.table.js +54 -0
- package/dist/db/tables/stripeWebhookEvents.table.js.map +1 -0
- package/dist/db/tables/supportMessages.table.d.ts +14 -0
- package/dist/db/tables/supportMessages.table.js +62 -0
- package/dist/db/tables/supportMessages.table.js.map +1 -0
- package/dist/db/tables/supportTicketEvents.table.d.ts +14 -0
- package/dist/db/tables/supportTicketEvents.table.js +61 -0
- package/dist/db/tables/supportTicketEvents.table.js.map +1 -0
- package/dist/db/tables/supportTickets.table.d.ts +25 -0
- package/dist/db/tables/supportTickets.table.js +109 -0
- package/dist/db/tables/supportTickets.table.js.map +1 -0
- package/dist/db/tables/tenantBillingInfo.table.d.ts +24 -0
- package/dist/db/tables/tenantBillingInfo.table.js +62 -0
- package/dist/db/tables/tenantBillingInfo.table.js.map +1 -0
- package/dist/db/tables/tenantBillingState.table.d.ts +12 -0
- package/dist/db/tables/tenantBillingState.table.js +59 -0
- package/dist/db/tables/tenantBillingState.table.js.map +1 -0
- package/dist/db/tables/tenantSubscriptions.table.d.ts +46 -0
- package/dist/db/tables/tenantSubscriptions.table.js +157 -0
- package/dist/db/tables/tenantSubscriptions.table.js.map +1 -0
- package/dist/db/tables/trialConsumptions.table.d.ts +10 -0
- package/dist/db/tables/trialConsumptions.table.js +55 -0
- package/dist/db/tables/trialConsumptions.table.js.map +1 -0
- package/dist/db/tables/userSegments.table.d.ts +11 -0
- package/dist/db/tables/userSegments.table.js +56 -0
- package/dist/db/tables/userSegments.table.js.map +1 -0
- package/dist/hidden-filter.d.ts +1 -0
- package/dist/hidden-filter.js +10 -0
- package/dist/hidden-filter.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/invoice-line-items.d.ts +42 -0
- package/dist/invoice-line-items.js +83 -0
- package/dist/invoice-line-items.js.map +1 -0
- package/dist/page-definitions.d.ts +17 -0
- package/dist/page-definitions.js +60 -0
- package/dist/page-definitions.js.map +1 -0
- package/dist/pages.d.ts +59 -0
- package/dist/pages.js +88 -0
- package/dist/pages.js.map +1 -0
- package/dist/plans.d.ts +27 -0
- package/dist/plans.js +60 -0
- package/dist/plans.js.map +1 -0
- package/dist/provisioning.d.ts +5 -0
- package/dist/provisioning.js +3 -0
- package/dist/provisioning.js.map +1 -0
- package/dist/registration.d.ts +6 -0
- package/dist/registration.js +9 -0
- package/dist/registration.js.map +1 -0
- package/dist/workspace-lifecycle.d.ts +27 -0
- package/dist/workspace-lifecycle.js +30 -0
- package/dist/workspace-lifecycle.js.map +1 -0
- package/package.json +108 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TenantSubscription = exports.DunningClock = exports.TENANT_SUBSCRIPTION_STATUSES = exports.tenantSubscriptionsTableName = void 0;
|
|
13
|
+
const decorators_1 = require("@antelopejs/interface-core/decorators");
|
|
14
|
+
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
15
|
+
const constants_1 = require("@antelopejs/interface-dms/constants");
|
|
16
|
+
const users_table_1 = require("@antelopejs/interface-dms/auth/db/tables/users.table");
|
|
17
|
+
const plans_table_1 = require("./plans.table");
|
|
18
|
+
exports.tenantSubscriptionsTableName = "tenant_subscriptions";
|
|
19
|
+
exports.TENANT_SUBSCRIPTION_STATUSES = [
|
|
20
|
+
"pending_payment",
|
|
21
|
+
"active",
|
|
22
|
+
"trialing",
|
|
23
|
+
"past_due",
|
|
24
|
+
"suspended",
|
|
25
|
+
"cancelled",
|
|
26
|
+
];
|
|
27
|
+
const PAST_DUE_STATUS = "past_due";
|
|
28
|
+
class DunningClockModifier extends interface_database_decorators_1.Modifier {
|
|
29
|
+
update(object, field) {
|
|
30
|
+
if (object.status === undefined)
|
|
31
|
+
return;
|
|
32
|
+
if (object[field] !== undefined)
|
|
33
|
+
return;
|
|
34
|
+
if (object.status !== PAST_DUE_STATUS) {
|
|
35
|
+
object[field] = null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.DunningClock = (0, decorators_1.MakePropertyDecorator)((target, propertyKey) => {
|
|
40
|
+
interface_database_decorators_1.attachModifier(target.constructor, DunningClockModifier, propertyKey, {});
|
|
41
|
+
});
|
|
42
|
+
let TenantSubscription = class TenantSubscription extends interface_database_decorators_1.Table {
|
|
43
|
+
};
|
|
44
|
+
exports.TenantSubscription = TenantSubscription;
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
47
|
+
__metadata("design:type", String)
|
|
48
|
+
], TenantSubscription.prototype, "_id", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, interface_database_decorators_1.Index)(),
|
|
51
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
52
|
+
(0, interface_database_decorators_1.Relation)({ to: () => plans_table_1.Plan }),
|
|
53
|
+
__metadata("design:type", Object)
|
|
54
|
+
], TenantSubscription.prototype, "planId", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, interface_database_decorators_1.Index)(),
|
|
57
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
58
|
+
__metadata("design:type", String)
|
|
59
|
+
], TenantSubscription.prototype, "status", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, interface_database_decorators_1.Field)("date"),
|
|
62
|
+
__metadata("design:type", Object)
|
|
63
|
+
], TenantSubscription.prototype, "deletionStartedAt", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, interface_database_decorators_1.Field)("any"),
|
|
66
|
+
__metadata("design:type", Object)
|
|
67
|
+
], TenantSubscription.prototype, "cronNotification", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, interface_database_decorators_1.Index)(),
|
|
70
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
71
|
+
__metadata("design:type", Object)
|
|
72
|
+
], TenantSubscription.prototype, "stripeCustomerId", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
75
|
+
__metadata("design:type", Object)
|
|
76
|
+
], TenantSubscription.prototype, "stripeSubscriptionId", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
79
|
+
__metadata("design:type", Object)
|
|
80
|
+
], TenantSubscription.prototype, "stripeCheckoutSessionId", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
83
|
+
__metadata("design:type", Object)
|
|
84
|
+
], TenantSubscription.prototype, "completedCheckoutSessionId", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
(0, interface_database_decorators_1.Index)(),
|
|
87
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
88
|
+
__metadata("design:type", Object)
|
|
89
|
+
], TenantSubscription.prototype, "cardFingerprint", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
(0, interface_database_decorators_1.Field)("date"),
|
|
92
|
+
__metadata("design:type", Object)
|
|
93
|
+
], TenantSubscription.prototype, "currentPeriodEnd", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
96
|
+
(0, interface_database_decorators_1.Relation)({ to: () => plans_table_1.Plan }),
|
|
97
|
+
__metadata("design:type", Object)
|
|
98
|
+
], TenantSubscription.prototype, "pendingPlanId", void 0);
|
|
99
|
+
__decorate([
|
|
100
|
+
(0, interface_database_decorators_1.Field)("date"),
|
|
101
|
+
__metadata("design:type", Object)
|
|
102
|
+
], TenantSubscription.prototype, "pendingPlanChangeAt", void 0);
|
|
103
|
+
__decorate([
|
|
104
|
+
(0, interface_database_decorators_1.Field)("any"),
|
|
105
|
+
__metadata("design:type", Object)
|
|
106
|
+
], TenantSubscription.prototype, "domainTransition", void 0);
|
|
107
|
+
__decorate([
|
|
108
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
109
|
+
__metadata("design:type", String)
|
|
110
|
+
], TenantSubscription.prototype, "revision", void 0);
|
|
111
|
+
__decorate([
|
|
112
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
113
|
+
(0, interface_database_decorators_1.Relation)({ to: () => users_table_1.User }),
|
|
114
|
+
__metadata("design:type", Object)
|
|
115
|
+
], TenantSubscription.prototype, "createdBy", void 0);
|
|
116
|
+
__decorate([
|
|
117
|
+
(0, interface_database_decorators_1.Field)("date"),
|
|
118
|
+
__metadata("design:type", Object)
|
|
119
|
+
], TenantSubscription.prototype, "refundRequestedAt", void 0);
|
|
120
|
+
__decorate([
|
|
121
|
+
(0, exports.DunningClock)(),
|
|
122
|
+
(0, interface_database_decorators_1.Index)(),
|
|
123
|
+
(0, interface_database_decorators_1.Field)("date"),
|
|
124
|
+
__metadata("design:type", Object)
|
|
125
|
+
], TenantSubscription.prototype, "pastDueSince", void 0);
|
|
126
|
+
__decorate([
|
|
127
|
+
(0, interface_database_decorators_1.Index)(),
|
|
128
|
+
(0, interface_database_decorators_1.Field)("date"),
|
|
129
|
+
__metadata("design:type", Object)
|
|
130
|
+
], TenantSubscription.prototype, "freeUntil", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
(0, interface_database_decorators_1.Field)("boolean"),
|
|
133
|
+
__metadata("design:type", Boolean)
|
|
134
|
+
], TenantSubscription.prototype, "isComplimentary", void 0);
|
|
135
|
+
__decorate([
|
|
136
|
+
(0, interface_database_decorators_1.Field)("date"),
|
|
137
|
+
__metadata("design:type", Object)
|
|
138
|
+
], TenantSubscription.prototype, "paidUsageStartedAt", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
(0, interface_database_decorators_1.Field)("any"),
|
|
141
|
+
__metadata("design:type", Object)
|
|
142
|
+
], TenantSubscription.prototype, "paidUsagePeriods", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
(0, interface_database_decorators_1.CreationTime)(),
|
|
145
|
+
(0, interface_database_decorators_1.Field)("date"),
|
|
146
|
+
__metadata("design:type", Date)
|
|
147
|
+
], TenantSubscription.prototype, "createdAt", void 0);
|
|
148
|
+
__decorate([
|
|
149
|
+
(0, interface_database_decorators_1.UpdateTime)(),
|
|
150
|
+
(0, interface_database_decorators_1.Index)(),
|
|
151
|
+
(0, interface_database_decorators_1.Field)("date"),
|
|
152
|
+
__metadata("design:type", Date)
|
|
153
|
+
], TenantSubscription.prototype, "updatedAt", void 0);
|
|
154
|
+
exports.TenantSubscription = TenantSubscription = __decorate([
|
|
155
|
+
(0, interface_database_decorators_1.RegisterTable)(exports.tenantSubscriptionsTableName, constants_1.TENANT_SCHEMA_NAME)
|
|
156
|
+
], TenantSubscription);
|
|
157
|
+
//# sourceMappingURL=tenantSubscriptions.table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenantSubscriptions.table.js","sourceRoot":"","sources":["../../../src/db/tables/tenantSubscriptions.table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Table } from "@antelopejs/interface-database-decorators";
|
|
2
|
+
export declare const trialConsumptionsTableName = "trial_consumptions";
|
|
3
|
+
export declare class TrialConsumption extends Table {
|
|
4
|
+
_id: string;
|
|
5
|
+
userId: string;
|
|
6
|
+
emailHash: string;
|
|
7
|
+
paymentFingerprint: string | null;
|
|
8
|
+
planId: string;
|
|
9
|
+
consumedAt: Date;
|
|
10
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TrialConsumption = exports.trialConsumptionsTableName = void 0;
|
|
13
|
+
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
14
|
+
const constants_1 = require("@antelopejs/interface-dms/constants");
|
|
15
|
+
const users_table_1 = require("@antelopejs/interface-dms/auth/db/tables/users.table");
|
|
16
|
+
const plans_table_1 = require("./plans.table");
|
|
17
|
+
exports.trialConsumptionsTableName = "trial_consumptions";
|
|
18
|
+
let TrialConsumption = class TrialConsumption extends interface_database_decorators_1.Table {
|
|
19
|
+
};
|
|
20
|
+
exports.TrialConsumption = TrialConsumption;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], TrialConsumption.prototype, "_id", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, interface_database_decorators_1.Index)(),
|
|
27
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
28
|
+
(0, interface_database_decorators_1.Relation)({ to: () => users_table_1.User }),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], TrialConsumption.prototype, "userId", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, interface_database_decorators_1.Index)(),
|
|
33
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], TrialConsumption.prototype, "emailHash", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, interface_database_decorators_1.Index)(),
|
|
38
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
39
|
+
__metadata("design:type", Object)
|
|
40
|
+
], TrialConsumption.prototype, "paymentFingerprint", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, interface_database_decorators_1.Index)(),
|
|
43
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
44
|
+
(0, interface_database_decorators_1.Relation)({ to: () => plans_table_1.Plan }),
|
|
45
|
+
__metadata("design:type", String)
|
|
46
|
+
], TrialConsumption.prototype, "planId", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, interface_database_decorators_1.CreationTime)(),
|
|
49
|
+
(0, interface_database_decorators_1.Field)("date"),
|
|
50
|
+
__metadata("design:type", Date)
|
|
51
|
+
], TrialConsumption.prototype, "consumedAt", void 0);
|
|
52
|
+
exports.TrialConsumption = TrialConsumption = __decorate([
|
|
53
|
+
(0, interface_database_decorators_1.RegisterTable)(exports.trialConsumptionsTableName, constants_1.CORE_SCHEMA_NAME)
|
|
54
|
+
], TrialConsumption);
|
|
55
|
+
//# sourceMappingURL=trialConsumptions.table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trialConsumptions.table.js","sourceRoot":"","sources":["../../../src/db/tables/trialConsumptions.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAOmD;AACnD,mEAAuE;AACvE,sFAA4E;AAC5E,+CAAqC;AAExB,QAAA,0BAA0B,GAAG,oBAAoB,CAAC;AAIxD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,qCAAK;CAyB1C,CAAA;AAzBY,4CAAgB;AAEnB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;6CACI;AAKZ;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;IACf,IAAA,wCAAQ,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAI,EAAE,CAAC;;gDACN;AAIf;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;mDACU;AAIlB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;4DAC0B;AAKlC;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;IACf,IAAA,wCAAQ,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAI,EAAE,CAAC;;gDACN;AAIf;IAFP,IAAA,4CAAY,GAAE;IACd,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACM,IAAI;oDAAC;2BAxBd,gBAAgB;IAD5B,IAAA,6CAAa,EAAC,kCAA0B,EAAE,4BAAgB,CAAC;GAC/C,gBAAgB,CAyB5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Table } from "@antelopejs/interface-database-decorators";
|
|
2
|
+
export declare const userSegmentsTableName = "user_segments";
|
|
3
|
+
export declare class UserSegment extends Table {
|
|
4
|
+
_id: string;
|
|
5
|
+
userId: string;
|
|
6
|
+
segmentId: string;
|
|
7
|
+
generation?: string;
|
|
8
|
+
sourceRevision?: string;
|
|
9
|
+
revision?: string;
|
|
10
|
+
evaluatedAt: Date;
|
|
11
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.UserSegment = exports.userSegmentsTableName = void 0;
|
|
13
|
+
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
14
|
+
const constants_1 = require("@antelopejs/interface-dms/constants");
|
|
15
|
+
const users_table_1 = require("@antelopejs/interface-dms/auth/db/tables/users.table");
|
|
16
|
+
const segments_table_1 = require("./segments.table");
|
|
17
|
+
exports.userSegmentsTableName = "user_segments";
|
|
18
|
+
let UserSegment = class UserSegment extends interface_database_decorators_1.Table {
|
|
19
|
+
};
|
|
20
|
+
exports.UserSegment = UserSegment;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], UserSegment.prototype, "_id", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, interface_database_decorators_1.Index)(),
|
|
27
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
28
|
+
(0, interface_database_decorators_1.Relation)({ to: () => users_table_1.User }),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], UserSegment.prototype, "userId", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, interface_database_decorators_1.Index)(),
|
|
33
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
34
|
+
(0, interface_database_decorators_1.Relation)({ to: () => segments_table_1.Segment }),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], UserSegment.prototype, "segmentId", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
39
|
+
__metadata("design:type", String)
|
|
40
|
+
], UserSegment.prototype, "generation", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], UserSegment.prototype, "sourceRevision", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, interface_database_decorators_1.Field)("string"),
|
|
47
|
+
__metadata("design:type", String)
|
|
48
|
+
], UserSegment.prototype, "revision", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, interface_database_decorators_1.Field)("date"),
|
|
51
|
+
__metadata("design:type", Date)
|
|
52
|
+
], UserSegment.prototype, "evaluatedAt", void 0);
|
|
53
|
+
exports.UserSegment = UserSegment = __decorate([
|
|
54
|
+
(0, interface_database_decorators_1.RegisterTable)(exports.userSegmentsTableName, constants_1.CORE_SCHEMA_NAME)
|
|
55
|
+
], UserSegment);
|
|
56
|
+
//# sourceMappingURL=userSegments.table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userSegments.table.js","sourceRoot":"","sources":["../../../src/db/tables/userSegments.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAMmD;AACnD,mEAAuE;AACvE,sFAA4E;AAC5E,qDAA2C;AAE9B,QAAA,qBAAqB,GAAG,eAAe,CAAC;AAI9C,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,qCAAK;CAyBrC,CAAA;AAzBY,kCAAW;AAEd;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;wCACI;AAKZ;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;IACf,IAAA,wCAAQ,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAI,EAAE,CAAC;;2CACN;AAKf;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;IACf,IAAA,wCAAQ,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,wBAAO,EAAE,CAAC;;8CACN;AAGlB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;+CACY;AAGpB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;mDACgB;AAGxB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;6CACU;AAGlB;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACO,IAAI;gDAAC;sBAxBf,WAAW;IADvB,IAAA,6CAAa,EAAC,6BAAqB,EAAE,4BAAgB,CAAC;GAC1C,WAAW,CAyBvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function HiddenStringFilter(): PropertyDecorator;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HiddenStringFilter = HiddenStringFilter;
|
|
4
|
+
const metadata_1 = require("@antelopejs/interface-data-api/metadata");
|
|
5
|
+
const default_types_1 = require("@antelopejs/interface-dms/base/data-types/default-types");
|
|
6
|
+
const STRING_TYPE = new default_types_1.DefaultDataTypes.StringType();
|
|
7
|
+
function HiddenStringFilter() {
|
|
8
|
+
return (0, metadata_1.Filter)(STRING_TYPE.filter.bind(STRING_TYPE));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=hidden-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hidden-filter.js","sourceRoot":"","sources":["../src/hidden-filter.ts"],"names":[],"mappings":";;AAmBA,gDAIC;AAvBD,sEAAiE;AACjE,2FAA2F;AAE3F,MAAM,WAAW,GAAG,IAAI,gCAAgB,CAAC,UAAU,EAAE,CAAC;AAgBtD,SAAgB,kBAAkB;IAChC,OAAO,IAAA,iBAAM,EACX,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAChB,CAAC;AACzB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./billing";
|
|
2
|
+
export * from "./data-api";
|
|
3
|
+
export * from "./pages";
|
|
4
|
+
export * from "./plans";
|
|
5
|
+
export * from "./provisioning";
|
|
6
|
+
export * from "./registration";
|
|
7
|
+
export * as invoiceLineItems from "./invoice-line-items";
|
|
8
|
+
export * as workspaceLifecycle from "./workspace-lifecycle";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
+
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.workspaceLifecycle = exports.invoiceLineItems = void 0;
|
|
40
|
+
__exportStar(require("./billing"), exports);
|
|
41
|
+
__exportStar(require("./data-api"), exports);
|
|
42
|
+
__exportStar(require("./pages"), exports);
|
|
43
|
+
__exportStar(require("./plans"), exports);
|
|
44
|
+
__exportStar(require("./provisioning"), exports);
|
|
45
|
+
__exportStar(require("./registration"), exports);
|
|
46
|
+
exports.invoiceLineItems = __importStar(require("./invoice-line-items"));
|
|
47
|
+
exports.workspaceLifecycle = __importStar(require("./workspace-lifecycle"));
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,4CAA0B;AAC1B,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,iDAA+B;AAC/B,iDAA+B;AAC/B,yEAAyD;AACzD,4EAA4D"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { RegisteringProxy } from "@antelopejs/interface-core";
|
|
2
|
+
export interface InvoiceLineItem {
|
|
3
|
+
key: string;
|
|
4
|
+
description: string;
|
|
5
|
+
amountCents: number;
|
|
6
|
+
quantity?: number;
|
|
7
|
+
unit?: string;
|
|
8
|
+
metadata?: Record<string, string>;
|
|
9
|
+
}
|
|
10
|
+
export interface InvoiceLineItemsContext {
|
|
11
|
+
tenantId: string;
|
|
12
|
+
invoiceId: string;
|
|
13
|
+
currency: string;
|
|
14
|
+
periodStart: Date;
|
|
15
|
+
periodEnd: Date;
|
|
16
|
+
}
|
|
17
|
+
export type InvoiceLineItemsResolver = (context: InvoiceLineItemsContext) => Promise<InvoiceLineItem[]> | InvoiceLineItem[];
|
|
18
|
+
export interface InvoiceLineItemsProvider {
|
|
19
|
+
id: string;
|
|
20
|
+
resolve: InvoiceLineItemsResolver;
|
|
21
|
+
}
|
|
22
|
+
export declare const LINE_KEY_SEPARATOR = ":";
|
|
23
|
+
export type SkippedLineItemReason = "already_invoiced" | "duplicate_key" | "zero_amount" | "invalid";
|
|
24
|
+
export interface PreparedInvoiceLineItem {
|
|
25
|
+
lineKey: string;
|
|
26
|
+
item: InvoiceLineItem;
|
|
27
|
+
}
|
|
28
|
+
export interface SkippedInvoiceLineItem {
|
|
29
|
+
lineKey: string;
|
|
30
|
+
reason: SkippedLineItemReason;
|
|
31
|
+
}
|
|
32
|
+
export interface InvoiceLineItemSelection {
|
|
33
|
+
accepted: PreparedInvoiceLineItem[];
|
|
34
|
+
skipped: SkippedInvoiceLineItem[];
|
|
35
|
+
}
|
|
36
|
+
export declare function buildInvoiceLineKey(providerId: string, key: string): string;
|
|
37
|
+
export declare function selectInvoiceLineItemsToCreate(providerId: string, items: readonly InvoiceLineItem[], alreadyInjectedKeys: ReadonlySet<string>): InvoiceLineItemSelection;
|
|
38
|
+
export declare namespace internal {
|
|
39
|
+
const RegisterInvoiceLineItemsProvider: RegisteringProxy<(providerId: string, resolve: InvoiceLineItemsResolver) => void>;
|
|
40
|
+
}
|
|
41
|
+
export declare function RegisterInvoiceLineItemsProvider(provider: InvoiceLineItemsProvider): void;
|
|
42
|
+
export declare function UnregisterInvoiceLineItemsProvider(providerId: string): void;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.internal = exports.LINE_KEY_SEPARATOR = void 0;
|
|
4
|
+
exports.buildInvoiceLineKey = buildInvoiceLineKey;
|
|
5
|
+
exports.selectInvoiceLineItemsToCreate = selectInvoiceLineItemsToCreate;
|
|
6
|
+
exports.RegisterInvoiceLineItemsProvider = RegisterInvoiceLineItemsProvider;
|
|
7
|
+
exports.UnregisterInvoiceLineItemsProvider = UnregisterInvoiceLineItemsProvider;
|
|
8
|
+
const interface_core_1 = require("@antelopejs/interface-core");
|
|
9
|
+
exports.LINE_KEY_SEPARATOR = ":";
|
|
10
|
+
const MAX_LINE_KEY_LENGTH = 150;
|
|
11
|
+
function isFilledString(value) {
|
|
12
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
13
|
+
}
|
|
14
|
+
const REJECTION_RULES = [
|
|
15
|
+
{ reason: "invalid", isViolated: (item) => !isFilledString(item.key) },
|
|
16
|
+
{
|
|
17
|
+
reason: "invalid",
|
|
18
|
+
isViolated: (item) => item.key.includes(exports.LINE_KEY_SEPARATOR),
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
reason: "invalid",
|
|
22
|
+
isViolated: (item) => !isFilledString(item.description),
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
reason: "invalid",
|
|
26
|
+
isViolated: (item) => !Number.isSafeInteger(item.amountCents),
|
|
27
|
+
},
|
|
28
|
+
{ reason: "zero_amount", isViolated: (item) => item.amountCents === 0 },
|
|
29
|
+
];
|
|
30
|
+
function buildInvoiceLineKey(providerId, key) {
|
|
31
|
+
return `${providerId}${exports.LINE_KEY_SEPARATOR}${key}`;
|
|
32
|
+
}
|
|
33
|
+
function toLineKeyFragment(key) {
|
|
34
|
+
return typeof key === "string" ? key.trim() : String(key);
|
|
35
|
+
}
|
|
36
|
+
function findRejectionReason(item) {
|
|
37
|
+
return REJECTION_RULES.find((rule) => rule.isViolated(item))?.reason ?? null;
|
|
38
|
+
}
|
|
39
|
+
function findOversizedKeyRejection(lineKey) {
|
|
40
|
+
return lineKey.length > MAX_LINE_KEY_LENGTH ? "invalid" : null;
|
|
41
|
+
}
|
|
42
|
+
function resolveDuplicateReason(lineKey, alreadyInjectedKeys, selectedKeys) {
|
|
43
|
+
if (alreadyInjectedKeys.has(lineKey))
|
|
44
|
+
return "already_invoiced";
|
|
45
|
+
if (selectedKeys.has(lineKey))
|
|
46
|
+
return "duplicate_key";
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
function selectInvoiceLineItemsToCreate(providerId, items, alreadyInjectedKeys) {
|
|
50
|
+
const accepted = [];
|
|
51
|
+
const skipped = [];
|
|
52
|
+
const selectedKeys = new Set();
|
|
53
|
+
for (const item of items) {
|
|
54
|
+
const lineKey = buildInvoiceLineKey(providerId, toLineKeyFragment(item.key));
|
|
55
|
+
const rejection = findRejectionReason(item) ?? findOversizedKeyRejection(lineKey);
|
|
56
|
+
if (rejection) {
|
|
57
|
+
skipped.push({ lineKey, reason: rejection });
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const duplicate = resolveDuplicateReason(lineKey, alreadyInjectedKeys, selectedKeys);
|
|
61
|
+
if (duplicate) {
|
|
62
|
+
skipped.push({ lineKey, reason: duplicate });
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
selectedKeys.add(lineKey);
|
|
66
|
+
accepted.push({ lineKey, item: { ...item, key: item.key.trim() } });
|
|
67
|
+
}
|
|
68
|
+
return { accepted, skipped };
|
|
69
|
+
}
|
|
70
|
+
var internal;
|
|
71
|
+
(function (internal) {
|
|
72
|
+
internal.RegisterInvoiceLineItemsProvider = new interface_core_1.RegisteringProxy();
|
|
73
|
+
})(internal || (exports.internal = internal = {}));
|
|
74
|
+
function RegisterInvoiceLineItemsProvider(provider) {
|
|
75
|
+
if (provider.id.includes(exports.LINE_KEY_SEPARATOR)) {
|
|
76
|
+
throw new Error(`An invoice line items provider id cannot contain '${exports.LINE_KEY_SEPARATOR}' (got '${provider.id}').`);
|
|
77
|
+
}
|
|
78
|
+
internal.RegisterInvoiceLineItemsProvider.register(provider.id, provider.resolve);
|
|
79
|
+
}
|
|
80
|
+
function UnregisterInvoiceLineItemsProvider(providerId) {
|
|
81
|
+
internal.RegisterInvoiceLineItemsProvider.unregister(providerId);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=invoice-line-items.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoice-line-items.js","sourceRoot":"","sources":["../src/invoice-line-items.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { MenuOptions, ModuleInfo, PageInfo } from "@antelopejs/interface-dms/page";
|
|
2
|
+
interface SaasModuleDefinition {
|
|
3
|
+
fullId: string;
|
|
4
|
+
fullSlug: string;
|
|
5
|
+
registration: ModuleInfo;
|
|
6
|
+
}
|
|
7
|
+
interface WorkspaceSettingsCategoryDefinition extends Omit<MenuOptions, "category" | "module"> {
|
|
8
|
+
id: string;
|
|
9
|
+
fullId: string;
|
|
10
|
+
fullSlug: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const MODULES_ROOT_DEFINITION: PageInfo;
|
|
13
|
+
export declare const SETTINGS_ROOT_DEFINITION: PageInfo;
|
|
14
|
+
export declare const SAAS_MODULE_ID = "saas";
|
|
15
|
+
export declare const SAAS_MODULE_DEFINITION: SaasModuleDefinition;
|
|
16
|
+
export declare const WORKSPACE_SETTINGS_CATEGORY_DEFINITION: WorkspaceSettingsCategoryDefinition;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
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;
|
|
4
|
+
exports.MODULES_ROOT_DEFINITION = {
|
|
5
|
+
id: "modules",
|
|
6
|
+
fullId: "modules",
|
|
7
|
+
fullSlug: "/modules",
|
|
8
|
+
layoutUrl: "/modules/pagelayout",
|
|
9
|
+
category: undefined,
|
|
10
|
+
displayName: "$modules.title",
|
|
11
|
+
description: "$modules.intro",
|
|
12
|
+
urlSlug: "/modules",
|
|
13
|
+
icon: "i-ph-squares-four",
|
|
14
|
+
order: 2,
|
|
15
|
+
noComponentPermissions: true,
|
|
16
|
+
isModuleRoot: true,
|
|
17
|
+
hidden: undefined,
|
|
18
|
+
publicAccess: undefined,
|
|
19
|
+
authOnly: undefined,
|
|
20
|
+
bypassTenantAccessGate: undefined,
|
|
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
|
+
exports.SAAS_MODULE_ID = "saas";
|
|
40
|
+
exports.SAAS_MODULE_DEFINITION = {
|
|
41
|
+
fullId: `${exports.MODULES_ROOT_DEFINITION.fullId}.${exports.SAAS_MODULE_ID}`,
|
|
42
|
+
fullSlug: `${exports.MODULES_ROOT_DEFINITION.fullSlug}/${exports.SAAS_MODULE_ID}`,
|
|
43
|
+
registration: {
|
|
44
|
+
id: exports.SAAS_MODULE_ID,
|
|
45
|
+
title: "$saas.module.title",
|
|
46
|
+
description: "$saas.module.description",
|
|
47
|
+
icon: "i-ph-buildings",
|
|
48
|
+
landingPage: "dashboard",
|
|
49
|
+
},
|
|
50
|
+
};
|
|
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
|
+
//# sourceMappingURL=page-definitions.js.map
|
|
@@ -0,0 +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"}
|