@kinotic-ai/os-api 1.0.13 → 1.0.15

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/index.cjs CHANGED
@@ -72,6 +72,8 @@ __export(exports_src, {
72
72
  LogManager: () => LogManager,
73
73
  LogLevel: () => LogLevel,
74
74
  IdDecorator: () => IdDecorator,
75
+ IamUserService: () => IamUserService,
76
+ IamUser: () => IamUser,
75
77
  GroupLoggerLevelsDescriptor: () => GroupLoggerLevelsDescriptor,
76
78
  FlattenedDecorator: () => FlattenedDecorator,
77
79
  EsIndexConfigurationDecorator: () => EsIndexConfigurationDecorator,
@@ -81,6 +83,7 @@ __export(exports_src, {
81
83
  DiscriminatorDecorator: () => DiscriminatorDecorator,
82
84
  DataInsightsService: () => DataInsightsService,
83
85
  AutoGeneratedIdDecorator: () => AutoGeneratedIdDecorator,
86
+ AuthType: () => AuthType,
84
87
  ApplicationService: () => ApplicationService,
85
88
  Application: () => Application
86
89
  });
@@ -403,6 +406,27 @@ class VmNode {
403
406
  this.hostname = hostname;
404
407
  }
405
408
  }
409
+ // packages/os-api/src/api/model/iam/AuthType.ts
410
+ var AuthType;
411
+ ((AuthType2) => {
412
+ AuthType2["LOCAL"] = "LOCAL";
413
+ AuthType2["OIDC"] = "OIDC";
414
+ })(AuthType ||= {});
415
+ // packages/os-api/src/api/model/iam/IamUser.ts
416
+ class IamUser {
417
+ id = null;
418
+ email = "";
419
+ displayName = null;
420
+ authType = null;
421
+ oidcSubject = null;
422
+ oidcConfigId = null;
423
+ authScopeType = "";
424
+ authScopeId = "";
425
+ tenantId = null;
426
+ enabled = true;
427
+ created = null;
428
+ updated = null;
429
+ }
406
430
  // packages/os-api/src/api/services/IApplicationService.ts
407
431
  var import_core = require("@kinotic-ai/core");
408
432
 
@@ -608,6 +632,29 @@ class WorkloadServiceProxy extends import_core6.CrudServiceProxy {
608
632
  return this.serviceProxy.invoke("syncIndex", []);
609
633
  }
610
634
  }
635
+ // packages/os-api/src/api/services/iam/IIamUserService.ts
636
+ var import_core7 = require("@kinotic-ai/core");
637
+
638
+ class IamUserService extends import_core7.CrudServiceProxy {
639
+ constructor(kinotic) {
640
+ super(kinotic.serviceProxy("org.kinotic.os.api.services.iam.IamUserService"));
641
+ }
642
+ findByEmailAndScope(email, authScopeType, authScopeId) {
643
+ return this.serviceProxy.invoke("findByEmailAndScope", [email, authScopeType, authScopeId]);
644
+ }
645
+ findByScope(authScopeType, authScopeId, pageable) {
646
+ return this.serviceProxy.invoke("findByScope", [authScopeType, authScopeId, pageable]);
647
+ }
648
+ createUser(user, password) {
649
+ return this.serviceProxy.invoke("createUser", [user, password]);
650
+ }
651
+ changePassword(userId, currentPassword, newPassword) {
652
+ return this.serviceProxy.invoke("changePassword", [userId, currentPassword, newPassword]);
653
+ }
654
+ resetPassword(userId, newPassword) {
655
+ return this.serviceProxy.invoke("resetPassword", [userId, newPassword]);
656
+ }
657
+ }
611
658
  // packages/os-api/src/api/OsApiPlugin.ts
612
659
  var OsApiPlugin = {
613
660
  install(kinotic) {
@@ -620,7 +667,8 @@ var OsApiPlugin = {
620
667
  migrations: new MigrationService(kinotic),
621
668
  dataInsights: new DataInsightsService(kinotic),
622
669
  vmNodes: new VmNodeServiceProxy(kinotic),
623
- workloads: new WorkloadServiceProxy(kinotic)
670
+ workloads: new WorkloadServiceProxy(kinotic),
671
+ iamUsers: new IamUserService(kinotic)
624
672
  };
625
673
  }
626
674
  };
