@kohost/api-client 3.1.24 → 3.2.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.
Files changed (73) hide show
  1. package/dist/cjs/Client/index.js +471 -62
  2. package/dist/cjs/Models/Policy.js +34 -0
  3. package/dist/cjs/Models/User.js +17 -2
  4. package/dist/cjs/Models/index.js +2 -2
  5. package/dist/cjs/SocketIoClient/index.js +4 -0
  6. package/dist/cjs/index.js +1 -1
  7. package/dist/cjs/schemas/AnnouncementSchema.d.ts +1 -1
  8. package/dist/cjs/schemas/CategorySchema.d.ts +1 -1
  9. package/dist/cjs/schemas/CredentialSchema.d.ts +3 -3
  10. package/dist/cjs/schemas/DeviceRouterSchema.d.ts +1 -1
  11. package/dist/cjs/schemas/EmailMessageSchema.d.ts +1 -1
  12. package/dist/cjs/schemas/MediaFileSchema.d.ts +1 -1
  13. package/dist/cjs/schemas/MediaSourceSchema.d.ts +1 -1
  14. package/dist/cjs/schemas/OrderSchema.d.ts +7 -2
  15. package/dist/cjs/schemas/OrganizationSchema.d.ts +1 -1
  16. package/dist/cjs/schemas/PolicySchema.d.ts +25 -0
  17. package/dist/cjs/schemas/ProductSchema.d.ts +2 -2
  18. package/dist/cjs/schemas/PropertySchema.d.ts +2 -2
  19. package/dist/cjs/schemas/ReservationSchema.d.ts +1 -1
  20. package/dist/cjs/schemas/RoomSchema.d.ts +2 -1
  21. package/dist/cjs/schemas/SceneSchema.d.ts +1 -0
  22. package/dist/cjs/schemas/ShortLinkSchema.d.ts +1 -1
  23. package/dist/cjs/schemas/SmsMessageSchema.d.ts +1 -1
  24. package/dist/cjs/schemas/SpaceSchema.d.ts +1 -1
  25. package/dist/cjs/schemas/SystemUserSchema.d.ts +3 -3
  26. package/dist/cjs/schemas/TicketSchema.d.ts +4 -1
  27. package/dist/cjs/schemas/TimeSheetSchema.d.ts +1 -1
  28. package/dist/cjs/schemas/UserSchema.d.ts +26 -12
  29. package/dist/cjs/schemas/camera.json +2 -1
  30. package/dist/cjs/schemas/credential.json +3 -3
  31. package/dist/cjs/schemas/deviceRouter.json +2 -1
  32. package/dist/cjs/schemas/emailMessage.json +2 -1
  33. package/dist/cjs/schemas/mediaFile.json +2 -1
  34. package/dist/cjs/schemas/mediaSource.json +2 -1
  35. package/dist/cjs/schemas/order.json +10 -2
  36. package/dist/cjs/schemas/organization.json +2 -1
  37. package/dist/cjs/schemas/policy.json +62 -0
  38. package/dist/cjs/schemas/product.json +2 -1
  39. package/dist/cjs/schemas/property.json +3 -2
  40. package/dist/cjs/schemas/reservation.json +2 -1
  41. package/dist/cjs/schemas/room.json +5 -0
  42. package/dist/cjs/schemas/scene.json +5 -0
  43. package/dist/cjs/schemas/shortLink.json +2 -1
  44. package/dist/cjs/schemas/smsMessage.json +2 -1
  45. package/dist/cjs/schemas/space.json +2 -1
  46. package/dist/cjs/schemas/systemUser.json +10 -2
  47. package/dist/cjs/schemas/ticket.json +11 -0
  48. package/dist/cjs/schemas/timeSheet.json +1 -1
  49. package/dist/cjs/schemas/user.json +23 -26
  50. package/dist/cjs/utils/entityFactory.js +80 -0
  51. package/dist/cjs/utils/index.js +2 -0
  52. package/dist/esm/Client.js +473 -64
  53. package/dist/esm/Client.js.map +3 -3
  54. package/dist/esm/Models.js +216 -50
  55. package/dist/esm/Models.js.map +3 -3
  56. package/dist/esm/SocketIoClient.js +41 -17
  57. package/dist/esm/SocketIoClient.js.map +2 -2
  58. package/dist/esm/defs.js +33 -24
  59. package/dist/esm/defs.js.map +2 -2
  60. package/dist/esm/utils.js +5981 -1
  61. package/dist/esm/utils.js.map +4 -4
  62. package/dist/useCases/CreatePolicy.js +32 -0
  63. package/dist/useCases/DeletePolicy.js +32 -0
  64. package/dist/useCases/{SetCustomScene.js → DescribePolicy.js} +3 -3
  65. package/dist/useCases/DescribeReservationPetProducts.js +32 -0
  66. package/dist/useCases/DescribeReservationPromos.js +32 -0
  67. package/dist/useCases/ListPolicies.js +32 -0
  68. package/dist/useCases/ListProducts.js +32 -0
  69. package/dist/useCases/PurchaseReservationPetProducts.js +32 -0
  70. package/dist/useCases/PurchaseReservationPromos.js +32 -0
  71. package/dist/useCases/SetScene.js +32 -0
  72. package/dist/useCases/UpdatePolicy.js +32 -0
  73. package/package.json +4 -4
