@saasicat/nest 0.9.0 → 0.10.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 (86) hide show
  1. package/dist/_entries.cjs +17678 -0
  2. package/dist/admin/index.cjs +4 -1533
  3. package/dist/admin/index.d.cts +10 -173
  4. package/dist/admin/index.d.ts +10 -173
  5. package/dist/admin/index.js +3 -2
  6. package/dist/{admin-resources.module-BybEjZs-.d.cts → admin-resources.module-BZN_yBFj.d.cts} +1 -1
  7. package/dist/{admin-resources.module-CUCLlUAi.d.ts → admin-resources.module-Cms8MY6h.d.ts} +1 -1
  8. package/dist/admin-stats.module-15ac5KY3.d.ts +201 -0
  9. package/dist/admin-stats.module-v4SVvWzj.d.cts +201 -0
  10. package/dist/billing/index.cjs +4 -5130
  11. package/dist/billing/index.d.cts +8 -437
  12. package/dist/billing/index.d.ts +8 -437
  13. package/dist/billing/index.js +4 -4
  14. package/dist/catalog/index.cjs +4 -5624
  15. package/dist/catalog/index.d.cts +5 -328
  16. package/dist/catalog/index.d.ts +5 -328
  17. package/dist/catalog/index.js +4 -4
  18. package/dist/checkout-offer/index.cjs +4 -807
  19. package/dist/checkout-offer/index.d.cts +5 -84
  20. package/dist/checkout-offer/index.d.ts +5 -84
  21. package/dist/checkout-offer/index.js +3 -2
  22. package/dist/checkout-offer.module-Y0hDOVrq.d.ts +85 -0
  23. package/dist/checkout-offer.module-ZYF5IsDY.d.cts +85 -0
  24. package/dist/{chunk-PBQRPDO2.js → chunk-33TP26MR.js} +2 -2
  25. package/dist/{chunk-CK54YKVK.js → chunk-75JABGZK.js} +16 -16
  26. package/dist/{chunk-HRU3CP57.js → chunk-BOADBIGB.js} +1 -1
  27. package/dist/chunk-DBZGV3HC.js +0 -0
  28. package/dist/{chunk-ZLUGQE5D.js → chunk-E7AJ42AB.js} +8 -8
  29. package/dist/{chunk-HXAWPPFW.js → chunk-F3VV6EXG.js} +9 -9
  30. package/dist/{chunk-3M6VLT5N.js → chunk-FVT7KTUI.js} +2 -2
  31. package/dist/{chunk-GW2I3JZD.js → chunk-GBDUH6DO.js} +1 -1
  32. package/dist/{chunk-K3OPNVFR.js → chunk-HBFU5AN3.js} +5 -9
  33. package/dist/{chunk-OFBDEO45.js → chunk-IRWZC3GC.js} +1 -1
  34. package/dist/chunk-L4KTQ6CL.js +20 -0
  35. package/dist/{chunk-WGVTXSYW.js → chunk-LZHLGUQI.js} +1 -1
  36. package/dist/{chunk-ZZMAHX22.js → chunk-PUXLPUVH.js} +15 -12
  37. package/dist/{chunk-7K5PT2LX.js → chunk-TXDH4FUA.js} +1 -1
  38. package/dist/chunk-UF53DWWR.js +0 -0
  39. package/dist/{chunk-AJ3EPELS.js → chunk-V34AA7C7.js} +1 -1
  40. package/dist/chunk-WJ6BMDL3.js +313 -0
  41. package/dist/{chunk-M6CZQYPY.js → chunk-Z3FWN3HJ.js} +2 -2
  42. package/dist/discovery/index.cjs +4 -588
  43. package/dist/discovery/index.js +3 -3
  44. package/dist/{enforce-quota.interceptor-SqrQVF91.d.cts → enforce-quota.interceptor-BhkX5nq2.d.cts} +35 -2
  45. package/dist/{enforce-quota.interceptor-B3CL5MSw.d.ts → enforce-quota.interceptor-CcqZc0Yu.d.ts} +35 -2
  46. package/dist/entitlement/index.cjs +4 -781
  47. package/dist/entitlement/index.js +2 -2
  48. package/dist/index.cjs +4 -15671
  49. package/dist/index.d.cts +21 -56
  50. package/dist/index.d.ts +21 -56
  51. package/dist/index.js +39 -334
  52. package/dist/{module-DeH_Jkcq.d.cts → module-CSN8j8Tp.d.cts} +1 -1
  53. package/dist/{module-B5m080F0.d.ts → module-DgYJur6f.d.ts} +1 -1
  54. package/dist/plan-versions.service-BB36Q1bg.d.ts +329 -0
  55. package/dist/plan-versions.service-CUR2Whyr.d.cts +329 -0
  56. package/dist/platform/index.cjs +4 -12925
  57. package/dist/platform/index.d.cts +17 -9
  58. package/dist/platform/index.d.ts +17 -9
  59. package/dist/platform/index.js +98 -14
  60. package/dist/promo/index.cjs +4 -1520
  61. package/dist/promo/index.d.cts +6 -21
  62. package/dist/promo/index.d.ts +6 -21
  63. package/dist/promo/index.js +2 -2
  64. package/dist/rate-limit.guard-dntqAlfZ.d.cts +19 -0
  65. package/dist/rate-limit.guard-dntqAlfZ.d.ts +19 -0
  66. package/dist/registration/index.cjs +4 -1655
  67. package/dist/registration/index.js +1 -1
  68. package/dist/{service-DlhMnYjW.d.ts → service-DX8KbGXl.d.cts} +1 -1
  69. package/dist/{service-DlhMnYjW.d.cts → service-DX8KbGXl.d.ts} +1 -1
  70. package/dist/setup.service-BPwJ7My_.d.cts +45 -0
  71. package/dist/setup.service-D2mrdDDB.d.ts +45 -0
  72. package/dist/subscription-bundle-preview.service-BkJXHAeP.d.cts +438 -0
  73. package/dist/subscription-bundle-preview.service-DBbrE_cw.d.ts +438 -0
  74. package/dist/subscription-contract/index.cjs +4 -471
  75. package/dist/subscription-contract/index.d.cts +5 -13
  76. package/dist/subscription-contract/index.d.ts +5 -13
  77. package/dist/subscription-contract.module-CG9fPKAr.d.cts +14 -0
  78. package/dist/subscription-contract.module-CVebZzHR.d.ts +14 -0
  79. package/dist/testing/index.cjs +4 -13888
  80. package/dist/testing/index.d.cts +5 -5
  81. package/dist/testing/index.d.ts +5 -5
  82. package/dist/testing/index.js +10 -10
  83. package/package.json +4 -4
  84. package/dist/admin-manifest.service-BMeSLRW4.d.ts +0 -33
  85. package/dist/admin-manifest.service-StAQe6QO.d.cts +0 -33
  86. package/dist/chunk-N3WANKSA.js +0 -20
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SuperAdminGuard
3
- } from "./chunk-3M6VLT5N.js";
3
+ } from "./chunk-FVT7KTUI.js";
4
4
  import {
5
5
  asProvider
6
6
  } from "./chunk-SABTXESR.js";
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  PromoCodesModule
3
- } from "./chunk-OFBDEO45.js";
3
+ } from "./chunk-IRWZC3GC.js";
4
4
  import {
5
5
  AdminManifestModule,
6
6
  AdminManifestService,
7
7
  AdminModule,
8
8
  AdminResourcesModule,
9
9
  SuperAdminGuard
10
- } from "./chunk-3M6VLT5N.js";
10
+ } from "./chunk-FVT7KTUI.js";
11
11
  import {
12
12
  PublicCatalogModule,
13
13
  REQUIRE_FEATURE_KEY,
14
14
  SubscriptionBundleModule,
15
15
  TenantBillingModule
16
- } from "./chunk-HXAWPPFW.js";
16
+ } from "./chunk-F3VV6EXG.js";
17
17
  import {
18
18
  CatalogModule
19
- } from "./chunk-PBQRPDO2.js";
19
+ } from "./chunk-33TP26MR.js";
20
20
  import {
21
21
  DiscoveryModule
22
- } from "./chunk-AJ3EPELS.js";
22
+ } from "./chunk-V34AA7C7.js";
23
23
  import {
24
24
  EntitlementModule,
25
25
  LimitExceededError
26
- } from "./chunk-GW2I3JZD.js";
26
+ } from "./chunk-GBDUH6DO.js";
27
27
  import {
28
28
  PLAN_CATALOG_TOKEN,
29
29
  PlanCatalogModule
@@ -695,6 +695,7 @@ var SaasPlatformModule = class _SaasPlatformModule {
695
695
  }),