package/dist/index.d.cts CHANGED
@@ -472,6 +472,62 @@ declare class VmNode implements Identifiable6<string> {
472
472
  lastSeen: number | null;
473
473
  constructor(id: string, name: string, hostname: string);
474
474
  }
475
+ /**
476
+ * Authentication method for an {@link IamUser}.
477
+ */
478
+ declare enum AuthType {
479
+ LOCAL = "LOCAL",
480
+ OIDC = "OIDC"
481
+ }
482
+ import { Identifiable as Identifiable7 } from "@kinotic-ai/core";
483
+ /**
484
+ * Represents an authenticated identity at any scope layer in the IAM system.
485
+ * Each user is scoped to exactly one layer and is unique by email within that scope.
486
+ *
487
+ * - For SYSTEM and ORGANIZATION scopes, {@link tenantId} must be null.
488
+ * - For APPLICATION scopes, {@link tenantId} is required and identifies the
489
+ * client tenant the user belongs to within the application's data.
490
+ */
491
+ declare class IamUser implements Identifiable7<string> {
492
+ id: string | null;
493
+ email: string;
494
+ displayName: string | null;
495
+ authType: AuthType | null;
496
+ oidcSubject: string | null;
497
+ oidcConfigId: string | null;
498
+ authScopeType: string;
499
+ authScopeId: string;
500
+ tenantId: string | null;
501
+ enabled: boolean;
502
+ created: number | null;
503
+ updated: number | null;
504
+ }
505
+ /**
506
+ * Sent to the server to initiate an organization sign-up.
507
+ * The user provides {@link orgName}, {@link orgDescription}, {@link email}, and
508
+ * {@link displayName}. The remaining fields ({@link id}, {@link verificationToken},
509
+ * {@link expiresAt}, {@link created}) are populated by the server before the record
510
+ * is persisted.
511
+ */
512
+ interface SignUpRequest {
513
+ id?: string | null;
514
+ verificationToken?: string | null;
515
+ expiresAt?: number | null;
516
+ created?: number | null;
517
+ orgName: string;
518
+ orgDescription?: string | null;
519
+ email: string;
520
+ displayName: string;
521
+ }
522
+ /**
523
+ * Sent to the server to complete an organization sign-up after email verification.
524
+ * The {@link token} comes from the verification email link; the {@link password}
525
+ * is what the user enters on the "set your password" form.
526
+ */
527
+ interface SignUpCompleteRequest {
528
+ token: string;
529
+ password: string;
530
+ }
475
531
  import { IKinotic } from "@kinotic-ai/core";
476
532
  import { CrudServiceProxy, ICrudServiceProxy } from "@kinotic-ai/core";
477
533
  interface IApplicationService extends ICrudServiceProxy<Application> {
@@ -774,6 +830,39 @@ declare class WorkloadServiceProxy extends CrudServiceProxy6<Workload> implement
774
830
  countForNode(nodeId: string): Promise<number>;
775
831
  syncIndex(): Promise<void>;
776
832
  }
833
+ import { CrudServiceProxy as CrudServiceProxy7, IKinotic as IKinotic10, ICrudServiceProxy as ICrudServiceProxy7, Page as Page3, Pageable as Pageable4 } from "@kinotic-ai/core";
834
+ interface IIamUserService extends ICrudServiceProxy7<IamUser> {
835
+ /**
836
+ * Finds the user with the given email within the given auth scope.
837
+ * @return Promise emitting the user or null if no user matches
838
+ */
839
+ findByEmailAndScope(email: string, authScopeType: string, authScopeId: string): Promise<IamUser | null>;
840
+ /**
841
+ * Finds all users registered against the given auth scope.
842
+ */
843
+ findByScope(authScopeType: string, authScopeId: string, pageable: Pageable4): Promise<Page3<IamUser>>;
844
+ /**
845
+ * Creates a user and, if a password is provided, the matching credential.
846
+ * APPLICATION-scoped users must carry a {@code tenantId}; SYSTEM and ORGANIZATION users must not.
847
+ */
848
+ createUser(user: IamUser, password: string | null): Promise<IamUser>;
849
+ /**
850
+ * Verifies the current password and updates it. Used when the user knows their current password.
851
+ */
852
+ changePassword(userId: string, currentPassword: string, newPassword: string): Promise<void>;
853
+ /**
854
+ * Replaces the user's password without verifying the current one. Administrative reset.
855
+ */
856
+ resetPassword(userId: string, newPassword: string): Promise<void>;
857
+ }
858
+ declare class IamUserService extends CrudServiceProxy7<IamUser> implements IIamUserService {
859
+ constructor(kinotic: IKinotic10);
860
+ findByEmailAndScope(email: string, authScopeType: string, authScopeId: string): Promise<IamUser | null>;
861
+ findByScope(authScopeType: string, authScopeId: string, pageable: Pageable4): Promise<Page3<IamUser>>;
862
+ createUser(user: IamUser, password: string | null): Promise<IamUser>;
863
+ changePassword(userId: string, currentPassword: string, newPassword: string): Promise<void>;
864
+ resetPassword(userId: string, newPassword: string): Promise<void>;
865
+ }
777
866
  import { KinoticPlugin } from "@kinotic-ai/core";
