@acorex/platform 21.0.0-next.0 → 21.0.0-next.10

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 (87) hide show
  1. package/auth/index.d.ts +235 -5
  2. package/common/index.d.ts +220 -218
  3. package/core/index.d.ts +261 -431
  4. package/fesm2022/acorex-platform-auth.mjs +200 -37
  5. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  6. package/fesm2022/{acorex-platform-common-common-settings.provider-zhqNP3xb.mjs → acorex-platform-common-common-settings.provider-O8usQ0VC.mjs} +4 -4
  7. package/fesm2022/{acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map → acorex-platform-common-common-settings.provider-O8usQ0VC.mjs.map} +1 -1
  8. package/fesm2022/acorex-platform-common.mjs +215 -198
  9. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-core.mjs +545 -585
  11. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-domain.mjs +16 -16
  13. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-builder.mjs +84 -35
  15. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-components.mjs +298 -190
  17. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-designer.mjs +72 -72
  19. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-entity.mjs +2955 -1278
  21. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-views.mjs +25 -17
  23. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs +189 -108
  25. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  26. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-D-NsRvRl.mjs} +4 -4
  27. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map → acorex-platform-layout-widgets-button-widget-designer.component-D-NsRvRl.mjs.map} +1 -1
  28. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs → acorex-platform-layout-widgets-file-list-popup.component-CCcKHSHj.mjs} +4 -4
  29. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map → acorex-platform-layout-widgets-file-list-popup.component-CCcKHSHj.mjs.map} +1 -1
  30. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-IrT52Nh1.mjs} +4 -4
  31. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map → acorex-platform-layout-widgets-image-preview.popup-IrT52Nh1.mjs.map} +1 -1
  32. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-DFbfh-OX.mjs} +4 -4
  33. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map → acorex-platform-layout-widgets-page-widget-designer.component-DFbfh-OX.mjs.map} +1 -1
  34. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-Dw6naXvq.mjs +111 -0
  35. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-Dw6naXvq.mjs.map +1 -0
  36. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component--4R3TUdJ.mjs} +4 -4
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map → acorex-platform-layout-widgets-tabular-data-edit-popup.component--4R3TUdJ.mjs.map} +1 -1
  38. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BeVQuHFj.mjs} +4 -4
  39. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map → acorex-platform-layout-widgets-tabular-data-view-popup.component-BeVQuHFj.mjs.map} +1 -1
  40. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-CdQxqi0D.mjs} +4 -4
  41. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map → acorex-platform-layout-widgets-text-block-widget-designer.component-CdQxqi0D.mjs.map} +1 -1
  42. package/fesm2022/acorex-platform-layout-widgets.mjs +2247 -1221
  43. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  44. package/fesm2022/acorex-platform-native.mjs +7 -7
  45. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  46. package/fesm2022/acorex-platform-runtime.mjs +43 -43
  47. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  48. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs → acorex-platform-themes-default-entity-master-create-view.component-D2ucwC3F.mjs} +4 -4
  49. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-D2ucwC3F.mjs.map} +1 -1
  50. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs → acorex-platform-themes-default-entity-master-list-view.component-CIV6YDDZ.mjs} +12 -12
  51. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CIV6YDDZ.mjs.map +1 -0
  52. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs → acorex-platform-themes-default-entity-master-modify-view.component-D5BYbUGK.mjs} +7 -8
  53. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-D5BYbUGK.mjs.map +1 -0
  54. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-Cf4ei46_.mjs} +7 -7
  55. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-Cf4ei46_.mjs.map} +1 -1
  56. package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs → acorex-platform-themes-default-error-401.component-DdMToZ9q.mjs} +4 -4
  57. package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map → acorex-platform-themes-default-error-401.component-DdMToZ9q.mjs.map} +1 -1
  58. package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs → acorex-platform-themes-default-error-404.component-CKsa5aPE.mjs} +4 -4
  59. package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map → acorex-platform-themes-default-error-404.component-CKsa5aPE.mjs.map} +1 -1
  60. package/fesm2022/{acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs → acorex-platform-themes-default-error-offline.component-1gxFTAuX.mjs} +4 -4
  61. package/fesm2022/{acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map → acorex-platform-themes-default-error-offline.component-1gxFTAuX.mjs.map} +1 -1
  62. package/fesm2022/acorex-platform-themes-default.mjs +39 -42
  63. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  64. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-Ds8eRMuV.mjs} +4 -4
  65. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map → acorex-platform-themes-shared-icon-chooser-column.component-Ds8eRMuV.mjs.map} +1 -1
  66. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-Dv38sOzr.mjs} +4 -4
  67. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map → acorex-platform-themes-shared-icon-chooser-view.component-Dv38sOzr.mjs.map} +1 -1
  68. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-DcO6P6OG.mjs} +11 -11
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DcO6P6OG.mjs.map +1 -0
  70. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-B7T2qtaI.mjs} +4 -4
  71. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map → acorex-platform-themes-shared-theme-color-chooser-view.component-B7T2qtaI.mjs.map} +1 -1
  72. package/fesm2022/acorex-platform-themes-shared.mjs +41 -41
  73. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  74. package/fesm2022/acorex-platform-workflow.mjs +1529 -1758
  75. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  76. package/layout/builder/index.d.ts +15 -3
  77. package/layout/components/index.d.ts +23 -6
  78. package/layout/entity/index.d.ts +392 -144
  79. package/layout/views/index.d.ts +16 -11
  80. package/layout/widget-core/index.d.ts +47 -10
  81. package/layout/widgets/index.d.ts +212 -39
  82. package/package.json +5 -5
  83. package/themes/default/index.d.ts +0 -1
  84. package/workflow/index.d.ts +1050 -1759
  85. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +0 -1
  86. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  87. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map +0 -1
