@kohost/api-client 3.1.24 → 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 +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 +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 +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 +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 +210 -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",
@@ -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",
@@ -11465,6 +11603,11 @@ var require_ticket = __commonJS({
11465
11603
  enum: ["open", "pending", "solved", "closed"],
11466
11604
  default: "open"
11467
11605
  },
11606
+ priority: {
11607
+ type: "string",
11608
+ enum: ["low", "normal", "high"],
11609
+ default: "normal"
11610
+ },
11468
11611
  tags: {
11469
11612
  type: "array",
11470
11613
  default: [],
@@ -11661,7 +11804,8 @@ var require_product = __commonJS({
11661
11804
  },
11662
11805
  type: {
11663
11806
  type: "string",
11664
- default: "product"
11807
+ default: "product",
11808
+ enum: ["product"]
11665
11809
  },
11666
11810
  name: {
11667
11811
  type: "string"
@@ -11746,7 +11890,8 @@ var require_order = __commonJS({
11746
11890
  },
11747
11891
  type: {
11748
11892
  type: "string",
11749
- default: "order"
11893
+ default: "order",
11894
+ enum: ["order"]
11750
11895
  },
11751
11896
  orderNumber: {
11752
11897
  type: "string"
@@ -11764,10 +11909,14 @@ var require_order = __commonJS({
11764
11909
  "refunded"
11765
11910
  ]
11766
11911
  },
11767
- user: {
11912
+ userId: {
11768
11913
  $ref: "definitions.json#/definitions/id",
11769
11914
  description: "User id of purchaser"
11770
11915
  },
11916
+ reservationId: {
11917
+ $ref: "definitions.json#/definitions/id",
11918
+ description: "Reservation id if the order is for a reservation"
11919
+ },
11771
11920
  date: {
11772
11921
  $ref: "definitions.json#/definitions/date"
11773
11922
  },
@@ -11797,6 +11946,9 @@ var require_order = __commonJS({
11797
11946
  },
11798
11947
  deliveryClass: {
11799
11948
  type: "string"
11949
+ },
11950
+ productId: {
11951
+ type: "string"
11800
11952
  }
11801
11953
  }
11802
11954
  }
@@ -12110,7 +12262,8 @@ var require_deviceRouter = __commonJS({
12110
12262
  },
12111
12263
  type: {
12112
12264
  type: "string",
12113
- default: "deviceRouter"
12265
+ default: "deviceRouter",
12266
+ enum: ["deviceRouter"]
12114
12267
  },
12115
12268
  driver: {
12116
12269
  type: "string"
@@ -12199,13 +12352,13 @@ var require_credential = __commonJS({
12199
12352
  credential: {
12200
12353
  type: "string"
12201
12354
  },
12202
- user: {
12355
+ userId: {
12203
12356
  type: "string"
12204
12357
  },
12205
- organization: {
12358
+ organizationId: {
12206
12359
  type: "string"
12207
12360
  },
12208
- property: {
12361
+ propertyId: {
12209
12362
  type: "string"
12210
12363
  },
12211
12364
  deviceId: {
@@ -12277,7 +12430,8 @@ var require_shortLink = __commonJS({
12277
12430
  },
12278
12431
  type: {
12279
12432
  type: "string",
12280
- default: "shortLink"
12433
+ default: "shortLink",
12434
+ enum: ["shortLink"]
12281
12435
  },
12282
12436
  title: {
12283
12437
  type: "string"
@@ -12597,7 +12751,8 @@ var require_smsMessage = __commonJS({
12597
12751
  },
12598
12752
  type: {
12599
12753
  type: "string",
12600
- default: "smsMessage"
12754
+ default: "smsMessage",
12755
+ enum: ["smsMessage"]
12601
12756
  },
12602
12757
  to: {
12603
12758
  type: "string",
@@ -12701,7 +12856,8 @@ var require_emailMessage = __commonJS({
12701
12856
  },
12702
12857
  type: {
12703
12858
  type: "string",
12704
- default: "emailMessage"
12859
+ default: "emailMessage",
12860
+ enum: ["emailMessage"]
12705
12861
  },
12706
12862
  to: {
12707
12863
  type: "string",
@@ -12931,7 +13087,7 @@ var require_timeSheet = __commonJS({
12931
13087
  },
12932
13088
  discriminator: {
12933
13089
  type: "string",
12934
- enum: ["working", "driving", "meeting"]
13090
+ enum: ["working", "driving", "meeting", "break"]
12935
13091
  },
12936
13092
  start: {
12937
13093
  type: ["string", "object"],
@@ -13038,7 +13194,8 @@ var require_property = __commonJS({
13038
13194
  },
13039
13195
  type: {
13040
13196
  type: "string",
13041
- default: "property"
13197
+ default: "property",
13198
+ enum: ["property"]
13042
13199
  },
13043
13200
  discriminator: {
13044
13201
  type: "string",
@@ -13172,7 +13329,7 @@ var require_property = __commonJS({
13172
13329
  },
13173
13330
  roomUpgrades: {},
13174
13331
  pet: {},
13175
- promo: {}
13332
+ promos: {}
13176
13333
  }
13177
13334
  },
13178
13335
  CheckOut: {
@@ -13398,7 +13555,8 @@ var require_organization = __commonJS({
13398
13555
  },
13399
13556
  type: {
13400
13557
  type: "string",
13401
- default: "organization"
13558
+ default: "organization",
13559
+ enum: ["organization"]
13402
13560
  },
13403
13561
  accountNumber: {
13404
13562
  type: ["number", "null"],
@@ -13594,6 +13752,7 @@ var require_Models = __commonJS({
13594
13752
  var Thermostat = require_Thermostat();
13595
13753
  var WindowCovering = require_WindowCovering();
13596
13754
  var Identification = require_Identification();
13755
+ var Policy = require_Policy();
13597
13756
  var User = require_User();
13598
13757
  var SystemUser = require_SystemUser();
13599
13758
  var Courtesy = require_Courtesy();
@@ -13657,7 +13816,8 @@ var require_Models = __commonJS({
13657
13816
  EmailMessage,
13658
13817
  Order,
13659
13818
  Announcement,
13660
- TimeSheet
13819
+ TimeSheet,
13820
+ Policy
13661
13821
  };
13662
13822
  }
13663
13823
  });