778
867
  interface IOsApiExtension {
779
868
  applications: IApplicationService;
@@ -785,9 +874,10 @@ interface IOsApiExtension {
785
874
  dataInsights: IDataInsightsService;
786
875
  vmNodes: IVmNodeService;
787
876
  workloads: IWorkloadService;
877
+ iamUsers: IIamUserService;
788
878
  }
789
879
  declare const OsApiPlugin: KinoticPlugin<IOsApiExtension>;
790
880
  declare module "@kinotic-ai/core" {
791
881
  interface KinoticSingleton extends IOsApiExtension {}
792
882
  }
793
- export { WorkloadStatus, WorkloadServiceProxy, Workload, VmProviderType, VmNodeStatus, VmNodeServiceProxy, VmNode, VersionDecorator, TimeReferenceDecorator, TextDecorator, TenantSelectionC3Type, TenantIdDecorator, SingleLoggerLevelsDescriptor, QueryOptionsC3Type, QueryDecorator, ProjectType, ProjectService, Project, ProgressType, PageableC3Type, PageC3Type, OsApiPlugin, NotIndexedDecorator, NestedDecorator, NamedQueriesDefinitionService, NamedQueriesDefinition, MigrationService, MigrationResult, MigrationRequest, MigrationDefinition, LoggersDescriptor, LoggerLevelsDescriptor, LogManager, LogLevel, InsightRequest, InsightProgress, IdDecorator, IWorkloadService, IVmNodeService, IProjectService, IOsApiExtension, INamedQueriesDefinitionService, IMigrationService, ILogManager, IEntityDefinitionService, IDataInsightsService, IApplicationService, GroupLoggerLevelsDescriptor, FlattenedDecorator, EsIndexConfigurationDecorator, EntityDefinitionService, EntityDefinition, EntityDecorator, DiscriminatorDecorator, DataInsightsService, DataInsightsComponent, AutoGeneratedIdDecorator, ApplicationService, Application };
883
+ export { WorkloadStatus, WorkloadServiceProxy, Workload, VmProviderType, VmNodeStatus, VmNodeServiceProxy, VmNode, VersionDecorator, TimeReferenceDecorator, TextDecorator, TenantSelectionC3Type, TenantIdDecorator, SingleLoggerLevelsDescriptor, SignUpRequest, SignUpCompleteRequest, QueryOptionsC3Type, QueryDecorator, ProjectType, ProjectService, Project, ProgressType, PageableC3Type, PageC3Type, OsApiPlugin, NotIndexedDecorator, NestedDecorator, NamedQueriesDefinitionService, NamedQueriesDefinition, MigrationService, MigrationResult, MigrationRequest, MigrationDefinition, LoggersDescriptor, LoggerLevelsDescriptor, LogManager, LogLevel, InsightRequest, InsightProgress, IdDecorator, IamUserService, IamUser, IWorkloadService, IVmNodeService, IProjectService, IOsApiExtension, INamedQueriesDefinitionService, IMigrationService, ILogManager, IIamUserService, IEntityDefinitionService, IDataInsightsService, IApplicationService, GroupLoggerLevelsDescriptor, FlattenedDecorator, EsIndexConfigurationDecorator, EntityDefinitionService, EntityDefinition, EntityDecorator, DiscriminatorDecorator, DataInsightsService, DataInsightsComponent, AutoGeneratedIdDecorator, AuthType, ApplicationService, Application };
package/dist/index.d.ts CHANGED
@@ -472,6 +472,62 @@ declare class VmNode implements Identifiable6<string> {
472
472
  lastSeen: number | null;
473
473
  constructor(id: string, name: string, hostname: string);
474
474
  }
475
+ /**
476
+ * Authentication method for an {@link IamUser}.
477
+ */
478
+ declare enum AuthType {
479
+ LOCAL = "LOCAL",
480
+ OIDC = "OIDC"
481
+ }
482
+ import { Identifiable as Identifiable7 } from "@kinotic-ai/core";
483
+ /**
484
+ * Represents an authenticated identity at any scope layer in the IAM system.
485
+ * Each user is scoped to exactly one layer and is unique by email within that scope.
486
+ *
487
+ * - For SYSTEM and ORGANIZATION scopes, {@link tenantId} must be null.
488
+ * - For APPLICATION scopes, {@link tenantId} is required and identifies the
489
+ * client tenant the user belongs to within the application's data.
490
+ */
491
+ declare class IamUser implements Identifiable7<string> {
492
+ id: string | null;
493
+ email: string;
494
+ displayName: string | null;
495
+ authType: AuthType | null;
496
+ oidcSubject: string | null;
497
+ oidcConfigId: string | null;
498
+ authScopeType: string;
499
+ authScopeId: string;
500
+ tenantId: string | null;
501
+ enabled: boolean;
502
+ created: number | null;
503
+ updated: number | null;
504
+ }
505
+ /**
506
+ * Sent to the server to initiate an organization sign-up.
507
+ * The user provides {@link orgName}, {@link orgDescription}, {@link email}, and
508
+ * {@link displayName}. The remaining fields ({@link id}, {@link verificationToken},
509
+ * {@link expiresAt}, {@link created}) are populated by the server before the record
510
+ * is persisted.
511
+ */
512
+ interface SignUpRequest {
513
+ id?: string | null;
514
+ verificationToken?: string | null;
515
+ expiresAt?: number | null;
516
+ created?: number | null;
517
+ orgName: string;
518
+ orgDescription?: string | null;
519
+ email: string;
520
+ displayName: string;
521
+ }
522
+ /**
523
+ * Sent to the server to complete an organization sign-up after email verification.
524
+ * The {@link token} comes from the verification email link; the {@link password}
525
+ * is what the user enters on the "set your password" form.
526
+ */
527
+ interface SignUpCompleteRequest {
528
+ token: string;
529
+ password: string;
530
+ }
475
531
  import { IKinotic } from "@kinotic-ai/core";
476
532
  import { CrudServiceProxy, ICrudServiceProxy } from "@kinotic-ai/core";
477
533
  interface IApplicationService extends ICrudServiceProxy<Application> {
@@ -774,6 +830,39 @@ declare class WorkloadServiceProxy extends CrudServiceProxy6<Workload> implement
774
830
  countForNode(nodeId: string): Promise<number>;
775
831
  syncIndex(): Promise<void>;
776
832
  }
833
+ import { CrudServiceProxy as CrudServiceProxy7, IKinotic as IKinotic10, ICrudServiceProxy as ICrudServiceProxy7, Page as Page3, Pageable as Pageable4 } from "@kinotic-ai/core";
834
+ interface IIamUserService extends ICrudServiceProxy7<IamUser> {
835
+ /**
836
+ * Finds the user with the given email within the given auth scope.
837
+ * @return Promise emitting the user or null if no user matches
838
+ */
839
+ findByEmailAndScope(email: string, authScopeType: string, authScopeId: string): Promise<IamUser | null>;
840
+ /**
841
+ * Finds all users registered against the given auth scope.
842
+ */
843
+ findByScope(authScopeType: string, authScopeId: string, pageable: Pageable4): Promise<Page3<IamUser>>;
844
+ /**
845
+ * Creates a user and, if a password is provided, the matching credential.
846
+ * APPLICATION-scoped users must carry a {@code tenantId}; SYSTEM and ORGANIZATION users must not.
847
+ */
848
+ createUser(user: IamUser, password: string | null): Promise<IamUser>;
849
+ /**
850
+ * Verifies the current password and updates it. Used when the user knows their current password.
851
+ */
852
+ changePassword(userId: string, currentPassword: string, newPassword: string): Promise<void>;
853
+ /**
854
+ * Replaces the user's password without verifying the current one. Administrative reset.
855
+ */
856
+ resetPassword(userId: string, newPassword: string): Promise<void>;
857
+ }
858
+ declare class IamUserService extends CrudServiceProxy7<IamUser> implements IIamUserService {
859
+ constructor(kinotic: IKinotic10);
860
+ findByEmailAndScope(email: string, authScopeType: string, authScopeId: string): Promise<IamUser | null>;
861
+ findByScope(authScopeType: string, authScopeId: string, pageable: Pageable4): Promise<Page3<IamUser>>;
862
+ createUser(user: IamUser, password: string | null): Promise<IamUser>;
863
+ changePassword(userId: string, currentPassword: string, newPassword: string): Promise<void>;
864
+ resetPassword(userId: string, newPassword: string): Promise<void>;
865
+ }
777
866
  import { KinoticPlugin } from "@kinotic-ai/core";
778
867
  interface IOsApiExtension {
779
868
  applications: IApplicationService;
@@ -785,9 +874,10 @@ interface IOsApiExtension {
785
874
  dataInsights: IDataInsightsService;
786
875
  vmNodes: IVmNodeService;
787
876
  workloads: IWorkloadService;
877
+ iamUsers: IIamUserService;
788
878
  }
789
879
  declare const OsApiPlugin: KinoticPlugin<IOsApiExtension>;
790
880
  declare module "@kinotic-ai/core" {
791
881
  interface KinoticSingleton extends IOsApiExtension {}
792
882
  }
793
- export { WorkloadStatus, WorkloadServiceProxy, Workload, VmProviderType, VmNodeStatus, VmNodeServiceProxy, VmNode, VersionDecorator, TimeReferenceDecorator, TextDecorator, TenantSelectionC3Type, TenantIdDecorator, SingleLoggerLevelsDescriptor, QueryOptionsC3Type, QueryDecorator, ProjectType, ProjectService, Project, ProgressType, PageableC3Type, PageC3Type, OsApiPlugin, NotIndexedDecorator, NestedDecorator, NamedQueriesDefinitionService, NamedQueriesDefinition, MigrationService, MigrationResult, MigrationRequest, MigrationDefinition, LoggersDescriptor, LoggerLevelsDescriptor, LogManager, LogLevel, InsightRequest, InsightProgress, IdDecorator, IWorkloadService, IVmNodeService, IProjectService, IOsApiExtension, INamedQueriesDefinitionService, IMigrationService, ILogManager, IEntityDefinitionService, IDataInsightsService, IApplicationService, GroupLoggerLevelsDescriptor, FlattenedDecorator, EsIndexConfigurationDecorator, EntityDefinitionService, EntityDefinition, EntityDecorator, DiscriminatorDecorator, DataInsightsService, DataInsightsComponent, AutoGeneratedIdDecorator, ApplicationService, Application };
883
+ export { WorkloadStatus, WorkloadServiceProxy, Workload, VmProviderType, VmNodeStatus, VmNodeServiceProxy, VmNode, VersionDecorator, TimeReferenceDecorator, TextDecorator, TenantSelectionC3Type, TenantIdDecorator, SingleLoggerLevelsDescriptor, SignUpRequest, SignUpCompleteRequest, QueryOptionsC3Type, QueryDecorator, ProjectType, ProjectService, Project, ProgressType, PageableC3Type, PageC3Type, OsApiPlugin, NotIndexedDecorator, NestedDecorator, NamedQueriesDefinitionService, NamedQueriesDefinition, MigrationService, MigrationResult, MigrationRequest, MigrationDefinition, LoggersDescriptor, LoggerLevelsDescriptor, LogManager, LogLevel, InsightRequest, InsightProgress, IdDecorator, IamUserService, IamUser, IWorkloadService, IVmNodeService, IProjectService, IOsApiExtension, INamedQueriesDefinitionService, IMigrationService, ILogManager, IIamUserService, IEntityDefinitionService, IDataInsightsService, IApplicationService, GroupLoggerLevelsDescriptor, FlattenedDecorator, EsIndexConfigurationDecorator, EntityDefinitionService, EntityDefinition, EntityDecorator, DiscriminatorDecorator, DataInsightsService, DataInsightsComponent, AutoGeneratedIdDecorator, AuthType, ApplicationService, Application };
package/dist/index.js CHANGED
@@ -315,6 +315,27 @@ class VmNode {
315
315
  this.hostname = hostname;
316
316
  }
317
317
  }
318
+ // packages/os-api/src/api/model/iam/AuthType.ts
319
+ var AuthType;
320
+ ((AuthType2) => {
321
+ AuthType2["LOCAL"] = "LOCAL";
322
+ AuthType2["OIDC"] = "OIDC";
323
+ })(AuthType ||= {});
324
+ // packages/os-api/src/api/model/iam/IamUser.ts
325
+ class IamUser {
326
+ id = null;
327
+ email = "";
328
+ displayName = null;
329
+ authType = null;
330
+ oidcSubject = null;
331
+ oidcConfigId = null;
332
+ authScopeType = "";
333
+ authScopeId = "";
334
+ tenantId = null;
335
+ enabled = true;
336
+ created = null;
337
+ updated = null;
338
+ }
318
339
  // packages/os-api/src/api/services/IApplicationService.ts
319
340
  import { CrudServiceProxy } from "@kinotic-ai/core";
320
341
 
@@ -520,6 +541,29 @@ class WorkloadServiceProxy extends CrudServiceProxy6 {
520
541
  return this.serviceProxy.invoke("syncIndex", []);
521
542
  }
522
543
  }