package/auth/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, TemplateRef, ViewContainerRef, ModuleWithProviders, Injector } from '@angular/core';
2
+ import { InjectionToken, TemplateRef, ViewContainerRef, ModuleWithProviders, Injector, Type } from '@angular/core';
3
3
  import { AXPLogoConfig, AXPOptionsData, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex/platform/core';
4
4
  import { CanActivateFn } from '@angular/router';
5
5
  import { Observable } from 'rxjs';
@@ -143,7 +143,6 @@ interface AXPPermissionDefinitionProvider {
143
143
  declare const AXP_PERMISSION_DEFINITION_PROVIDER: InjectionToken<AXPPermissionDefinitionProvider[]>;
144
144
  declare class AXPPermissionDefinitionService {
145
145
  private providers;
146
- private providerRegistry;
147
146
  private sessionService;
148
147
  private cache;
149
148
  private load;
@@ -267,12 +266,12 @@ declare const AXP_FEATURE_CHECKER: InjectionToken<AXPFeatureChecker>;
267
266
  declare class AXPSessionService {
268
267
  private eventService;
269
268
  private authStrategyRegistry;
269
+ private readonly injector;
270
270
  static readonly SESSION_KEY = "AXP_SESSION";
271
271
  private readonly permissionLoader;
272
272
  private readonly featureLoader;
273
273
  private readonly tenantLoader;
274
274
  private readonly applicationLoader;
275
- private readonly moduleProviderLoader;
276
275
  private readonly permissionChecker;
277
276
  private readonly featureChecker;
278
277
  private status;
@@ -315,6 +314,12 @@ declare class AXPSessionService {
315
314
  private clearSession;
316
315
  authorize(...keys: string[]): boolean;
317
316
  isFeatureEnabled(...keys: string[]): boolean;
317
+ /**
318
+ * Checks if a module is enabled for the current tenant/application.
319
+ * Module names are stored as features with value: true when enabled.
320
+ * Module names can be provided in PascalCase (e.g., 'SecurityManagement') or kebab-case (e.g., 'security-management').
321
+ */
322
+ isModuleEnabled(moduleName: string): boolean;
318
323
  getToken(): string | undefined;
319
324
  getContext(): AXPSessionContext;
320
325
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPSessionService, never>;
@@ -434,5 +439,230 @@ declare class AXPUnauthenticatedError extends Error {
434
439
  } | undefined);
435
440
  }
436
441
 
437
- export { AXPAuthGuard, AXPAuthModule, AXPAuthStrategy, AXPAuthStrategyRegistryService, AXPFeatureDirective, AXPFeatureGuard, AXPPermissionDefinitionBuilder, AXPPermissionDefinitionGroupBuilder, AXPPermissionDefinitionProviderContext, AXPPermissionDefinitionService, AXPPermissionDirective, AXPPermissionEvaluatorScopeProvider, AXPPermissionGuard, AXPSessionContext, AXPSessionService, AXPSessionStatus, AXPUnauthenticatedError, AXPUnauthorizedError, AXP_APPLICATION_LOADER, AXP_FEATURE_CHECKER, AXP_FEATURE_LOADER, AXP_PERMISSION_CHECKER, AXP_PERMISSION_DEFINITION_PROVIDER, AXP_PERMISSION_LOADER, AXP_TENANT_LOADER, JwtUtil, PkceUtil, TimeUtil, initializeAppState };
438
- export type { AXPApplication, AXPApplicationLoader, AXPAuthModuleConfigs, AXPBaseCredentials, AXPEdition, AXPFeature, AXPFeatureChecker, AXPFeatureLoader, AXPPermission, AXPPermissionChecker, AXPPermissionDefinition, AXPPermissionDefinitionProvider, AXPPermissionGroupDefinition, AXPPermissionLoader, AXPSessionData, AXPSignInResult, AXPTenant, AXPTenantLoader, AXPTokenResult, AXPUser };
442
+ /**
443
+ * Supported content types for challenge display
444
+ */
445
+ type AXPChallengeContentType = 'image-url' | 'image-base64' | 'text' | 'audio-url';
446
+ /**
447
+ * Challenge data returned from the server
448
+ * Contains all information needed to display and submit a challenge
449
+ */
450
+ interface AXPLoginChallengeData {
451
+ /**
452
+ * Unique identifier for this challenge
453
+ * Must be sent back with credentials when submitting login
454
+ */
455
+ id: string;
456
+ /**
457
+ * The challenge content to display
458
+ * Could be an image URL, base64 encoded image, text, or audio URL
459
+ */
460
+ content: string;
461
+ /**
462
+ * Type of content for proper rendering
463
+ */
464
+ contentType: AXPChallengeContentType;
465
+ /**
466
+ * When this challenge expires (optional)
467
+ * After expiration, a new challenge should be fetched
468
+ */
469
+ expiresAt?: Date;
470
+ /**
471
+ * Additional metadata from server (optional)
472
+ */
473
+ metadata?: Record<string, unknown>;
474
+ }
475
+ /**
476
+ * Result of checking a login error response
477
+ * Determines if a challenge should be displayed
478
+ */
479
+ interface AXPChallengeCheckResult {
480
+ /**
481
+ * Whether a challenge is required
482
+ */
483
+ required: boolean;
484
+ /**
485
+ * Optional message to display to the user
486
+ */
487
+ message?: string;
488
+ /**
489
+ * Additional data from server that may be needed for getChallenge()
490
+ * For example: sessionId, attemptId, etc.
491
+ */
492
+ serverData?: Record<string, unknown>;
493
+ }
494
+
495
+ /**
496
+ * Base class for login challenge UI components
497
+ *
498
+ * Providers can extend this class to create custom challenge UIs.
499
+ * The login component will render this component and listen to its outputs.
500
+ *
501
+ * @example
502
+ * ```typescript
503
+ * @Component({
504
+ * selector: 'my-captcha-challenge',
505
+ * template: `
506
+ * <div class="captcha-container">
507
+ * <img [src]="'data:image/png;base64,' + challengeData().content" />
508
+ * <input
509
+ * type="text"
510
+ * [value]="response()"
511
+ * (input)="onResponseChange($event)"
512
+ * />
513
+ * <button (click)="onRefreshClick()">Refresh</button>
514
+ * </div>
515
+ * `
516
+ * })
517
+ * export class MyCaptchaChallengeComponent extends AXPLoginChallengeComponentBase {
518
+ * response = signal('');
519
+ *
520
+ * onResponseChange(event: Event) {
521
+ * const value = (event.target as HTMLInputElement).value;
522
+ * this.response.set(value);
523
+ * this.responseChange.emit(value);
524
+ * }
525
+ *
526
+ * onRefreshClick() {
527
+ * this.refreshRequest.emit();
528
+ * }
529
+ * }
530
+ * ```
531
+ */
532
+ declare abstract class AXPLoginChallengeComponentBase {
533
+ /**
534
+ * Challenge data to display
535
+ * Contains the image/content and metadata from the server
536
+ */
537
+ challengeData: i0.InputSignal<AXPLoginChallengeData>;
538
+ /**
539
+ * Whether the challenge is currently loading (e.g., refreshing)
540
+ */
541
+ isLoading: i0.InputSignal<boolean>;
542
+ /**
543
+ * Emits when the user enters or changes their response
544
+ * The login component will capture this value and include it in credentials
545
+ */
546
+ responseChange: i0.OutputEmitterRef<string>;
547
+ /**
548
+ * Emits when the user requests a new challenge (e.g., clicks refresh button)
549
+ * The login component will call provider.refreshChallenge()
550
+ */
551
+ refreshRequest: i0.OutputEmitterRef<void>;
552
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPLoginChallengeComponentBase, never>;
553
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPLoginChallengeComponentBase, "ng-component", never, { "challengeData": { "alias": "challengeData"; "required": true; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; }, { "responseChange": "responseChange"; "refreshRequest": "refreshRequest"; }, never, never, true, never>;
554
+ }
555
+
556
+ /**
557
+ * Abstract base class for login challenge providers
558
+ *
559
+ * Implement this class to create custom challenge mechanisms like:
560
+ * - Image CAPTCHA
561
+ * - reCAPTCHA
562
+ * - SMS verification
563
+ * - Email verification
564
+ *
565
+ * @example
566
+ * ```typescript
567
+ * @Injectable()
568
+ * export class MyImageCaptchaProvider extends AXPLoginChallengeProvider {
569
+ * readonly name = 'image-captcha';
570
+ *
571
+ * checkResponse(error: unknown): AXPChallengeCheckResult | null {
572
+ * if (error instanceof HttpErrorResponse) {
573
+ * if (error.error?.requiresCaptcha) {
574
+ * return { required: true };
575
+ * }
576
+ * }
577
+ * return null;
578
+ * }
579
+ *
580
+ * async getChallenge(): Promise<AXPLoginChallengeData> {
581
+ * const response = await this.http.get('/api/captcha').toPromise();
582
+ * return {
583
+ * id: response.id,
584
+ * content: response.image,
585
+ * contentType: 'image-base64'
586
+ * };
587
+ * }
588
+ *
589
+ * async refreshChallenge(): Promise<AXPLoginChallengeData> {
590
+ * return this.getChallenge();
591
+ * }
592
+ *
593
+ * getChallengeComponent(): Type<AXPLoginChallengeComponentBase> {
594
+ * return MyCaptchaChallengeComponent;
595
+ * }
596
+ * }
597
+ * ```
598
+ */
599
+ declare abstract class AXPLoginChallengeProvider {
600
+ /**
601
+ * Unique name identifier for this provider
602
+ */
603
+ abstract readonly name: string;
604
+ /**
605
+ * Checks the login error response to determine if a challenge is required
606
+ *
607
+ * This method is called after a failed login attempt. The implementation
608
+ * should inspect the error and return a result indicating whether a
609
+ * challenge should be displayed.
610
+ *
611
+ * @param error - The error from the failed login attempt (type varies by implementation)
612
+ * @returns Challenge check result, or null if this provider doesn't handle this error
613
+ */
614
+ abstract checkResponse(error: unknown): AXPChallengeCheckResult | null;
615
+ /**
616
+ * Fetches a new challenge from the server
617
+ *
618
+ * Called when checkResponse indicates a challenge is required.
619
+ * Should make an API call to get challenge data (e.g., CAPTCHA image).
620
+ *
621
+ * @param serverData - Optional data from checkResponse result that may be needed
622
+ * @returns Promise resolving to challenge data for display
623
+ */
624
+ abstract getChallenge(serverData?: Record<string, unknown>): Promise<AXPLoginChallengeData>;
625
+ /**
626
+ * Fetches a fresh challenge, replacing the current one
627
+ *
628
+ * Called when user requests a new challenge (e.g., clicks "new image" button).
629
+ * Typically delegates to getChallenge() but may have different behavior.
630
+ *
631
+ * @returns Promise resolving to new challenge data
632
+ */
633
+ abstract refreshChallenge(): Promise<AXPLoginChallengeData>;
634
+ /**
635
+ * Returns the component type for rendering the challenge UI
636
+ *
637
+ * Override this method to provide a custom challenge UI component.
638
+ * If not overridden (returns null), the login component will use
639
+ * a default built-in UI.
640
+ *
641
+ * @returns Component type extending AXPLoginChallengeComponentBase, or null for default UI
642
+ */
643
+ getChallengeComponent(): Type<AXPLoginChallengeComponentBase> | null;
644
+ }
645
+
646
+ /**
647
+ * Injection token for the login challenge provider
648
+ *
649
+ * This token is optional - if not provided, no challenge mechanism will be used.
650
+ *
651
+ * @example
652
+ * ```typescript
653
+ * // In your app module or provider configuration:
654
+ * providers: [
655
+ * {
656
+ * provide: AXP_LOGIN_CHALLENGE_PROVIDER,
657
+ * useClass: MyImageCaptchaProvider
658
+ * }
659
+ * ]
660
+ *
661
+ * // In a component:
662
+ * private challengeProvider = inject(AXP_LOGIN_CHALLENGE_PROVIDER, { optional: true });
663
+ * ```
664
+ */
665
+ declare const AXP_LOGIN_CHALLENGE_PROVIDER: InjectionToken<AXPLoginChallengeProvider>;
666
+
667
+ export { AXPAuthGuard, AXPAuthModule, AXPAuthStrategy, AXPAuthStrategyRegistryService, AXPFeatureDirective, AXPFeatureGuard, AXPLoginChallengeComponentBase, AXPLoginChallengeProvider, AXPPermissionDefinitionBuilder, AXPPermissionDefinitionGroupBuilder, AXPPermissionDefinitionProviderContext, AXPPermissionDefinitionService, AXPPermissionDirective, AXPPermissionEvaluatorScopeProvider, AXPPermissionGuard, AXPSessionContext, AXPSessionService, AXPSessionStatus, AXPUnauthenticatedError, AXPUnauthorizedError, AXP_APPLICATION_LOADER, AXP_FEATURE_CHECKER, AXP_FEATURE_LOADER, AXP_LOGIN_CHALLENGE_PROVIDER, AXP_PERMISSION_CHECKER, AXP_PERMISSION_DEFINITION_PROVIDER, AXP_PERMISSION_LOADER, AXP_TENANT_LOADER, JwtUtil, PkceUtil, TimeUtil, initializeAppState };
668
+ export type { AXPApplication, AXPApplicationLoader, AXPAuthModuleConfigs, AXPBaseCredentials, AXPChallengeCheckResult, AXPChallengeContentType, AXPEdition, AXPFeature, AXPFeatureChecker, AXPFeatureLoader, AXPLoginChallengeData, AXPPermission, AXPPermissionChecker, AXPPermissionDefinition, AXPPermissionDefinitionProvider, AXPPermissionGroupDefinition, AXPPermissionLoader, AXPSessionData, AXPSignInResult, AXPTenant, AXPTenantLoader, AXPTokenResult, AXPUser };