@@ -7737,7 +7737,8 @@ var require_reservation = __commonJS({
7737
7737
  },
7738
7738
  type: {
7739
7739
  type: "string",
7740
- default: "reservation"
7740
+ default: "reservation",
7741
+ enum: ["reservation"]
7741
7742
  },
7742
7743
  sharedGuests: {
7743
7744
  type: "array",
@@ -8353,7 +8354,8 @@ var require_mediaFile = __commonJS({
8353
8354
  },
8354
8355
  type: {
8355
8356
  type: "string",
8356
- default: "mediaFile"
8357
+ default: "mediaFile",
8358
+ enum: ["mediaFile"]
8357
8359
  },
8358
8360
  name: {
8359
8361
  type: "string"
@@ -9330,6 +9332,111 @@ var require_Identification = __commonJS({
9330
9332
  }
9331
9333
  });
9332
9334
 
9335
+ // src/schemas/policy.json
9336
+ var require_policy = __commonJS({
9337
+ "src/schemas/policy.json"(exports, module) {
9338
+ module.exports = {
9339
+ $schema: "http://json-schema.org/draft-07/schema",
9340
+ $id: "policy.json",
9341
+ title: "Policy",
9342
+ description: "A policy is a set of permissions that can be applied to a user to limit their access to resources.",
9343
+ type: "object",
9344
+ required: [
9345
+ "name",
9346
+ "type",
9347
+ "organizationId",
9348
+ "propertyId",
9349
+ "permissions",
9350
+ "discriminator"
9351
+ ],
9352
+ properties: {
9353
+ id: {
9354
+ $ref: "definitions.json#/definitions/id"
9355
+ },
9356
+ type: {
9357
+ type: "string",
9358
+ default: "policy",
9359
+ enum: ["policy"]
9360
+ },
9361
+ discriminator: {
9362
+ type: "string",
9363
+ enum: ["user"]
9364
+ },
9365
+ name: {
9366
+ type: "string",
9367
+ minLength: 1
9368
+ },
9369
+ description: {
9370
+ type: "string"
9371
+ },
9372
+ organizationId: {
9373
+ type: "string"
9374
+ },
9375
+ propertyId: {
9376
+ type: "string"
9377
+ },
9378
+ permissions: {
9379
+ type: "array",
9380
+ items: {
9381
+ type: "object",
9382
+ required: ["entities", "effect"],
9383
+ properties: {
9384
+ entities: {
9385
+ type: "array",
9386
+ items: {
9387
+ type: "string",
9388
+ pattern: "^[^:]+(:.+)+$"
9389
+ }
9390
+ },
9391
+ effect: {
9392
+ type: "string",
9393
+ enum: ["Allow", "Deny"]
9394
+ }
9395
+ }
9396
+ }
9397
+ }
9398
+ }
9399
+ };
9400
+ }
9401
+ });
9402
+
9403
+ // src/Models/Policy.js
9404
+ var require_Policy = __commonJS({
9405
+ "src/Models/Policy.js"(exports, module) {
9406
+ var schemas = require_schema();
9407
+ var schema = require_policy();
9408
+ var Entity = require_Entity();
9409
+ schemas.add(schema);
9410
+ var validator = schemas.compile(schema);
9411
+ var Policy = class extends Entity {
9412
+ static {
9413
+ __name(this, "Policy");
9414
+ }
9415
+ /**
9416
+ * @typedef {import("../schemas/PolicySchema").Policy} PolicyType
9417
+ * Create a Permission Policy instance.
9418
+ * @constructor
9419
+ * @param {PolicyType} policy - The policy object of type PolicyType.
9420
+ */
9421
+ constructor(policy) {
9422
+ super(policy);
9423
+ }
9424
+ };
9425
+ Object.defineProperty(Policy.prototype, "schema", {
9426
+ value: schema
9427
+ });
9428
+ Object.defineProperty(Policy.prototype, "validator", {
9429
+ get: function() {
9430
+ return validator;
9431
+ }
9432
+ });
9433
+ Object.defineProperty(Policy, "validProperties", {
9434
+ value: Object.keys(schema.properties)
9435
+ });
9436
+ module.exports = Policy;
9437
+ }
9438
+ });
9439
+
9333
9440
  // src/schemas/user.json
9334
9441
  var require_user = __commonJS({
9335
9442
  "src/schemas/user.json"(exports, module) {
@@ -9396,42 +9503,39 @@ var require_user = __commonJS({
9396
9503
  default: [],
9397
9504
  items: {
9398
9505
  type: "object",
9399
- required: ["organization", "property", "role"],
9506
+ required: ["organizationId", "propertyId", "role"],
9400
9507
  properties: {
9401
- organization: {
9508
+ organizationId: {
9402
9509
  type: "string",
9403
9510
  description: "The ID of the organization the permission is applies to."
9404
9511
  },
9405
- property: {
9512
+ propertyId: {
9406
9513
  type: "string",
9407
9514
  description: "The ID of the property the permission is applies to."
9408
9515
  },
9409
9516
  role: {
9410
9517
  type: "string",
9411
- enum: ["Guest", "User", "Manager", "Administrator", "SuperAdmin"]
9518
+ enum: [
9519
+ "Guest",
9520
+ "User",
9521
+ "Manager",
9522
+ "Maintenance",
9523
+ "Administrator",
9524
+ "SuperAdmin"
9525
+ ]
9412
9526
  },
9413
- customPermissions: {
9527
+ policyIds: {
9414
9528
  type: "array",
9415
9529
  items: {
9416
- type: "object",
9417
- properties: {
9418
- discriminator: {
9419
- type: "string",
9420
- enum: ["RoomControl.spaces", "Concierge.timeTracking"]
9421
- },
9422
- onlyIncludeIds: {
9423
- type: "array",
9424
- items: {
9425
- type: "string"
9426
- }
9427
- },
9428
- excludeSubSystems: {
9429
- type: "array",
9430
- items: {
9431
- type: "string"
9432
- }
9433
- }
9434
- }
9530
+ type: "string",
9531
+ description: "ID of a policy that is applied to this role."
9532
+ }
9533
+ },
9534
+ policies: {
9535
+ type: "array",
9536
+ items: {
9537
+ description: "A policy object populated from the policyIds array.",
9538
+ $ref: "policy.json"
9435
9539
  }
9436
9540
  }
9437
9541
  },
@@ -9508,14 +9612,14 @@ var require_user = __commonJS({
9508
9612
  systemId: {
9509
9613
  type: "string"
9510
9614
  },
9511
- property: {
9615
+ propertyId: {
9512
9616
  type: "string"
9513
9617
  },
9514
9618
  driver: {
9515
9619
  type: "string"
9516
9620
  }
9517
9621
  },
9518
- required: ["systemId", "property", "driver"],
9622
+ required: ["systemId", "propertyId", "driver"],
9519
9623
  additionalProperties: false
9520
9624
  }
9521
9625
  }
@@ -9633,6 +9737,7 @@ var require_User = __commonJS({
9633
9737
  var Entity = require_Entity();
9634
9738
  var MediaFile = require_MediaFile();
9635
9739
  var Reservation = require_Reservation();
9740
+ var Policy = require_Policy();
9636
9741
  var Identification = require_Identification();
9637
9742
  var { nanoid: nanoid3 } = (init_index_browser2(), __toCommonJS(index_browser_exports2));
9638
9743
  schemas.add(paymentSchema);
@@ -9651,12 +9756,24 @@ var require_User = __commonJS({
9651
9756
  constructor(user) {
9652
9757
  if (user.photo)
9653
9758
  user.photo = new MediaFile(user.photo);
9654
- if (user.reservations)
9759
+ if (user.reservations) {
9655
9760
  user.reservations = user.reservations.map((res) => new Reservation(res));
9656
- if (user.identifications)
9761
+ }
9762
+ if (user.identifications) {
9657
9763
  user.identifications = user.identifications.map(
9658
9764
  (id) => new Identification(id)
9659
9765
  );
9766
+ }
9767
+ if (user.permissions) {
9768
+ user.permissions = user.permissions.map((permission) => {
9769
+ if (permission.policies && Array.isArray(permission.policies)) {
9770
+ permission.policies = permission.policies.map(
9771
+ (policy) => new Policy(policy)
9772
+ );
9773
+ }
9774
+ return permission;
9775
+ });
9776
+ }
9660
9777
  super(user);
9661
9778
  }
9662
9779
  static validatePhone(phoneNumber) {
@@ -9743,7 +9860,8 @@ var require_systemUser = __commonJS({
9743
9860
  },
9744
9861
  type: {
9745
9862
  type: "string",
9746
- default: "systemUser"
9863
+ default: "systemUser",
9864
+ enum: ["systemUser"]
9747
9865
  },
9748
9866
  driver: {
9749
9867
  $ref: "definitions.json#/definitions/driver"
@@ -9782,7 +9900,14 @@ var require_systemUser = __commonJS({
9782
9900
  type: "array",
9783
9901
  items: {
9784
9902
  type: "string",
9785
- enum: ["Guest", "User", "Manager", "Administrator", "SuperAdmin"]
9903
+ enum: [
9904
+ "Guest",
9905
+ "User",
9906
+ "Manager",
9907
+ "Maintenance",
9908
+ "Administrator",
9909
+ "SuperAdmin"
9910
+ ]
9786
9911
  }
9787
9912
  },
9788
9913
  nationality: {
@@ -9992,7 +10117,8 @@ var require_camera = __commonJS({
9992
10117
  type: "string"
9993
10118
  },
9994
10119
  type: {
9995
- $ref: "definitions.json#/definitions/type"
10120
+ $ref: "definitions.json#/definitions/type",
10121
+ default: "camera"
9996
10122
  },
9997
10123
  supportedNotifications: {
9998
10124
  $ref: "definitions.json#/definitions/supportedNotifications"
@@ -10159,7 +10285,8 @@ var require_mediaSource = __commonJS({
10159
10285
  },
10160
10286
  type: {
10161
10287
  type: "string",
10162
- default: "mediaSource"
10288
+ default: "mediaSource",
10289
+ enum: ["mediaSource"]
10163
10290
  },
10164
10291
  discriminator: {
10165
10292
  type: "string",
@@ -10415,6 +10542,11 @@ var require_room = __commonJS({
10415
10542
  id: {
10416
10543
  $ref: "definitions.json#/definitions/id"
10417
10544
  },
10545
+ type: {
10546
+ type: "string",
10547
+ enum: ["room"],
10548
+ default: "room"
10549
+ },
10418
10550
  name: {
10419
10551
  type: "string"
10420
10552
  },
@@ -10525,6 +10657,11 @@ var require_scene = __commonJS({
10525
10657
  description: {
10526
10658
  type: "string"
10527
10659
  },
10660
+ type: {
10661
+ type: "string",
10662
+ enum: ["scene"],
10663
+ default: "scene"
10664
+ },
10528
10665
  devices: {
10529
10666
  type: "object",
10530
10667
  properties: {
@@ -11030,7 +11167,8 @@ var require_space = __commonJS({
11030
11167
  },
11031
11168
  type: {
11032
11169
  type: "string",
11033
- default: "space"
11170
+ default: "space",
11171
+ enum: ["space"]
11034
11172
  },
11035
11173
  discriminator: {
11036
11174
  type: "string",
@@ -11396,6 +11534,9 @@ var require_ticket = __commonJS({
11396
11534
  properties: {
11397
11535
  userId: {
11398
11536
  type: "string"
11537
+ },
11538
+ systemId: {
11539
+ type: "string"
11399
11540
  }
11400
11541
  }
11401
11542
  },
@@ -11434,6 +11575,9 @@ var require_ticket = __commonJS({
11434
11575
  roomId: {
11435
11576
  type: "string"
11436
11577
  },
11578
+ reservationId: {
11579
+ type: "string"
11580
+ },
11437
11581
  spaceId: {
11438
11582
  type: "string"
11439
11583
  },
@@ -11465,6 +11609,11 @@ var require_ticket = __commonJS({
11465
11609
  enum: ["open", "pending", "solved", "closed"],
11466
11610
  default: "open"
11467
11611
  },
11612
+ priority: {
11613
+ type: "string",
11614
+ enum: ["low", "normal", "high"],
11615
+ default: "normal"
11616
+ },
11468
11617
  tags: {
11469
11618
  type: "array",
11470
11619
  default: [],
@@ -11661,7 +11810,8 @@ var require_product = __commonJS({
11661
11810
  },
11662
11811
  type: {
11663
11812
  type: "string",
11664
- default: "product"
11813
+ default: "product",
11814
+ enum: ["product"]
11665
11815
  },
11666
11816
  name: {
11667
11817
  type: "string"
@@ -11746,7 +11896,8 @@ var require_order = __commonJS({
11746
11896
  },
11747
11897
  type: {
11748
11898
  type: "string",
11749
- default: "order"
11899
+ default: "order",
11900
+ enum: ["order"]
11750
11901
  },
11751
11902
  orderNumber: {
11752
11903
  type: "string"
@@ -11764,10 +11915,14 @@ var require_order = __commonJS({
11764
11915
  "refunded"
11765
11916
  ]
11766
11917
  },
11767
- user: {
11918
+ userId: {
11768
11919
  $ref: "definitions.json#/definitions/id",
11769
11920
  description: "User id of purchaser"
11770
11921
  },
11922
+ reservationId: {
11923
+ $ref: "definitions.json#/definitions/id",
11924
+ description: "Reservation id if the order is for a reservation"
11925
+ },
11771
11926
  date: {
11772
11927
  $ref: "definitions.json#/definitions/date"
11773
11928
  },
@@ -11797,6 +11952,9 @@ var require_order = __commonJS({
11797
11952
  },
11798
11953
  deliveryClass: {
11799
11954
  type: "string"
11955
+ },
11956
+ productId: {
11957
+ type: "string"
11800
11958
  }
11801
11959
  }
11802
11960
  }
@@ -12110,7 +12268,8 @@ var require_deviceRouter = __commonJS({
12110
12268
  },
12111
12269
  type: {
12112
12270
  type: "string",
12113
- default: "deviceRouter"
12271
+ default: "deviceRouter",
12272
+ enum: ["deviceRouter"]
12114
12273
  },
12115
12274
  driver: {
12116
12275
  type: "string"
@@ -12199,13 +12358,13 @@ var require_credential = __commonJS({
12199
12358
  credential: {
12200
12359
  type: "string"
12201
12360
  },
12202
- user: {
12361
+ userId: {
12203
12362
  type: "string"
12204
12363
  },
12205
- organization: {
12364
+ organizationId: {
12206
12365
  type: "string"
12207
12366
  },
12208
- property: {
12367
+ propertyId: {
12209
12368
  type: "string"
12210
12369
  },
12211
12370
  deviceId: {
@@ -12277,7 +12436,8 @@ var require_shortLink = __commonJS({
12277
12436
  },
12278
12437
  type: {
12279
12438
  type: "string",
12280
- default: "shortLink"
12439
+ default: "shortLink",
12440
+ enum: ["shortLink"]
12281
12441
  },
12282
12442
  title: {
12283
12443
  type: "string"
@@ -12597,7 +12757,8 @@ var require_smsMessage = __commonJS({
12597
12757
  },
12598
12758
  type: {
12599
12759
  type: "string",
12600
- default: "smsMessage"
12760
+ default: "smsMessage",
12761
+ enum: ["smsMessage"]
12601
12762
  },
12602
12763
  to: {
12603
12764
  type: "string",
@@ -12701,7 +12862,8 @@ var require_emailMessage = __commonJS({
12701
12862
  },
12702
12863
  type: {
12703
12864
  type: "string",
12704
- default: "emailMessage"
12865
+ default: "emailMessage",
12866
+ enum: ["emailMessage"]
12705
12867
  },
12706
12868
  to: {
12707
12869
  type: "string",
@@ -12931,7 +13093,7 @@ var require_timeSheet = __commonJS({
12931
13093
  },
12932
13094
  discriminator: {
12933
13095
  type: "string",
12934
- enum: ["working", "driving", "meeting"]
13096
+ enum: ["working", "driving", "meeting", "break"]
12935
13097
  },
12936
13098
  start: {
12937
13099
  type: ["string", "object"],
@@ -13038,7 +13200,8 @@ var require_property = __commonJS({
13038
13200
  },
13039
13201
  type: {
13040
13202
  type: "string",
13041
- default: "property"
13203
+ default: "property",
13204
+ enum: ["property"]
13042
13205
  },
13043
13206
  discriminator: {
13044
13207
  type: "string",
@@ -13172,7 +13335,7 @@ var require_property = __commonJS({
13172
13335
  },
13173
13336
  roomUpgrades: {},
13174
13337
  pet: {},
13175
- promo: {}
13338
+ promos: {}
13176
13339
  }
13177
13340
  },
13178
13341
  CheckOut: {
@@ -13398,7 +13561,8 @@ var require_organization = __commonJS({
13398
13561
  },
13399
13562
  type: {
13400
13563
  type: "string",
13401
- default: "organization"
13564
+ default: "organization",
13565
+ enum: ["organization"]
13402
13566
  },
13403
13567
  accountNumber: {
13404
13568
  type: ["number", "null"],
@@ -13594,6 +13758,7 @@ var require_Models = __commonJS({
13594
13758
  var Thermostat = require_Thermostat();
13595
13759
  var WindowCovering = require_WindowCovering();
13596
13760
  var Identification = require_Identification();
13761
+ var Policy = require_Policy();
13597
13762
  var User = require_User();
13598
13763
  var SystemUser = require_SystemUser();
13599
13764
  var Courtesy = require_Courtesy();
@@ -13657,7 +13822,8 @@ var require_Models = __commonJS({
13657
13822
  EmailMessage,
13658
13823
  Order,
13659
13824
  Announcement,
13660
- TimeSheet
13825
+ TimeSheet,
13826
+ Policy
13661
13827
  };
13662
13828
  }
13663
13829
  });