544
+ // packages/os-api/src/api/services/iam/IIamUserService.ts
545
+ import { CrudServiceProxy as CrudServiceProxy7 } from "@kinotic-ai/core";
546
+
547
+ class IamUserService extends CrudServiceProxy7 {
548
+ constructor(kinotic) {
549
+ super(kinotic.serviceProxy("org.kinotic.os.api.services.iam.IamUserService"));
550
+ }
551
+ findByEmailAndScope(email, authScopeType, authScopeId) {
552
+ return this.serviceProxy.invoke("findByEmailAndScope", [email, authScopeType, authScopeId]);
553
+ }
554
+ findByScope(authScopeType, authScopeId, pageable) {
555
+ return this.serviceProxy.invoke("findByScope", [authScopeType, authScopeId, pageable]);
556
+ }
557
+ createUser(user, password) {
558
+ return this.serviceProxy.invoke("createUser", [user, password]);
559
+ }
560
+ changePassword(userId, currentPassword, newPassword) {
561
+ return this.serviceProxy.invoke("changePassword", [userId, currentPassword, newPassword]);
562
+ }
563
+ resetPassword(userId, newPassword) {
564
+ return this.serviceProxy.invoke("resetPassword", [userId, newPassword]);
565
+ }
566
+ }
523
567
  // packages/os-api/src/api/OsApiPlugin.ts
524
568
  var OsApiPlugin = {
525
569
  install(kinotic) {
@@ -532,7 +576,8 @@ var OsApiPlugin = {
532
576
  migrations: new MigrationService(kinotic),
533
577
  dataInsights: new DataInsightsService(kinotic),
534
578
  vmNodes: new VmNodeServiceProxy(kinotic),
535
- workloads: new WorkloadServiceProxy(kinotic)
579
+ workloads: new WorkloadServiceProxy(kinotic),
580
+ iamUsers: new IamUserService(kinotic)
536
581
  };
537
582
  }
538
583
  };
@@ -569,6 +614,8 @@ export {
569
614
  LogManager,
570
615
  LogLevel,
571
616
  IdDecorator,
617
+ IamUserService,
618
+ IamUser,
572
619
  GroupLoggerLevelsDescriptor,
573
620
  FlattenedDecorator,
574
621
  EsIndexConfigurationDecorator,
@@ -578,6 +625,7 @@ export {
578
625
  DiscriminatorDecorator,
579
626
  DataInsightsService,
580
627
  AutoGeneratedIdDecorator,
628
+ AuthType,
581
629
  ApplicationService,
582
630
  Application
583
631
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kinotic-ai/os-api",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"