lunibee 0.3.0 → 0.3.2

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/dist/builders/attachment.d.ts +1 -0
  2. package/dist/builders/clone.d.ts +10 -0
  3. package/dist/builders/commands.d.ts +1 -1
  4. package/dist/builders/components.d.ts +24 -5
  5. package/dist/builders/embed.d.ts +1 -0
  6. package/dist/builders/index.js +68 -17
  7. package/dist/builders/index.js.map +10 -9
  8. package/dist/collection/index.d.ts +1 -0
  9. package/dist/collection/index.js +297 -19
  10. package/dist/collection/index.js.map +5 -4
  11. package/dist/collection/redis.d.ts +98 -0
  12. package/dist/core/collector.d.ts +8 -0
  13. package/dist/core/events.d.ts +1 -0
  14. package/dist/core/index.d.ts +3 -0
  15. package/dist/core/index.js +6252 -4704
  16. package/dist/core/index.js.map +47 -40
  17. package/dist/core/permissions.d.ts +3 -402
  18. package/dist/core/redis-cache.d.ts +85 -0
  19. package/dist/formatters/index.d.ts +5 -1
  20. package/dist/formatters/index.js +7 -3
  21. package/dist/formatters/index.js.map +3 -3
  22. package/dist/handlers/index.js +11 -2
  23. package/dist/handlers/index.js.map +3 -3
  24. package/dist/index.js +10481 -6148
  25. package/dist/index.js.map +70 -56
  26. package/dist/managers/application.d.ts +10 -6
  27. package/dist/managers/base.d.ts +4 -1
  28. package/dist/managers/guild.d.ts +3 -1
  29. package/dist/managers/index.d.ts +6 -1
  30. package/dist/managers/index.js +365 -103
  31. package/dist/managers/index.js.map +19 -22
  32. package/dist/managers/member.d.ts +3 -1
  33. package/dist/managers/message.d.ts +13 -4
  34. package/dist/managers/thread.d.ts +3 -3
  35. package/dist/rest/decoder.d.ts +2 -0
  36. package/dist/rest/errors.d.ts +13 -2
  37. package/dist/rest/headers.d.ts +31 -0
  38. package/dist/rest/identity.d.ts +31 -0
  39. package/dist/rest/index.d.ts +99 -6
  40. package/dist/rest/index.js +1412 -231
  41. package/dist/rest/index.js.map +16 -13
  42. package/dist/rest/limiter.d.ts +75 -10
  43. package/dist/rest/redis.d.ts +103 -22
  44. package/dist/rest/scheduler.d.ts +13 -0
  45. package/dist/rest/store.d.ts +135 -12
  46. package/dist/rest/telemetry.d.ts +151 -0
  47. package/dist/rest/transport.d.ts +9 -0
  48. package/dist/rest/webhook.d.ts +18 -6
  49. package/dist/sharding/bus.d.ts +12 -2
  50. package/dist/sharding/cluster.d.ts +225 -15
  51. package/dist/sharding/context.d.ts +41 -0
  52. package/dist/sharding/gateway-bot.d.ts +20 -0
  53. package/dist/sharding/health.d.ts +94 -0
  54. package/dist/sharding/host.d.ts +76 -0
  55. package/dist/sharding/identify.d.ts +64 -0
  56. package/dist/sharding/index.d.ts +62 -12
  57. package/dist/sharding/index.js +2459 -202
  58. package/dist/sharding/index.js.map +21 -13
  59. package/dist/sharding/protocol.d.ts +47 -0
  60. package/dist/sharding/remote-protocol.d.ts +100 -0
  61. package/dist/sharding/remote.d.ts +134 -0
  62. package/dist/sharding/requests.d.ts +54 -0
  63. package/dist/sharding/supervisor.d.ts +1 -1
  64. package/dist/sharding/transport.d.ts +6 -5
  65. package/dist/sharding/worker.d.ts +55 -0
  66. package/dist/structures/base.d.ts +16 -5
  67. package/dist/structures/index.d.ts +1 -1
  68. package/dist/structures/index.js +57 -91
  69. package/dist/structures/index.js.map +10 -18
  70. package/dist/structures/options.d.ts +3 -2
  71. package/dist/structures/permissions.d.ts +409 -0
  72. package/dist/structures/resources.d.ts +4 -1
  73. package/dist/types/gateway.d.ts +7 -0
  74. package/dist/types/index.d.ts +14 -4
  75. package/dist/types/index.js.map +3 -3
  76. package/dist/utils/args.d.ts +3 -1
  77. package/dist/utils/index.d.ts +6 -1
  78. package/dist/utils/index.js +17 -10
  79. package/dist/utils/index.js.map +4 -4
  80. package/dist/voice/index.d.ts +7 -1
  81. package/dist/voice/index.js +33 -10
  82. package/dist/voice/index.js.map +3 -3
  83. package/dist/ws/index.d.ts +3 -1
  84. package/dist/ws/index.js +33 -5
  85. package/dist/ws/index.js.map +6 -6
  86. package/dist/ws/send-budget.d.ts +1 -1
  87. package/package.json +22 -17