696
696
  AdminManifestModule.forRoot({
697
697
  config: options.adminManifestConfig ?? buildMinimalManifestConfig(),
698
+ includeManifestController: options.includeManifestController,
698
699
  guards: options.controller.guards,
699
700
  reloadGuards: options.reloadGuards,
700
701
  imports: options.imports,
@@ -763,7 +764,7 @@ var SaasPlatformModule = class _SaasPlatformModule {
763
764
  if (promoCodesConfig) {
764
765
  const config = promoCodesConfig === true ? {} : promoCodesConfig;
765
766
  const promo = persistence?.promo;
766
- const { firstTimeCustomerCheck, adminGuards, imports: promoImports, includePublicController, ...promoOptions } = config;
767
+ const { firstTimeCustomerCheck, adminGuards, imports: promoImports, includePublicController, adminController, ...promoOptions } = config;
767
768
  imports.push(PromoCodesModule.forRoot({
768
769
  ...promoOptions,
769
770
  promoCodeRepository: promo.promoCodeRepository,
@@ -776,7 +777,7 @@ var SaasPlatformModule = class _SaasPlatformModule {
776
777
  hasExistingCustomerForEmail: /* @__PURE__ */ __name(async () => false, "hasExistingCustomerForEmail")
777
778
  },
778
779
  includePublicController: includePublicController ?? false,
779
- adminController: {
780
+ adminController: adminController === false ? false : {
780
781
  guards: adminGuards ?? [
781
782
  ...options.controller.guards,
782
783
  SuperAdminGuard
@@ -865,10 +866,12 @@ var SaasPlatformModule = class _SaasPlatformModule {
865
866
  provide: QUOTA_PROVIDERS_TOKEN,
866
867
  useFactory: /* @__PURE__ */ __name((...providers) => providers, "useFactory"),
867
868
  inject: options.quotaProviders ?? []
868
- }, {
869
- provide: APP_GUARD,
870
- useExisting: StaticFeatureGuard
871
- }, {
869
+ }, ...options.globalFeatureGuard === false ? [] : [
870
+ {
871
+ provide: APP_GUARD,
872
+ useExisting: StaticFeatureGuard
873
+ }
874
+ ], {
872
875
  provide: APP_INTERCEPTOR,
873
876
  useExisting: EnforceQuotaInterceptor
874
877
  });
@@ -6,7 +6,7 @@ import {
6
6
  ADVISORY_STRICT_MODE_CODES,
7
7
  validateBundleDraft,
8
8
  validatePlanDraft
9
- } from "./chunk-PBQRPDO2.js";
9
+ } from "./chunk-33TP26MR.js";
10
10
  import {
11
11
  __name
12
12
  } from "./chunk-SHUYVCID.js";
File without changes
@@ -2,7 +2,7 @@ import {
2
2
  DISCOVERY_APP_INFO_TOKEN,
3
3
  DISCOVERY_SNAPSHOT_PATH_TOKEN,
4
4
  DiscoveryScanner
5
- } from "./chunk-M6CZQYPY.js";
5
+ } from "./chunk-Z3FWN3HJ.js";
6
6
  import {
7
7
  DISCOVERY_SNAPSHOT_TOKEN
8
8
  } from "./chunk-L4SUWH5B.js";
@@ -0,0 +1,313 @@
1
+ import {
2
+ MfaService
3
+ } from "./chunk-FVT7KTUI.js";
4
+ import {
5
+ asProvider
6
+ } from "./chunk-SABTXESR.js";
7
+ import {
8
+ __name
9
+ } from "./chunk-SHUYVCID.js";
10
+
11
+ // src/setup/tokens.ts
12
+ var SETUP_PROVISIONING_PORT_TOKEN = /* @__PURE__ */ Symbol.for("saas-platform/SetupProvisioningPort");
13
+ var SETUP_CONFIG_TOKEN = /* @__PURE__ */ Symbol.for("saas-platform/SetupConfig");
14
+
15
+ // src/setup/setup.service.ts
16
+ import { BadRequestException, ConflictException, ForbiddenException, Inject, Injectable, UnauthorizedException } from "@nestjs/common";
17
+ import { isPlatformUserExistsError, SETUP_ERROR_CODES } from "@saasicat/types";
18
+ import { randomBytes, timingSafeEqual } from "crypto";
19
+ import QRCode from "qrcode";
20
+ function _ts_decorate(decorators, target, key, desc) {
21
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
22
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
23
+ 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;
24
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
25
+ }
26
+ __name(_ts_decorate, "_ts_decorate");
27
+ function _ts_metadata(k, v) {
28
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
29
+ }
30
+ __name(_ts_metadata, "_ts_metadata");
31
+ function _ts_param(paramIndex, decorator) {
32
+ return function(target, key) {
33
+ decorator(target, key, paramIndex);
34
+ };
35
+ }
36
+ __name(_ts_param, "_ts_param");
37
+ var GENERATED_PASSWORD_BYTES = 12;
38
+ function timingSafeEqualStr(a, b) {
39
+ const ab = Buffer.from(a, "utf8");
40
+ const bb = Buffer.from(b, "utf8");
41
+ if (ab.length !== bb.length) return false;
42
+ return timingSafeEqual(ab, bb);
43
+ }
44
+ __name(timingSafeEqualStr, "timingSafeEqualStr");
45
+ var SetupService = class {
46
+ static {
47
+ __name(this, "SetupService");
48
+ }
49
+ users;
50
+ config;
51
+ mfa;
52
+ constructor(users, config, mfa) {
53
+ this.users = users;
54
+ this.config = config;
55
+ this.mfa = mfa;
56
+ }
57
+ async status() {
58
+ return {
59
+ needsSetup: await this.users.countSuperAdmins() === 0
60
+ };
61
+ }
62
+ async setup(req) {
63
+ this.assertToken(req.token);
64
+ await this.assertNoSuperAdmin();
65
+ const email = req.email.trim().toLowerCase();
66
+ if (!email.includes("@")) {
67
+ throw new BadRequestException({
68
+ code: SETUP_ERROR_CODES.INVALID_EMAIL
69
+ });
70
+ }
71
+ const generated = !req.password;
72
+ const password = req.password ?? randomBytes(GENERATED_PASSWORD_BYTES).toString("base64url");
73
+ let user;
74
+ try {
75
+ user = await this.users.createSuperAdmin({
76
+ email,
77
+ password
78
+ });
79
+ } catch (err) {
80
+ if (isPlatformUserExistsError(err)) {
81
+ throw new ConflictException({
82
+ code: SETUP_ERROR_CODES.EMAIL_EXISTS,
83
+ message: err.message
84
+ });
85
+ }
86
+ throw err;
87
+ }
88
+ const totp = await this.mfa.setup(user.id, user.email, this.config.mfaIssuer);
89
+ const qrDataUrl = await QRCode.toDataURL(totp.otpauthUri, {
90
+ width: 220,
91
+ margin: 1
92
+ });
93
+ return {
94
+ userId: user.id,
95
+ email: user.email,
96
+ otpauthUri: totp.otpauthUri,
97
+ qrDataUrl,
98
+ secret: totp.secret,
99
+ ...generated ? {
100
+ generatedPassword: password
101
+ } : {}
102
+ };
103
+ }
104
+ async confirmMfa(req) {
105
+ this.assertToken(req.token);
106
+ const ok = await this.mfa.verify({
107
+ userId: req.userId,
108
+ code: req.code
109
+ });
110
+ return {
111
+ ok
112
+ };
113
+ }
114
+ assertToken(token) {
115
+ const expected = process.env[this.config.setupTokenEnvVar]?.trim();
116
+ if (!expected) {
117
+ throw new ForbiddenException({
118
+ code: SETUP_ERROR_CODES.SETUP_DISABLED,
119
+ message: `${this.config.setupTokenEnvVar} ist nicht gesetzt \u2014 Setup ist deaktiviert.`
120
+ });
121
+ }
122
+ if (!token || !timingSafeEqualStr(token, expected)) {
123
+ throw new UnauthorizedException({
124
+ code: SETUP_ERROR_CODES.INVALID_SETUP_TOKEN
125
+ });
126
+ }
127
+ }
128
+ async assertNoSuperAdmin() {
129
+ if (await this.users.countSuperAdmins() > 0) {
130
+ throw new ConflictException({
131
+ code: SETUP_ERROR_CODES.SETUP_ALREADY_DONE
132
+ });
133
+ }
134
+ }
135
+ };
136
+ SetupService = _ts_decorate([
137
+ Injectable(),
138
+ _ts_param(0, Inject(SETUP_PROVISIONING_PORT_TOKEN)),
139
+ _ts_param(1, Inject(SETUP_CONFIG_TOKEN)),
140
+ _ts_metadata("design:type", Function),
141
+ _ts_metadata("design:paramtypes", [
142
+ typeof SuperAdminProvisioningPort === "undefined" ? Object : SuperAdminProvisioningPort,
143
+ typeof SetupConfig === "undefined" ? Object : SetupConfig,
144
+ typeof MfaService === "undefined" ? Object : MfaService
145
+ ])
146
+ ], SetupService);
147
+
148
+ // src/setup/setup.controller.ts
149
+ import { Body, Controller, Get, Post } from "@nestjs/common";
150
+ import { IsEmail, IsNotEmpty, IsOptional, IsString, MinLength } from "class-validator";
151
+ function _ts_decorate2(decorators, target, key, desc) {
152
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
153
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
154
+ 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;
155
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
156
+ }
157
+ __name(_ts_decorate2, "_ts_decorate");
158
+ function _ts_metadata2(k, v) {
159
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
160
+ }
161
+ __name(_ts_metadata2, "_ts_metadata");
162
+ function _ts_param2(paramIndex, decorator) {
163
+ return function(target, key) {
164
+ decorator(target, key, paramIndex);
165
+ };
166
+ }
167
+ __name(_ts_param2, "_ts_param");
168
+ var SetupDto = class SetupDto2 {
169
+ static {
170
+ __name(this, "SetupDto");
171
+ }
172
+ token;
173
+ email;
174
+ password;
175
+ };
176
+ _ts_decorate2([
177
+ IsString(),
178
+ IsNotEmpty(),
179
+ _ts_metadata2("design:type", String)
180
+ ], SetupDto.prototype, "token", void 0);
181
+ _ts_decorate2([
182
+ IsEmail(),
183
+ _ts_metadata2("design:type", String)
184
+ ], SetupDto.prototype, "email", void 0);
185
+ _ts_decorate2([
186
+ IsOptional(),
187
+ IsString(),
188
+ MinLength(8),
189
+ _ts_metadata2("design:type", String)
190
+ ], SetupDto.prototype, "password", void 0);
191
+ var SetupConfirmMfaDto = class SetupConfirmMfaDto2 {
192
+ static {
193
+ __name(this, "SetupConfirmMfaDto");
194
+ }
195
+ token;
196
+ userId;
197
+ code;
198
+ };
199
+ _ts_decorate2([
200
+ IsString(),
201
+ IsNotEmpty(),
202
+ _ts_metadata2("design:type", String)
203
+ ], SetupConfirmMfaDto.prototype, "token", void 0);
204
+ _ts_decorate2([
205
+ IsString(),
206
+ IsNotEmpty(),
207
+ _ts_metadata2("design:type", String)
208
+ ], SetupConfirmMfaDto.prototype, "userId", void 0);
209
+ _ts_decorate2([
210
+ IsString(),
211
+ IsNotEmpty(),
212
+ _ts_metadata2("design:type", String)
213
+ ], SetupConfirmMfaDto.prototype, "code", void 0);
214
+ var SetupController = class {
215
+ static {
216
+ __name(this, "SetupController");
217
+ }
218
+ setup;
219
+ constructor(setup) {
220
+ this.setup = setup;
221
+ }
222
+ status() {
223
+ return this.setup.status();
224
+ }
225
+ run(dto) {
226
+ return this.setup.setup(dto);
227
+ }
228
+ confirm(dto) {
229
+ return this.setup.confirmMfa(dto);
230
+ }
231
+ };
232
+ _ts_decorate2([
233
+ Get("status"),
234
+ _ts_metadata2("design:type", Function),
235
+ _ts_metadata2("design:paramtypes", []),
236
+ _ts_metadata2("design:returntype", typeof Promise === "undefined" ? Object : Promise)
237
+ ], SetupController.prototype, "status", null);
238
+ _ts_decorate2([
239
+ Post(),
240
+ _ts_param2(0, Body()),
241
+ _ts_metadata2("design:type", Function),
242
+ _ts_metadata2("design:paramtypes", [
243
+ typeof SetupDto === "undefined" ? Object : SetupDto
244
+ ]),
245
+ _ts_metadata2("design:returntype", typeof Promise === "undefined" ? Object : Promise)
246
+ ], SetupController.prototype, "run", null);
247
+ _ts_decorate2([
248
+ Post("confirm-mfa"),
249
+ _ts_param2(0, Body()),
250
+ _ts_metadata2("design:type", Function),
251
+ _ts_metadata2("design:paramtypes", [
252
+ typeof SetupConfirmMfaDto === "undefined" ? Object : SetupConfirmMfaDto
253
+ ]),
254
+ _ts_metadata2("design:returntype", typeof Promise === "undefined" ? Object : Promise)
255
+ ], SetupController.prototype, "confirm", null);
256
+ SetupController = _ts_decorate2([
257
+ Controller("admin/setup"),
258
+ _ts_metadata2("design:type", Function),
259
+ _ts_metadata2("design:paramtypes", [
260
+ typeof SetupService === "undefined" ? Object : SetupService
261
+ ])
262
+ ], SetupController);
263
+
264
+ // src/setup/setup.module.ts
265
+ import { Module } from "@nestjs/common";
266
+ function _ts_decorate3(decorators, target, key, desc) {
267
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
268
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
269
+ 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;
270
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
271
+ }
272
+ __name(_ts_decorate3, "_ts_decorate");
273
+ var DEFAULT_SETUP_TOKEN_ENV_VAR = "SETUP_TOKEN";
274
+ var DEFAULT_MFA_ISSUER = "SuperAdmin";
275
+ var SetupModule = class _SetupModule {
276
+ static {
277
+ __name(this, "SetupModule");
278
+ }
279
+ static forRoot(options) {
280
+ return {
281
+ module: _SetupModule,
282
+ global: options.global ?? false,
283
+ controllers: [
284
+ SetupController
285
+ ],
286
+ providers: [
287
+ asProvider(SETUP_PROVISIONING_PORT_TOKEN, options.provisioningPort),
288
+ {
289
+ provide: SETUP_CONFIG_TOKEN,
290
+ useValue: {
291
+ setupTokenEnvVar: options.setupTokenEnvVar ?? DEFAULT_SETUP_TOKEN_ENV_VAR,
292
+ mfaIssuer: options.mfaIssuer ?? DEFAULT_MFA_ISSUER
293
+ }
294
+ },
295
+ SetupService
296
+ ],
297
+ exports: [
298
+ SetupService
299
+ ]
300
+ };
301
+ }
302
+ };
303
+ SetupModule = _ts_decorate3([
304
+ Module({})
305
+ ], SetupModule);
306
+
307
+ export {
308
+ SETUP_PROVISIONING_PORT_TOKEN,
309
+ SETUP_CONFIG_TOKEN,
310
+ SetupService,
311
+ SetupController,
312
+ SetupModule
313
+ };
@@ -34,8 +34,8 @@ var DEFAULT_APP_INFO = {
34
34
  key: "unknown",
35
35
  version: "0.0.0"
36
36
  };
37
- var DISCOVERY_APP_INFO_TOKEN = /* @__PURE__ */ Symbol("DISCOVERY_APP_INFO");
38
- var DISCOVERY_SNAPSHOT_PATH_TOKEN = /* @__PURE__ */ Symbol("DISCOVERY_SNAPSHOT_PATH");
37
+ var DISCOVERY_APP_INFO_TOKEN = /* @__PURE__ */ Symbol.for("saas-platform/DiscoveryAppInfo");
38
+ var DISCOVERY_SNAPSHOT_PATH_TOKEN = /* @__PURE__ */ Symbol.for("saas-platform/DiscoverySnapshotPath");
39
39
  var DiscoveryScanner = class _DiscoveryScanner {
40
40
  static {
41
41
  __name(this, "DiscoveryScanner");