@kohost/api-client 3.1.23 → 3.2.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 (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 +6 -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 +7 -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 +2 -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 +7 -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 +5 -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 +215 -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 +5975 -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",
@@ -10255,10 +10382,15 @@ var require_mediaSource = __commonJS({
10255
10382
  "display",
10256
10383
  "favoriteChannel",
10257
10384
  "play",
10385
+ "playing",
10258
10386
  "stop",
10387
+ "stopped",
10259
10388
  "pause",
10389
+ "paused",
10260
10390
  "fastForward",
10391
+ "fastForwarding",
10261
10392
  "rewind",
10393
+ "rewinding",
10262
10394
  "instantReplay",
10263
10395
  "record",
10264
10396
  "ac3",
@@ -10410,6 +10542,11 @@ var require_room = __commonJS({
10410
10542
  id: {
10411
10543
  $ref: "definitions.json#/definitions/id"
10412
10544
  },
10545
+ type: {
10546
+ type: "string",
10547
+ enum: ["room"],
10548
+ default: "room"
10549
+ },
10413
10550
  name: {
10414
10551
  type: "string"
10415
10552
  },
@@ -10520,6 +10657,11 @@ var require_scene = __commonJS({
10520
10657
  description: {
10521
10658
  type: "string"
10522
10659
  },
10660
+ type: {
10661
+ type: "string",
10662
+ enum: ["scene"],
10663
+ default: "scene"
10664
+ },
10523
10665
  devices: {
10524
10666
  type: "object",
10525
10667
  properties: {
@@ -11025,7 +11167,8 @@ var require_space = __commonJS({
11025
11167
  },
11026
11168
  type: {
11027
11169
  type: "string",
11028
- default: "space"
11170
+ default: "space",
11171
+ enum: ["space"]
11029
11172
  },
11030
11173
  discriminator: {
11031
11174
  type: "string",
@@ -11460,6 +11603,11 @@ var require_ticket = __commonJS({
11460
11603
  enum: ["open", "pending", "solved", "closed"],
11461
11604
  default: "open"
11462
11605
  },
11606
+ priority: {
11607
+ type: "string",
11608
+ enum: ["low", "normal", "high"],
11609
+ default: "normal"
11610
+ },
11463
11611
  tags: {
11464
11612
  type: "array",
11465
11613
  default: [],
@@ -11656,7 +11804,8 @@ var require_product = __commonJS({
11656
11804
  },
11657
11805
  type: {
11658
11806
  type: "string",
11659
- default: "product"
11807
+ default: "product",
11808
+ enum: ["product"]
11660
11809
  },
11661
11810
  name: {
11662
11811
  type: "string"
@@ -11741,7 +11890,8 @@ var require_order = __commonJS({
11741
11890
  },
11742
11891
  type: {
11743
11892
  type: "string",
11744
- default: "order"
11893
+ default: "order",
11894
+ enum: ["order"]
11745
11895
  },
11746
11896
  orderNumber: {
11747
11897
  type: "string"
@@ -11759,10 +11909,14 @@ var require_order = __commonJS({
11759
11909
  "refunded"
11760
11910
  ]
11761
11911
  },
11762
- user: {
11912
+ userId: {
11763
11913
  $ref: "definitions.json#/definitions/id",
11764
11914
  description: "User id of purchaser"
11765
11915
  },
11916
+ reservationId: {
11917
+ $ref: "definitions.json#/definitions/id",
11918
+ description: "Reservation id if the order is for a reservation"
11919
+ },
11766
11920
  date: {
11767
11921
  $ref: "definitions.json#/definitions/date"
11768
11922
  },
@@ -11792,6 +11946,9 @@ var require_order = __commonJS({
11792
11946
  },
11793
11947
  deliveryClass: {
11794
11948
  type: "string"
11949
+ },
11950
+ productId: {
11951
+ type: "string"
11795
11952
  }
11796
11953
  }
11797
11954
  }
@@ -12105,7 +12262,8 @@ var require_deviceRouter = __commonJS({
12105
12262
  },
12106
12263
  type: {
12107
12264
  type: "string",
12108
- default: "deviceRouter"
12265
+ default: "deviceRouter",
12266
+ enum: ["deviceRouter"]
12109
12267
  },
12110
12268
  driver: {
12111
12269
  type: "string"
@@ -12194,13 +12352,13 @@ var require_credential = __commonJS({
12194
12352
  credential: {
12195
12353
  type: "string"
12196
12354
  },
12197
- user: {
12355
+ userId: {
12198
12356
  type: "string"
12199
12357
  },
12200
- organization: {
12358
+ organizationId: {
12201
12359
  type: "string"
12202
12360
  },
12203
- property: {
12361
+ propertyId: {
12204
12362
  type: "string"
12205
12363
  },
12206
12364
  deviceId: {
@@ -12272,7 +12430,8 @@ var require_shortLink = __commonJS({
12272
12430
  },
12273
12431
  type: {
12274
12432
  type: "string",
12275
- default: "shortLink"
12433
+ default: "shortLink",
12434
+ enum: ["shortLink"]
12276
12435
  },
12277
12436
  title: {
12278
12437
  type: "string"
@@ -12592,7 +12751,8 @@ var require_smsMessage = __commonJS({
12592
12751
  },
12593
12752
  type: {
12594
12753
  type: "string",
12595
- default: "smsMessage"
12754
+ default: "smsMessage",
12755
+ enum: ["smsMessage"]
12596
12756
  },
12597
12757
  to: {
12598
12758
  type: "string",
@@ -12696,7 +12856,8 @@ var require_emailMessage = __commonJS({
12696
12856
  },
12697
12857
  type: {
12698
12858
  type: "string",
12699
- default: "emailMessage"
12859
+ default: "emailMessage",
12860
+ enum: ["emailMessage"]
12700
12861
  },
12701
12862
  to: {
12702
12863
  type: "string",
@@ -12926,7 +13087,7 @@ var require_timeSheet = __commonJS({
12926
13087
  },
12927
13088
  discriminator: {
12928
13089
  type: "string",
12929
- enum: ["working", "driving", "meeting"]
13090
+ enum: ["working", "driving", "meeting", "break"]
12930
13091
  },
12931
13092
  start: {
12932
13093
  type: ["string", "object"],
@@ -13033,7 +13194,8 @@ var require_property = __commonJS({
13033
13194
  },
13034
13195
  type: {
13035
13196
  type: "string",
13036
- default: "property"
13197
+ default: "property",
13198
+ enum: ["property"]
13037
13199
  },
13038
13200
  discriminator: {
13039
13201
  type: "string",
@@ -13167,7 +13329,7 @@ var require_property = __commonJS({
13167
13329
  },
13168
13330
  roomUpgrades: {},
13169
13331
  pet: {},
13170
- promo: {}
13332
+ promos: {}
13171
13333
  }
13172
13334
  },
13173
13335
  CheckOut: {
@@ -13393,7 +13555,8 @@ var require_organization = __commonJS({
13393
13555
  },
13394
13556
  type: {
13395
13557
  type: "string",
13396
- default: "organization"
13558
+ default: "organization",
13559
+ enum: ["organization"]
13397
13560
  },
13398
13561
  accountNumber: {
13399
13562
  type: ["number", "null"],
@@ -13589,6 +13752,7 @@ var require_Models = __commonJS({
13589
13752
  var Thermostat = require_Thermostat();
13590
13753
  var WindowCovering = require_WindowCovering();
13591
13754
  var Identification = require_Identification();
13755
+ var Policy = require_Policy();
13592
13756
  var User = require_User();
13593
13757
  var SystemUser = require_SystemUser();
13594
13758
  var Courtesy = require_Courtesy();
@@ -13652,7 +13816,8 @@ var require_Models = __commonJS({
13652
13816
  EmailMessage,
13653
13817
  Order,
13654
13818
  Announcement,
13655
- TimeSheet
13819
+ TimeSheet,
13820
+ Policy
13656
13821
  };
13657
13822
  }
13658
13823
  });