@@ -162,8 +162,9 @@ class Channel extends BaseStructure {
162
162
  rateLimitPerUser;
163
163
  position;
164
164
  permissionOverwrites;
165
+ partial;
165
166
  #context;
166
- constructor(data, context) {
167
+ constructor(data, context, options = {}) {
167
168
  super(data.id);
168
169
  if (!Number.isInteger(data.type) || data.type < 0)
169
170
  throw new RangeError("A Discord channel requires a valid channel type.");
@@ -176,6 +177,7 @@ class Channel extends BaseStructure {
176
177
  this.rateLimitPerUser = data.rate_limit_per_user;
177
178
  this.position = data.position;
178
179
  this.permissionOverwrites = (data.permission_overwrites ?? []).map((overwrite) => ({ ...overwrite }));
180
+ this.partial = options.partial ?? false;
179
181
  this.#context = context;
180
182
  }
181
183
  send(options) {
@@ -366,7 +368,12 @@ class Guild extends BaseStructure {
366
368
  }
367
369
  }
368
370
 
369
- // packages/core/src/permissions.ts
371
+ // packages/structures/src/permissions.ts
372
+ var PermissionOverwriteEnum;
373
+ ((PermissionOverwriteEnum) => {
374
+ PermissionOverwriteEnum[PermissionOverwriteEnum["Role"] = 0] = "Role";
375
+ PermissionOverwriteEnum[PermissionOverwriteEnum["Member"] = 1] = "Member";
376
+ })(PermissionOverwriteEnum ||= {});
370
377
  var Permission = {
371
378
  createInstantInvite: 1n << 0n,
372
379
  kickMembers: 1n << 1n,
@@ -648,6 +655,15 @@ class PermissionSet {
648
655
  get useExternalApps() {
649
656
  return (this.bitfield & Permission.useExternalApps) === Permission.useExternalApps;
650
657
  }
658
+ get setVoiceChannelStatus() {
659
+ return (this.bitfield & Permission.setVoiceChannelStatus) === Permission.setVoiceChannelStatus;
660
+ }
661
+ get pinMessages() {
662
+ return (this.bitfield & Permission.pinMessages) === Permission.pinMessages;
663
+ }
664
+ get bypassSlowmode() {
665
+ return (this.bitfield & Permission.bypassSlowmode) === Permission.bypassSlowmode;
666
+ }
651
667
  has(...permissions) {
652
668
  if (permissions.length === 1) {
653
669
  const p = permissions[0];
@@ -750,94 +766,38 @@ class PermissionsBitField extends PermissionSet {
750
766
  }
751
767
  }
752
768
  var ALL_PERMISSIONS = Object.values(Permission).reduce((bits, bit) => bits | bit, 0n);
753
- // packages/builders/src/components.ts
754
- var IS_COMPONENTS_V2 = 1 << 15;
755
- // packages/builders/src/commands.ts
756
- var MAX_SAFE = Number.MAX_SAFE_INTEGER;
757
- // packages/utils/src/args.ts
758
- var TRUE_WORDS = new Set([
759
- "true",
760
- "yes",
761
- "y",
762
- "on",
763
- "1",
764
- "enable",
765
- "enabled"
766
- ]);
767
- var FALSE_WORDS = new Set([
768
- "false",
769
- "no",
770
- "n",
771
- "off",
772
- "0",
773
- "disable",
774
- "disabled"
775
- ]);
776
- // packages/collection/src/index.ts
777
- var mapGet = Map.prototype.get;
778
- var mapHas = Map.prototype.has;
779
- // packages/rest/package.json
780
- var package_default = {
781
- name: "@lunibee/rest",
782
- version: "0.3.0",
783
- type: "module",
784
- module: "./src/index.ts",
785
- types: "./src/index.ts",
786
- exports: {
787
- ".": "./src/index.ts"
788
- },
789
- dependencies: {
790
- "@lunibee/types": "workspace:*"
791
- }
792
- };
793
-
794
- // packages/rest/src/index.ts
795
- var LIBRARY_VERSION = package_default.version;
796
- var LIBRARY_URL = "https://github.com/Ekretos/lunibee";
797
- var USER_AGENT = `DiscordBot (${LIBRARY_URL}, ${LIBRARY_VERSION})`;
798
- var REQUEST_DATA_KEYS = new Set([
799
- "body",
800
- "files",
801
- "query",
802
- "headers",
803
- "reason",
804
- "auth",
805
- "signal"
806
- ]);
807
- // packages/managers/src/index.ts
808
- var BULK_DELETE_MAX_AGE_MS = 14 * 24 * 60 * 60000;
809
-
810
- // packages/ws/src/close-codes.ts
811
- var GatewayCloseCodes = {
812
- UnknownError: 4000,
813
- UnknownOpcode: 4001,
814
- DecodeError: 4002,
815
- NotAuthenticated: 4003,
816
- AuthenticationFailed: 4004,
817
- AlreadyAuthenticated: 4005,
818
- InvalidSeq: 4007,
819
- RateLimited: 4008,
820
- SessionTimedOut: 4009,
821
- InvalidShard: 4010,
822
- ShardingRequired: 4011,
823
- InvalidAPIVersion: 4012,
824
- InvalidIntents: 4013,
825
- DisallowedIntents: 4014
826
- };
769
+ var bits = (value) => new PermissionSet(value).bitfield;
770
+ function computePermissions(context) {
771
+ if (context.ownerId !== undefined && context.ownerId === context.memberId)
772
+ return new PermissionSet(ALL_PERMISSIONS);
773
+ const roles = new Map(context.roles.map((role) => [role.id, role]));
774
+ let base = bits(roles.get(context.guildId)?.permissions ?? 0n);
775
+ for (const id of context.memberRoleIds)
776
+ base |= bits(roles.get(id)?.permissions ?? 0n);
777
+ if (base & Permission.administrator)
778
+ return new PermissionSet(ALL_PERMISSIONS);
779
+ const overwrites = context.overwrites ?? [];
780
+ const everyone = overwrites.find((o) => o.id === context.guildId);
781
+ if (everyone)
782
+ base = base & ~bits(everyone.deny) | bits(everyone.allow);
783
+ const memberRoles = new Set(context.memberRoleIds);
784
+ let allow = 0n;
785
+ let deny = 0n;
786
+ for (const overwrite of overwrites)
787
+ if (overwrite.type === 0 /* Role */ && overwrite.id !== context.guildId && memberRoles.has(overwrite.id)) {
788
+ allow |= bits(overwrite.allow);
789
+ deny |= bits(overwrite.deny);
790
+ }
791
+ base = base & ~deny | allow;
792
+ const member = overwrites.find((o) => o.type === 1 /* Member */ && o.id === context.memberId);
793
+ if (member)
794
+ base = base & ~bits(member.deny) | bits(member.allow);
795
+ const until = context.timedOutUntil instanceof Date ? context.timedOutUntil.getTime() : context.timedOutUntil ?? 0;
796
+ if (until > Date.now())
797
+ base &= Permission.viewChannel | Permission.readMessageHistory;
798
+ return new PermissionSet(base);
799
+ }
827
800
 
828
- // packages/ws/src/reconnect.ts
829
- var FATAL_CLOSE_CODES = [
830
- GatewayCloseCodes.AuthenticationFailed,
831
- GatewayCloseCodes.InvalidShard,
832
- GatewayCloseCodes.ShardingRequired,
833
- GatewayCloseCodes.InvalidAPIVersion,
834
- GatewayCloseCodes.InvalidIntents,
835
- GatewayCloseCodes.DisallowedIntents
836
- ];
837
- var IDENTIFY_CLOSE_CODES = [
838
- GatewayCloseCodes.InvalidSeq,
839
- GatewayCloseCodes.SessionTimedOut
840
- ];
841
801
  // packages/structures/src/resources.ts
842
802
  function toDateOrNull(value) {
843
803
  if (!value)
@@ -2243,7 +2203,7 @@ class Message extends BaseStructure {
2243
2203
  user: data.member.user ?? data.author,
2244
2204
  guild_id: data.guild_id
2245
2205
  }, context) : null;
2246
- this.channel = new Channel({ id: data.channel_id, type: 0, guild_id: data.guild_id }, context);
2206
+ this.channel = context?.cachedChannel?.(data.channel_id) ?? new Channel({ id: data.channel_id, type: 0, guild_id: data.guild_id }, context, { partial: true });
2247
2207
  }
2248
2208
  get embedsSuppressed() {
2249
2209
  return (this.flags & 4) !== 0;
@@ -2400,6 +2360,11 @@ export {
2400
2360
  NewsChannel,
2401
2361
  OnboardingPrompt,
2402
2362
  OnboardingPromptOption,
2363
+ Permission,
2364
+ PermissionFlagsBits,
2365
+ PermissionOverwriteEnum,
2366
+ PermissionSet,
2367
+ Permissions,
2403
2368
  PermissionsBitField,
2404
2369
  Role,
2405
2370
  StageChannel,
@@ -2412,9 +2377,10 @@ export {
2412
2377
  WebhookEnum,
2413
2378
  WelcomeScreenChannel,
2414
2379
  cdnURL,
2380
+ computePermissions,
2415
2381
  createChannel,
2416
2382
  createInteraction,
2417
2383
  stickerURL
2418
2384
  };
2419
2385
 
2420
- //# debugId=CCB1FE6D82188C4D64756E2164756E21
2386
+ //# debugId=E9D552024AFDACBA64756E2164756E21