@discordeno/utils 19.0.0-next.5c3bf0e → 19.0.0-next.5cccaea

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 (101) hide show
  1. package/README.md +6 -10
  2. package/dist/cjs/Collection.cjs +123 -0
  3. package/dist/cjs/base64.cjs +276 -0
  4. package/dist/cjs/bucket.cjs +96 -0
  5. package/dist/cjs/builders/embeds.cjs +292 -0
  6. package/dist/cjs/builders.cjs +27 -0
  7. package/dist/cjs/casing.cjs +75 -0
  8. package/dist/cjs/colors.cjs +456 -0
  9. package/dist/cjs/hash.cjs +37 -0
  10. package/dist/cjs/images.cjs +136 -0
  11. package/dist/cjs/index.cjs +35 -0
  12. package/dist/cjs/logger.cjs +157 -0
  13. package/dist/cjs/oauth2.cjs +26 -0
  14. package/dist/cjs/permissions.cjs +35 -0
  15. package/dist/cjs/reactions.cjs +21 -0
  16. package/dist/cjs/token.cjs +39 -0
  17. package/dist/cjs/typeguards.cjs +45 -0
  18. package/dist/cjs/urlToBase64.cjs +19 -0
  19. package/dist/cjs/utils.cjs +30 -0
  20. package/dist/esm/Collection.js +113 -0
  21. package/dist/esm/base64.js +262 -0
  22. package/dist/esm/bucket.js +81 -0
  23. package/dist/esm/builders/embeds.js +295 -0
  24. package/dist/esm/builders.js +5 -0
  25. package/dist/esm/casing.js +51 -0
  26. package/dist/esm/colors.js +467 -0
  27. package/dist/esm/hash.js +19 -0
  28. package/dist/esm/images.js +179 -0
  29. package/dist/esm/index.js +18 -0
  30. package/dist/esm/logger.js +130 -0
  31. package/dist/esm/oauth2.js +16 -0
  32. package/dist/esm/permissions.js +17 -0
  33. package/dist/esm/reactions.js +11 -0
  34. package/dist/esm/token.js +21 -0
  35. package/dist/esm/typeguards.js +18 -0
  36. package/dist/esm/urlToBase64.js +9 -0
  37. package/dist/esm/utils.js +15 -0
  38. package/dist/tsconfig.tsbuildinfo +1 -0
  39. package/dist/{Collection.d.ts → types/Collection.d.ts} +2 -2
  40. package/dist/types/Collection.d.ts.map +1 -0
  41. package/dist/types/base64.d.ts.map +1 -0
  42. package/dist/types/bucket.d.ts +51 -0
  43. package/dist/types/bucket.d.ts.map +1 -0
  44. package/dist/types/builders/embeds.d.ts +146 -0
  45. package/dist/types/builders/embeds.d.ts.map +1 -0
  46. package/dist/types/builders.d.ts +4 -0
  47. package/dist/types/builders.d.ts.map +1 -0
  48. package/dist/types/casing.d.ts +6 -0
  49. package/dist/types/casing.d.ts.map +1 -0
  50. package/dist/types/colors.d.ts +275 -0
  51. package/dist/types/colors.d.ts.map +1 -0
  52. package/dist/types/hash.d.ts.map +1 -0
  53. package/dist/types/images.d.ts +202 -0
  54. package/dist/types/images.d.ts.map +1 -0
  55. package/dist/{index.d.ts → types/index.d.ts} +7 -1
  56. package/dist/types/index.d.ts.map +1 -0
  57. package/dist/types/logger.d.ts +36 -0
  58. package/dist/types/logger.d.ts.map +1 -0
  59. package/dist/types/oauth2.d.ts +69 -0
  60. package/dist/types/oauth2.d.ts.map +1 -0
  61. package/dist/types/permissions.d.ts.map +1 -0
  62. package/dist/types/reactions.d.ts +3 -0
  63. package/dist/types/reactions.d.ts.map +1 -0
  64. package/dist/{token.d.ts → types/token.d.ts} +1 -1
  65. package/dist/types/token.d.ts.map +1 -0
  66. package/dist/types/typeguards.d.ts +7 -0
  67. package/dist/types/typeguards.d.ts.map +1 -0
  68. package/dist/types/urlToBase64.d.ts.map +1 -0
  69. package/dist/types/utils.d.ts +5 -0
  70. package/dist/types/utils.d.ts.map +1 -0
  71. package/package.json +26 -20
  72. package/dist/Collection.d.ts.map +0 -1
  73. package/dist/Collection.js +0 -2
  74. package/dist/base64.d.ts.map +0 -1
  75. package/dist/base64.js +0 -2
  76. package/dist/bucket.d.ts +0 -49
  77. package/dist/bucket.d.ts.map +0 -1
  78. package/dist/bucket.js +0 -2
  79. package/dist/casing.d.ts +0 -4
  80. package/dist/casing.d.ts.map +0 -1
  81. package/dist/casing.js +0 -2
  82. package/dist/hash.d.ts.map +0 -1
  83. package/dist/hash.js +0 -2
  84. package/dist/images.d.ts +0 -23
  85. package/dist/images.d.ts.map +0 -1
  86. package/dist/images.js +0 -2
  87. package/dist/index.d.ts.map +0 -1
  88. package/dist/index.js +0 -2
  89. package/dist/permissions.d.ts.map +0 -1
  90. package/dist/permissions.js +0 -2
  91. package/dist/token.d.ts.map +0 -1
  92. package/dist/token.js +0 -2
  93. package/dist/urlToBase64.d.ts.map +0 -1
  94. package/dist/urlToBase64.js +0 -2
  95. package/dist/utils.d.ts +0 -6
  96. package/dist/utils.d.ts.map +0 -1
  97. package/dist/utils.js +0 -2
  98. /package/dist/{base64.d.ts → types/base64.d.ts} +0 -0
  99. /package/dist/{hash.d.ts → types/hash.d.ts} +0 -0
  100. /package/dist/{permissions.d.ts → types/permissions.d.ts} +0 -0
  101. /package/dist/{urlToBase64.d.ts → types/urlToBase64.d.ts} +0 -0
@@ -0,0 +1,202 @@
1
+ import { type BigString, type GetGuildWidgetImageQuery, type ImageFormat, type ImageSize, StickerFormatTypes } from '@discordeno/types';
2
+ /** Help format an image url. */
3
+ export declare function formatImageUrl(url: string, size?: ImageSize, format?: ImageFormat): string;
4
+ /**
5
+ * Get the url for an emoji.
6
+ *
7
+ * @param emojiId The id of the emoji
8
+ * @param animated Whether or not the emoji is animated
9
+ * @returns string
10
+ */
11
+ export declare function emojiUrl(emojiId: BigString, animated?: boolean): string;
12
+ /**
13
+ * Builds a URL to a user's avatar stored in the Discord CDN.
14
+ *
15
+ * @param userId - The ID of the user to get the avatar of.
16
+ * @param discriminator - The user's discriminator. (4-digit tag after the hashtag.)
17
+ * @param options - The parameters for the building of the URL.
18
+ * @returns The link to the resource.
19
+ */
20
+ export declare function avatarUrl(userId: BigString, discriminator: string, options?: {
21
+ avatar: BigString | undefined;
22
+ size?: ImageSize;
23
+ format?: ImageFormat;
24
+ }): string;
25
+ export declare function avatarDecorationUrl(avatarDecoration: BigString): string;
26
+ /**
27
+ * Builds a URL to a user's banner stored in the Discord CDN.
28
+ *
29
+ * @param userId - The ID of the user to get the banner of.
30
+ * @param options - The parameters for the building of the URL.
31
+ * @returns The link to the resource or `undefined` if no banner has not been set.
32
+ */
33
+ export declare function bannerUrl(userId: BigString, options?: {
34
+ banner?: BigString;
35
+ size?: ImageSize;
36
+ format?: ImageFormat;
37
+ }): string | undefined;
38
+ /**
39
+ * Builds a URL to the guild banner stored in the Discord CDN.
40
+ *
41
+ * @param guildId - The ID of the guild to get the link to the banner for.
42
+ * @param options - The parameters for the building of the URL.
43
+ * @returns The link to the resource or `undefined` if no banner has been set.
44
+ */
45
+ export declare function guildBannerUrl(guildId: BigString, options: {
46
+ banner?: BigString;
47
+ size?: ImageSize;
48
+ format?: ImageFormat;
49
+ }): string | undefined;
50
+ /**
51
+ * Builds a URL to the guild icon stored in the Discord CDN.
52
+ *
53
+ * @param guildId - The ID of the guild to get the link to the banner for.
54
+ * @param imageHash - The hash identifying the event cover image.
55
+ * @param options - The parameters for the building of the URL.
56
+ * @returns The link to the resource or `undefined` if no banner has been set.
57
+ */
58
+ export declare function guildIconUrl(guildId: BigString, imageHash: BigString | undefined, options?: {
59
+ size?: ImageSize;
60
+ format?: ImageFormat;
61
+ }): string | undefined;
62
+ /**
63
+ * Builds the URL to a guild splash stored in the Discord CDN.
64
+ *
65
+ * @param guildId - The ID of the guild to get the splash of.
66
+ * @param imageHash - The hash identifying the splash image.
67
+ * @param options - The parameters for the building of the URL.
68
+ * @returns The link to the resource or `undefined` if the guild does not have a splash image set.
69
+ */
70
+ export declare function guildSplashUrl(guildId: BigString, imageHash: BigString | undefined, options?: {
71
+ size?: ImageSize;
72
+ format?: ImageFormat;
73
+ }): string | undefined;
74
+ /**
75
+ * Builds the URL to a guild discovery splash stored in the Discord CDN.
76
+ *
77
+ * @param guildId - The ID of the guild to get the splash of.
78
+ * @param imageHash - The hash identifying the discovery splash image.
79
+ * @param options - The parameters for the building of the URL.
80
+ * @returns The link to the resource or `undefined` if the guild does not have a splash image set.
81
+ */
82
+ export declare function guildDiscoverySplashUrl(guildId: BigString, imageHash: BigString | undefined, options?: {
83
+ size?: ImageSize;
84
+ format?: ImageFormat;
85
+ }): string | undefined;
86
+ /**
87
+ * Builds the URL to a guild scheduled event cover stored in the Discord CDN.
88
+ *
89
+ * @param eventId - The ID of the scheduled event to get the cover of.
90
+ * @param options - The parameters for the building of the URL.
91
+ * @returns The link to the resource or `undefined`.
92
+ */
93
+ export declare function guildScheduledEventCoverUrl(eventId: BigString, options: {
94
+ cover?: BigString;
95
+ size?: ImageSize;
96
+ format?: ImageFormat;
97
+ }): string | undefined;
98
+ /**
99
+ * Builds a URL to the guild widget image stored in the Discord CDN.
100
+ *
101
+ * @param guildId - The ID of the guild to get the link to the widget image for.
102
+ * @param options - The parameters for the building of the URL.
103
+ * @returns The link to the resource.
104
+ */
105
+ export declare function getWidgetImageUrl(guildId: BigString, options?: GetGuildWidgetImageQuery): string;
106
+ /**
107
+ * Builds a URL to a member's avatar stored in the Discord CDN.
108
+ *
109
+ * @param guildId - The ID of the guild where the member is
110
+ * @param userId - The ID of the user to get the avatar of.
111
+ * @param options - The parameters for the building of the URL.
112
+ * @returns The link to the resource or `undefined` if no banner has been set.
113
+ */
114
+ export declare function memberAvatarUrl(guildId: BigString, userId: BigString, options?: {
115
+ avatar?: BigString;
116
+ size?: ImageSize;
117
+ format?: ImageFormat;
118
+ }): string | undefined;
119
+ /**
120
+ * Builds the URL to an application icon stored in the Discord CDN.
121
+ *
122
+ * @param applicationId - The ID of the application to get the icon of.
123
+ * @param iconHash - The hash identifying the application icon.
124
+ * @param options - The parameters for the building of the URL.
125
+ * @returns The link to the resource or `undefined`
126
+ */
127
+ export declare function applicationIconUrl(applicationId: BigString, iconHash: BigString | undefined, options?: {
128
+ size?: ImageSize;
129
+ format?: ImageFormat;
130
+ }): string | undefined;
131
+ /**
132
+ * Builds the URL to an application cover stored in the Discord CDN.
133
+ *
134
+ * @param applicationId - The ID of the application to get the cover of.
135
+ * @param coverHash - The hash identifying the application cover.
136
+ * @param options - The parameters for the building of the URL.
137
+ * @returns The link to the resource or `undefined`.
138
+ */
139
+ export declare function applicationCoverUrl(applicationId: BigString, coverHash: BigString | undefined, options?: {
140
+ size?: ImageSize;
141
+ format?: ImageFormat;
142
+ }): string | undefined;
143
+ /**
144
+ * Builds the URL to an application asset stored in the Discord CDN.
145
+ *
146
+ * @param applicationId - The ID of the application to get the asset of.
147
+ * @param assetId - The id identifying the application asset.
148
+ * @param options - The parameters for the building of the URL.
149
+ * @returns The link to the resource or `undefined`.
150
+ */
151
+ export declare function applicationAssetUrl(applicationId: BigString, assetId: BigString | undefined, options?: {
152
+ size?: ImageSize;
153
+ format?: ImageFormat;
154
+ }): string | undefined;
155
+ /**
156
+ * Builds the URL to a sticker pack banner stored in the Discord CDN.
157
+ *
158
+ * @param bannerAssetId - The ID of the banner asset for the sticker pack.
159
+ * @param options - The parameters for the building of the URL.
160
+ * @returns The link to the resource or `undefined`.
161
+ */
162
+ export declare function stickerPackBannerUrl(bannerAssetId: BigString | undefined, options?: {
163
+ size?: ImageSize;
164
+ format?: ImageFormat;
165
+ }): string | undefined;
166
+ /**
167
+ * Builds the URL to a sticker stored in the Discord CDN.
168
+ *
169
+ * @param stickerId - The ID of the sticker to get the icon of
170
+ * @param options - The parameters for the building of the URL.
171
+ * @returns The link to the resource or `undefined`.
172
+ */
173
+ export declare function stickerUrl(stickerId: BigString | number, options?: {
174
+ size?: ImageSize;
175
+ format?: ImageFormat;
176
+ type?: StickerFormatTypes;
177
+ }): string | undefined;
178
+ /**
179
+ * Builds the URL to a team icon stored in the Discord CDN.
180
+ *
181
+ * @param teamId - The ID of the team to get the icon of
182
+ * @param iconHash - The hash of the team icon.
183
+ * @param options - The parameters for the building of the URL.
184
+ * @returns The link to the resource or `undefined`.
185
+ */
186
+ export declare function teamIconUrl(teamId: BigString, iconHash: BigString | undefined, options?: {
187
+ size?: ImageSize;
188
+ format?: ImageFormat;
189
+ }): string | undefined;
190
+ /**
191
+ * Builds the URL to a role icon stored in the Discord CDN.
192
+ *
193
+ * @param roleId - The ID of the role to get the icon of
194
+ * @param iconHash - The hash of the role icon.
195
+ * @param options - The parameters for the building of the URL.
196
+ * @returns The link to the resource or `undefined`.
197
+ */
198
+ export declare function roleIconUrl(roleId: BigString, iconHash: BigString | undefined, options?: {
199
+ size?: ImageSize;
200
+ format?: ImageFormat;
201
+ }): string | undefined;
202
+ //# sourceMappingURL=images.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/images.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,wBAAwB,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAGvI,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,SAAe,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAE/F;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,UAAQ,GAAG,MAAM,CAErE;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;IACR,MAAM,EAAE,SAAS,GAAG,SAAS,CAAA;IAC7B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,CAQR;AAED,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,SAAS,GAAG,MAAM,CAIvE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,MAAM,CAQhG;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAUpB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,SAAS,EACxB,QAAQ,EAAE,SAAS,GAAG,SAAS,EAC/B,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,SAAS,EACxB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,SAAS,EACxB,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,SAAS,GAAG,SAAS,EACpC,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAUpB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,SAAS,GAAG,MAAM,EAC7B,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAC1B,GACA,MAAM,GAAG,SAAS,CASpB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,SAAS,GAAG,SAAS,EAC/B,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,SAAS,GAAG,SAAS,EAC/B,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,MAAM,GAAG,SAAS,CAQpB"}
@@ -1,11 +1,17 @@
1
+ export * from './Collection.js';
1
2
  export * from './base64.js';
2
3
  export * from './bucket.js';
4
+ export * from './builders.js';
3
5
  export * from './casing.js';
4
- export * from './Collection.js';
6
+ export * from './colors.js';
5
7
  export * from './hash.js';
6
8
  export * from './images.js';
9
+ export * from './logger.js';
10
+ export * from './oauth2.js';
7
11
  export * from './permissions.js';
12
+ export * from './reactions.js';
8
13
  export * from './token.js';
14
+ export * from './typeguards.js';
9
15
  export * from './urlToBase64.js';
10
16
  export * from './utils.js';
11
17
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA"}
@@ -0,0 +1,36 @@
1
+ export declare enum LogLevels {
2
+ Debug = 0,
3
+ Info = 1,
4
+ Warn = 2,
5
+ Error = 3,
6
+ Fatal = 4
7
+ }
8
+ export declare enum LogDepth {
9
+ Minimal = 0,
10
+ Full = 1
11
+ }
12
+ export declare function createLogger({ logLevel, name, }?: {
13
+ logLevel?: LogLevels;
14
+ name?: string;
15
+ }): {
16
+ log: (level: LogLevels, ...args: any[]) => void;
17
+ setDepth: (level: LogDepth) => void;
18
+ setLevel: (level: LogLevels) => void;
19
+ debug: (...args: any[]) => void;
20
+ info: (...args: any[]) => void;
21
+ warn: (...args: any[]) => void;
22
+ error: (...args: any[]) => void;
23
+ fatal: (...args: any[]) => void;
24
+ };
25
+ export declare const logger: {
26
+ log: (level: LogLevels, ...args: any[]) => void;
27
+ setDepth: (level: LogDepth) => void;
28
+ setLevel: (level: LogLevels) => void;
29
+ debug: (...args: any[]) => void;
30
+ info: (...args: any[]) => void;
31
+ warn: (...args: any[]) => void;
32
+ error: (...args: any[]) => void;
33
+ fatal: (...args: any[]) => void;
34
+ };
35
+ export default logger;
36
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAKA,oBAAY,SAAS;IACnB,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,KAAK,IAAA;CACN;AAED,oBAAY,QAAQ;IAClB,OAAO,IAAA;IACP,IAAI,IAAA;CACL;AAmBD,wBAAgB,YAAY,CAAC,EAC3B,QAAyB,EACzB,IAAI,GACL,GAAE;IACD,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;CACT;iBAGgB,SAAS,WAAW,GAAG,EAAE;sBAkCpB,QAAQ;sBAJR,SAAS;qBAQV,GAAG,EAAE;oBAKN,GAAG,EAAE;oBAKL,GAAG,EAAE;qBAKJ,GAAG,EAAE;qBAKL,GAAG,EAAE;EAe9B;AAED,eAAO,MAAM,MAAM;iBA3EG,SAAS,WAAW,GAAG,EAAE;sBAkCpB,QAAQ;sBAJR,SAAS;qBAQV,GAAG,EAAE;oBAKN,GAAG,EAAE;oBAKL,GAAG,EAAE;qBAKJ,GAAG,EAAE;qBAKL,GAAG,EAAE;CAiB2B,CAAA;AAC1D,eAAe,MAAM,CAAA"}
@@ -0,0 +1,69 @@
1
+ import type { BigString, DiscordApplicationIntegrationType, OAuth2Scope, PermissionStrings } from '@discordeno/types';
2
+ export declare function createOAuth2Link(options: CreateOAuth2LinkOptions): string;
3
+ export interface CreateOAuth2LinkOptions {
4
+ /**
5
+ * The type of response
6
+ *
7
+ * @remarks
8
+ * Should be defined only if using either OAuth2 authorization, implicit or not, or [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization)
9
+ */
10
+ responseType?: 'code' | 'token';
11
+ /** The id of the application */
12
+ clientId: BigString;
13
+ /** The scopes for the application */
14
+ scope: OAuth2Scope[];
15
+ /**
16
+ * The optional state for security
17
+ *
18
+ * @see https://discord.com/developers/docs/topics/oauth2#state-and-security
19
+ */
20
+ state?: string;
21
+ /**
22
+ * The redirect uri for after the authentication
23
+ *
24
+ * @remarks
25
+ * Should be defined only if using either OAuth2 authorization, implicit or not, or [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization)
26
+ */
27
+ redirectUri?: string;
28
+ /**
29
+ * The type of prompt to give to the user
30
+ *
31
+ * @remarks
32
+ * If set to `none`, it will skip the authorization screen and redirect them back to your redirect URI without requesting their authorization.
33
+ * For passthrough scopes, like bot and webhook.incoming, authorization is always required.
34
+ */
35
+ prompt?: 'consent' | 'none';
36
+ /**
37
+ * The permissions of the invited bot
38
+ *
39
+ * @remarks
40
+ * Should be defined only in a [bot authorization flow](https://discord.com/developers/docs/topics/oauth2#bot-authorization-flow) or with [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization)
41
+ */
42
+ permissions?: BigString | PermissionStrings[];
43
+ /**
44
+ * Pre-fills the dropdown picker with a guild for the user
45
+ *
46
+ * @remarks
47
+ * Should be defined only in a [bot authorization flow](https://discord.com/developers/docs/topics/oauth2#bot-authorization-flow) or with [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization) or with the `webhook.incoming` scope
48
+ */
49
+ guildId?: BigString;
50
+ /**
51
+ * Disallows the user from changing the guild dropdown if set to true
52
+ *
53
+ * @remarks
54
+ * Should be defined only in a [bot authorization flow](https://discord.com/developers/docs/topics/oauth2#bot-authorization-flow), with [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization) or with the `webhook.incoming` scope
55
+ */
56
+ disableGuildSelect?: boolean;
57
+ /**
58
+ * Specifies the installation context for the authorization
59
+ *
60
+ * @remarks
61
+ * Should be defined only when {@link scope} includes {@link OAuth2Scope.ApplicationsCommands}.
62
+ *
63
+ * When set to GuildInstall (0) the application will be authorized for installation to a server, and when set to UserInstall (1) the application will be authorized for installation to a user.
64
+ *
65
+ * The application must be configured in the Developer Portal to support the provided `integrationType`.
66
+ */
67
+ integrationType?: DiscordApplicationIntegrationType;
68
+ }
69
+ //# sourceMappingURL=oauth2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2.d.ts","sourceRoot":"","sources":["../../src/oauth2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,iCAAiC,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAGrH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAezE;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,gCAAgC;IAChC,QAAQ,EAAE,SAAS,CAAA;IACnB,qCAAqC;IACrC,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IAC3B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,iBAAiB,EAAE,CAAA;IAC7C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,iCAAiC,CAAA;CACpD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG1D,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAOhF;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAOtE"}
@@ -0,0 +1,3 @@
1
+ /** Converts an reaction emoji unicode string to the discord required form of name:id */
2
+ export declare function processReactionString(reaction: string): string;
3
+ //# sourceMappingURL=reactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactions.d.ts","sourceRoot":"","sources":["../../src/reactions.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU9D"}
@@ -1,4 +1,4 @@
1
- /** Removes the Bot before the token. */
1
+ /** Removes the Bot/Bearer before the token. */
2
2
  export declare function removeTokenPrefix(token?: string, type?: 'GATEWAY' | 'REST'): string;
3
3
  /** Get the bot id from the bot token. WARNING: Discord staff has mentioned this may not be stable forever. Use at your own risk. However, note for over 5 years this has never broken. */
4
4
  export declare function getBotIdFromToken(token: string): bigint;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/token.ts"],"names":[],"mappings":"AAIA,+CAA+C;AAC/C,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,SAAS,GAAG,MAAe,GAAG,MAAM,CAY3F;AAED,0LAA0L;AAC1L,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD"}
@@ -0,0 +1,7 @@
1
+ import type { DiscordInviteCreate, DiscordInviteMetadata, GetMessagesAfter, GetMessagesAround, GetMessagesBefore, GetMessagesLimit, GetMessagesOptions } from '@discordeno/types';
2
+ export declare function isGetMessagesAfter(options: GetMessagesOptions): options is GetMessagesAfter;
3
+ export declare function isGetMessagesBefore(options: GetMessagesOptions): options is GetMessagesBefore;
4
+ export declare function isGetMessagesAround(options: GetMessagesOptions): options is GetMessagesAround;
5
+ export declare function isGetMessagesLimit(options: GetMessagesOptions): options is GetMessagesLimit;
6
+ export declare function isInviteWithMetadata(options: DiscordInviteCreate | DiscordInviteMetadata): options is DiscordInviteMetadata;
7
+ //# sourceMappingURL=typeguards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeguards.d.ts","sourceRoot":"","sources":["../../src/typeguards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,mBAAmB,CAAA;AAG1B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,IAAI,gBAAgB,CAE3F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,IAAI,iBAAiB,CAE7F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,IAAI,iBAAiB,CAE7F;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,IAAI,gBAAgB,CAE3F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,OAAO,IAAI,qBAAqB,CAE3H"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlToBase64.d.ts","sourceRoot":"","sources":["../../src/urlToBase64.ts"],"names":[],"mappings":"AAEA,uFAAuF;AACvF,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK9D"}
@@ -0,0 +1,5 @@
1
+ /** Pause the execution for a given amount of milliseconds. */
2
+ export declare function delay(ms: number): Promise<void>;
3
+ /** TS save way to check if a property exists in an object */
4
+ export declare function hasProperty<T extends {}, Y extends PropertyKey = string>(obj: T, prop: Y): obj is T & Record<Y, unknown>;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQrD;AAID,6DAA6D;AAE7D,wBAAgB,WAAW,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,WAAW,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAGxH"}
package/package.json CHANGED
@@ -1,8 +1,13 @@
1
1
  {
2
2
  "name": "@discordeno/utils",
3
- "version": "19.0.0-next.5c3bf0e",
4
- "main": "./dist/index.js",
5
- "types": "./dist/index.d.ts",
3
+ "version": "19.0.0-next.5cccaea",
4
+ "main": "./dist/esm/index.js",
5
+ "exports": {
6
+ "import": "./dist/esm/index.js",
7
+ "require": "./dist/cjs/index.cjs",
8
+ "types": "./dist/types/index.d.ts"
9
+ },
10
+ "types": "./dist/types/index.d.ts",
6
11
  "type": "module",
7
12
  "license": "Apache-2.0",
8
13
  "repository": {
@@ -10,37 +15,38 @@
10
15
  "url": "https://github.com/discordeno/discordeno.git"
11
16
  },
12
17
  "scripts": {
13
- "build": "swc --delete-dir-on-start src --out-dir dist",
14
- "build:type": "tsc --skipDefaultLibCheck --declaration --emitDeclarationOnly --declarationDir dist",
18
+ "build": "swc src --strip-leading-paths --delete-dir-on-start src --out-dir dist/esm && swc --strip-leading-paths --delete-dir-on-start src --out-dir dist/cjs -C module.type=commonjs && node ../../scripts/fixCjsExtension.js",
19
+ "build:type": "tsc --skipDefaultLibCheck --declaration --emitDeclarationOnly --declarationDir dist/types",
15
20
  "release-build": "yarn build && yarn build:type",
16
21
  "fmt": "eslint --fix \"src/**/*.ts*\"",
17
22
  "lint": "eslint \"src/**/*.ts*\"",
18
23
  "test:unit-coverage": "c8 mocha --no-warnings 'tests/**/*.spec.ts'",
19
24
  "test:unit": "c8 --r lcov mocha --no-warnings 'tests/**/*.spec.ts' && node ../../scripts/coveragePathFixing.js utils",
20
- "test:deno-unit": "swc tests --delete-dir-on-start -C jsc.minify.mangle=false --out-dir denoTestsDist && node ../../scripts/fixDenoTestExtension.js && deno test -A --import-map ../../denoImportMap.json denoTestsDist",
25
+ "test:deno-unit": "swc tests --strip-leading-paths --delete-dir-on-start -C jsc.minify.mangle=false --out-dir denoTestsDist && node ../../scripts/fixDenoTestExtension.js && deno test -A --import-map ../../denoImportMap.json denoTestsDist",
26
+ "test:bun-unit": "node ../../scripts/fixBunTestExtension.js && bun test bunTestsDist",
21
27
  "test:unit:watch": "mocha --no-warnings --watch --parallel 'tests/**/*.spec.ts'",
22
28
  "test:type": "tsc --noEmit",
23
29
  "test:test-type": "tsc --project tsconfig.test.json"
24
30
  },
25
31
  "dependencies": {
26
- "@discordeno/types": "19.0.0-next.5c3bf0e",
32
+ "@discordeno/types": "19.0.0-next.5cccaea",
27
33
  "tweetnacl": "^1.0.3"
28
34
  },
29
35
  "devDependencies": {
30
- "@swc/cli": "^0.1.57",
31
- "@swc/core": "^1.3.21",
32
- "@types/chai": "^4",
33
- "@types/mocha": "^10",
34
- "@types/node": "^18.11.15",
35
- "@types/sinon": "^10.0.13",
36
- "c8": "^7.12.0",
37
- "chai": "^4.3.7",
38
- "eslint": "^8.0.1",
36
+ "@swc/cli": "^0.3.9",
37
+ "@swc/core": "^1.4.2",
38
+ "@types/chai": "^4.3.11",
39
+ "@types/mocha": "^10.0.6",
40
+ "@types/node": "^20.11.25",
41
+ "@types/sinon": "^17.0.3",
42
+ "c8": "^9.1.0",
43
+ "chai": "^5.0.3",
44
+ "eslint": "^8.57.0",
39
45
  "eslint-config-discordeno": "*",
40
- "mocha": "^10.1.0",
41
- "sinon": "^15.0.0",
42
- "ts-node": "^10.9.1",
46
+ "mocha": "^10.3.0",
47
+ "sinon": "^17.0.1",
48
+ "ts-node": "^10.9.2",
43
49
  "tsconfig": "*",
44
- "typescript": "^4.9.3"
50
+ "typescript": "5.4.5"
45
51
  }
46
52
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../src/Collection.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export class Collection extends Map{constructor(e,t){if(super(e??[]),this.maxSize=t?.maxSize,!t?.sweeper)return;this.startSweeper(t.sweeper)}startSweeper(e){return this.sweeper?.intervalId&&clearInterval(this.sweeper.intervalId),this.sweeper=e,this.sweeper.intervalId=setInterval(()=>{this.forEach((t,r)=>{if(this.sweeper?.filter(t,r,e.bot))return this.delete(r),r})},e.interval),this.sweeper.intervalId}stopSweeper(){return clearInterval(this.sweeper?.intervalId)}changeSweeperInterval(e){null!=this.sweeper&&this.startSweeper({filter:this.sweeper.filter,interval:e})}changeSweeperFilter(e){null!=this.sweeper&&this.startSweeper({filter:e,interval:this.sweeper.interval})}set(e,t){return(void 0!==this.maxSize||0===this.maxSize)&&this.size>=this.maxSize?this:super.set(e,t)}forceSet(e,t){return super.set(e,t)}array(){return[...this.values()]}first(){return this.values().next().value}last(){return[...this.values()][this.size-1]}random(){let e=[...this.values()];return e[Math.floor(Math.random()*e.length)]}find(e){for(let t of this.keys()){let r=this.get(t);if(e(r,t))return r}}filter(e){let t=new Collection;return this.forEach((r,s)=>{e(r,s)&&t.set(s,r)}),t}map(e){let t=[];for(let r of this.keys()){let s=this.get(r);t.push(e(s,r))}return t}some(e){for(let t of this.keys()){let r=this.get(t);if(e(r,t))return!0}return!1}every(e){for(let t of this.keys()){let r=this.get(t);if(!e(r,t))return!1}return!0}reduce(e,t){let r=t;for(let s of this.keys()){let i=this.get(s);r=e(r,i,s)}return r}}
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Db2xsZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIFBsYWNlSG9sZGVyQm90IHt9XG5cbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uPEssIFY+IGV4dGVuZHMgTWFwPEssIFY+IHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBpdGVtcyBhbGxvd2VkIGluIHRoaXMgY29sbGVjdGlvbi4gVG8gZGlzYWJsZSBjYWNoZSwgc2V0IGl0IDAsIHNldCB0byB1bmRlZmluZWQgdG8gbWFrZSBpdCBpbmZpbml0ZS5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBtYXhTaXplOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgLyoqIEhhbmRsZXIgdG8gcmVtb3ZlIGl0ZW1zIGZyb20gdGhlIGNvbGxlY3Rpb24gZXZlcnkgc28gb2Z0ZW4uICovXG4gIHN3ZWVwZXI6IChDb2xsZWN0aW9uU3dlZXBlcjxLLCBWPiAmIHsgaW50ZXJ2YWxJZD86IE5vZGVKUy5UaW1lciB9KSB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0cnVjdG9yKGVudHJpZXM/OiAoUmVhZG9ubHlBcnJheTxyZWFkb25seSBbSywgVl0+IHwgbnVsbCkgfCBNYXA8SywgVj4sIG9wdGlvbnM/OiBDb2xsZWN0aW9uT3B0aW9uczxLLCBWPikge1xuICAgIHN1cGVyKGVudHJpZXMgPz8gW10pXG5cbiAgICB0aGlzLm1heFNpemUgPSBvcHRpb25zPy5tYXhTaXplXG5cbiAgICBpZiAoIW9wdGlvbnM/LnN3ZWVwZXIpIHJldHVyblxuXG4gICAgdGhpcy5zdGFydFN3ZWVwZXIob3B0aW9ucy5zd2VlcGVyKVxuICB9XG5cbiAgc3RhcnRTd2VlcGVyKG9wdGlvbnM6IENvbGxlY3Rpb25Td2VlcGVyPEssIFY+KTogTm9kZUpTLlRpbWVyIHtcbiAgICBpZiAodGhpcy5zd2VlcGVyPy5pbnRlcnZhbElkKSBjbGVhckludGVydmFsKHRoaXMuc3dlZXBlci5pbnRlcnZhbElkKVxuXG4gICAgdGhpcy5zd2VlcGVyID0gb3B0aW9uc1xuICAgIHRoaXMuc3dlZXBlci5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zd2VlcGVyPy5maWx0ZXIodmFsdWUsIGtleSwgb3B0aW9ucy5ib3QpKSByZXR1cm5cblxuICAgICAgICB0aGlzLmRlbGV0ZShrZXkpXG4gICAgICAgIHJldHVybiBrZXlcbiAgICAgIH0pXG4gICAgfSwgb3B0aW9ucy5pbnRlcnZhbClcblxuICAgIHJldHVybiB0aGlzLnN3ZWVwZXIuaW50ZXJ2YWxJZFxuICB9XG5cbiAgc3RvcFN3ZWVwZXIoKTogdm9pZCB7XG4gICAgcmV0dXJuIGNsZWFySW50ZXJ2YWwodGhpcy5zd2VlcGVyPy5pbnRlcnZhbElkKVxuICB9XG5cbiAgY2hhbmdlU3dlZXBlckludGVydmFsKG5ld0ludGVydmFsOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zd2VlcGVyID09IG51bGwpIHJldHVyblxuXG4gICAgdGhpcy5zdGFydFN3ZWVwZXIoeyBmaWx0ZXI6IHRoaXMuc3dlZXBlci5maWx0ZXIsIGludGVydmFsOiBuZXdJbnRlcnZhbCB9KVxuICB9XG5cbiAgY2hhbmdlU3dlZXBlckZpbHRlcihuZXdGaWx0ZXI6ICh2YWx1ZTogViwga2V5OiBLLCBib3Q6IFBsYWNlSG9sZGVyQm90KSA9PiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3dlZXBlciA9PSBudWxsKSByZXR1cm5cblxuICAgIHRoaXMuc3RhcnRTd2VlcGVyKHsgZmlsdGVyOiBuZXdGaWx0ZXIsIGludGVydmFsOiB0aGlzLnN3ZWVwZXIuaW50ZXJ2YWwgfSlcbiAgfVxuXG4gIC8qKiBBZGQgYW4gaXRlbSB0byB0aGUgY29sbGVjdGlvbi4gTWFrZXMgc3VyZSBub3QgdG8gZ28gYWJvdmUgdGhlIG1heFNpemUuICovXG4gIHNldChrZXk6IEssIHZhbHVlOiBWKTogdGhpcyB7XG4gICAgLy8gV2hlbiB0aGlzIGNvbGxlY3Rpb24gaXMgbWF4U2l6ZWQgbWFrZSBzdXJlIHdlIGNhbiBhZGQgZmlyc3RcbiAgICBpZiAoKHRoaXMubWF4U2l6ZSAhPT0gdW5kZWZpbmVkIHx8IHRoaXMubWF4U2l6ZSA9PT0gMCkgJiYgdGhpcy5zaXplID49IHRoaXMubWF4U2l6ZSkge1xuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIuc2V0KGtleSwgdmFsdWUpXG4gIH1cblxuICAvKiogQWRkIGFuIGl0ZW0gdG8gdGhlIGNvbGxlY3Rpb24sIG5vIG1hdHRlciB3aGF0IHRoZSBtYXhTaXplIGlzLiAqL1xuICBmb3JjZVNldChrZXk6IEssIHZhbHVlOiBWKTogdGhpcyB7XG4gICAgcmV0dXJuIHN1cGVyLnNldChrZXksIHZhbHVlKVxuICB9XG5cbiAgLyoqIENvbnZlcnQgdGhlIGNvbGxlY3Rpb24gdG8gYW4gYXJyYXkuICovXG4gIGFycmF5KCk6IFZbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnZhbHVlcygpXVxuICB9XG5cbiAgLyoqIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGlzIGNvbGxlY3Rpb24uICovXG4gIGZpcnN0KCk6IFYgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcygpLm5leHQoKS52YWx1ZVxuICB9XG5cbiAgLyoqIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgbGFzdCBlbGVtZW50IGluIHRoaXMgY29sbGVjdGlvbi4gKi9cbiAgbGFzdCgpOiBWIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gWy4uLnRoaXMudmFsdWVzKCldW3RoaXMuc2l6ZSAtIDFdXG4gIH1cblxuICAvKiogUmV0cmlldmUgdGhlIHZhbHVlIG9mIGEgcmFuZG9tIGVsZW1lbnQgaW4gdGhpcyBjb2xsZWN0aW9uLiAqL1xuICByYW5kb20oKTogViB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYXJyYXkgPSBbLi4udGhpcy52YWx1ZXMoKV1cbiAgICByZXR1cm4gYXJyYXlbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogYXJyYXkubGVuZ3RoKV1cbiAgfVxuXG4gIC8qKiBGaW5kIGEgc3BlY2lmaWMgZWxlbWVudCBpbiB0aGlzIGNvbGxlY3Rpb24uICovXG4gIGZpbmQoY2FsbGJhY2s6ICh2YWx1ZTogViwga2V5OiBLKSA9PiBib29sZWFuKTogTm9uTnVsbGFibGU8Vj4gfCB1bmRlZmluZWQge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMua2V5cygpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0KGtleSkhXG4gICAgICBpZiAoY2FsbGJhY2sodmFsdWUsIGtleSkpIHJldHVybiB2YWx1ZVxuICAgIH1cbiAgICAvLyBJZiBub3RoaW5nIG1hdGNoZWRcbiAgfVxuXG4gIC8qKiBGaW5kIGFsbCBlbGVtZW50cyBpbiB0aGlzIGNvbGxlY3Rpb24gdGhhdCBtYXRjaCB0aGUgZ2l2ZW4gcGF0dGVybi4gKi9cbiAgZmlsdGVyKGNhbGxiYWNrOiAodmFsdWU6IFYsIGtleTogSykgPT4gYm9vbGVhbik6IENvbGxlY3Rpb248SywgVj4ge1xuICAgIGNvbnN0IHJlbGV2YW50ID0gbmV3IENvbGxlY3Rpb248SywgVj4oKVxuICAgIHRoaXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgaWYgKGNhbGxiYWNrKHZhbHVlLCBrZXkpKSByZWxldmFudC5zZXQoa2V5LCB2YWx1ZSlcbiAgICB9KVxuXG4gICAgcmV0dXJuIHJlbGV2YW50XG4gIH1cblxuICAvKiogQ29udmVydHMgdGhlIGNvbGxlY3Rpb24gaW50byBhbiBhcnJheSBieSBydW5uaW5nIGEgY2FsbGJhY2sgb24gYWxsIGl0ZW1zIGluIHRoZSBjb2xsZWN0aW9uLiAqL1xuICBtYXA8VD4oY2FsbGJhY2s6ICh2YWx1ZTogViwga2V5OiBLKSA9PiBUKTogVFtdIHtcbiAgICBjb25zdCByZXN1bHRzID0gW11cbiAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmtleXMoKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChrZXkpIVxuICAgICAgcmVzdWx0cy5wdXNoKGNhbGxiYWNrKHZhbHVlLCBrZXkpKVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0c1xuICB9XG5cbiAgLyoqIENoZWNrIGlmIG9uZSBvZiB0aGUgaXRlbXMgaW4gdGhlIGNvbGxlY3Rpb24gbWF0Y2hlcyB0aGUgcGF0dGVybi4gKi9cbiAgc29tZShjYWxsYmFjazogKHZhbHVlOiBWLCBrZXk6IEspID0+IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmtleXMoKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChrZXkpIVxuICAgICAgaWYgKGNhbGxiYWNrKHZhbHVlLCBrZXkpKSByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqIENoZWNrIGlmIGFsbCBvZiB0aGUgaXRlbXMgaW4gdGhlIGNvbGxlY3Rpb24gbWF0Y2hlcyB0aGUgcGF0dGVybi4gKi9cbiAgZXZlcnkoY2FsbGJhY2s6ICh2YWx1ZTogViwga2V5OiBLKSA9PiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5rZXlzKCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoa2V5KSFcbiAgICAgIGlmICghY2FsbGJhY2sodmFsdWUsIGtleSkpIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKiogUnVucyBhIGNhbGxiYWNrIG9uIGFsbCBpdGVtcyBpbiB0aGUgY29sbGVjdGlvbiwgbWVyZ2luZyB0aGVtIGludG8gYSBzaW5nbGUgdmFsdWUuICovXG4gIHJlZHVjZTxUPihjYWxsYmFjazogKGFjY3VtdWxhdG9yOiBULCB2YWx1ZTogViwga2V5OiBLKSA9PiBULCBpbml0aWFsVmFsdWU/OiBUKTogVCB7XG4gICAgbGV0IGFjY3VtdWxhdG9yOiBUID0gaW5pdGlhbFZhbHVlIVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5rZXlzKCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoa2V5KSFcbiAgICAgIGFjY3VtdWxhdG9yID0gY2FsbGJhY2soYWNjdW11bGF0b3IsIHZhbHVlLCBrZXkpXG4gICAgfVxuXG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yXG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uT3B0aW9uczxLLCBWPiB7XG4gIC8qKiBIYW5kbGVyIHRvIGNsZWFuIG91dCB0aGUgaXRlbXMgaW4gdGhlIGNvbGxlY3Rpb24gZXZlcnkgc28gb2Z0ZW4uICovXG4gIHN3ZWVwZXI/OiBDb2xsZWN0aW9uU3dlZXBlcjxLLCBWPlxuICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIGFsbG93ZWQgaW4gdGhlIGNvbGxlY3Rpb24uICovXG4gIG1heFNpemU/OiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uU3dlZXBlcjxLLCBWPiB7XG4gIC8qKiBUaGUgZmlsdGVyIHRvIGRldGVybWluZSB3aGV0aGVyIGFuIGVsZW1lbnQgc2hvdWxkIGJlIGRlbGV0ZWQgb3Igbm90ICovXG4gIGZpbHRlcjogKHZhbHVlOiBWLCBrZXk6IEssIC4uLmFyZ3M6IGFueVtdKSA9PiBib29sZWFuXG4gIC8qKiBUaGUgaW50ZXJ2YWwgaW4gd2hpY2ggdGhlIHN3ZWVwZXIgc2hvdWxkIHJ1biAqL1xuICBpbnRlcnZhbDogbnVtYmVyXG4gIC8qKiBUaGUgYm90IG9iamVjdCBpdHNlbGYgKi9cbiAgYm90PzogUGxhY2VIb2xkZXJCb3Rcbn1cbiJdLCJuYW1lcyI6WyJDb2xsZWN0aW9uIiwiTWFwIiwiY29uc3RydWN0b3IiLCJlbnRyaWVzIiwib3B0aW9ucyIsIm1heFNpemUiLCJzd2VlcGVyIiwic3RhcnRTd2VlcGVyIiwiaW50ZXJ2YWxJZCIsImNsZWFySW50ZXJ2YWwiLCJzZXRJbnRlcnZhbCIsImZvckVhY2giLCJ2YWx1ZSIsImtleSIsImZpbHRlciIsImJvdCIsImRlbGV0ZSIsImludGVydmFsIiwic3RvcFN3ZWVwZXIiLCJjaGFuZ2VTd2VlcGVySW50ZXJ2YWwiLCJuZXdJbnRlcnZhbCIsImNoYW5nZVN3ZWVwZXJGaWx0ZXIiLCJuZXdGaWx0ZXIiLCJzZXQiLCJ1bmRlZmluZWQiLCJzaXplIiwiZm9yY2VTZXQiLCJhcnJheSIsInZhbHVlcyIsImZpcnN0IiwibmV4dCIsImxhc3QiLCJyYW5kb20iLCJNYXRoIiwiZmxvb3IiLCJsZW5ndGgiLCJmaW5kIiwiY2FsbGJhY2siLCJrZXlzIiwiZ2V0IiwicmVsZXZhbnQiLCJtYXAiLCJyZXN1bHRzIiwicHVzaCIsInNvbWUiLCJldmVyeSIsInJlZHVjZSIsImluaXRpYWxWYWx1ZSIsImFjY3VtdWxhdG9yIl0sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLE1BQU1BLG1CQUF5QkMsSUFTcENDLFlBQVlDLENBQTZELENBQUVDLENBQWlDLENBQUUsQ0FLNUcsR0FKQSxLQUFLLENBQUNELEdBQVcsRUFBRSxFQUVuQixJQUFJLENBQUNFLE9BQU8sQ0FBR0QsR0FBU0MsUUFFcEIsQ0FBQ0QsR0FBU0UsUUFBUyxNQUFNLENBRTdCLElBQUksQ0FBQ0MsWUFBWSxDQUFDSCxFQUFRRSxPQUFPLENBQ25DLENBRUFDLGFBQWFILENBQWdDLENBQWdCLENBYTNELE9BWkksSUFBSSxDQUFDRSxPQUFPLEVBQUVFLFlBQVlDLGNBQWMsSUFBSSxDQUFDSCxPQUFPLENBQUNFLFVBQVUsRUFFbkUsSUFBSSxDQUFDRixPQUFPLENBQUdGLEVBQ2YsSUFBSSxDQUFDRSxPQUFPLENBQUNFLFVBQVUsQ0FBR0UsWUFBWSxJQUFNLENBQzFDLElBQUksQ0FBQ0MsT0FBTyxDQUFDLENBQUNDLEVBQU9DLElBQVEsQ0FDM0IsR0FB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
@@ -1 +0,0 @@
1
- {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../src/base64.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAyBzD;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAuB/C"}
package/dist/base64.js DELETED
@@ -1,2 +0,0 @@
1
- export function encode(e){let t;let n="string"==typeof e?new TextEncoder().encode(e):e instanceof Uint8Array?e:new Uint8Array(e),o="",a=n.length;for(t=2;t<a;t+=3)o+=r[n[t-2]>>2]+r[(3&n[t-2])<<4|n[t-1]>>4]+r[(15&n[t-1])<<2|n[t]>>6]+r[63&n[t]];return t===a+1&&(o+=r[n[t-2]>>2]+r[(3&n[t-2])<<4]+"=="),t===a&&(o+=r[n[t-2]>>2]+r[(3&n[t-2])<<4|n[t-1]>>4]+r[(15&n[t-1])<<2]+"="),o}export function decode(r){let t;if(r.length%4!=0)throw Error("Unable to parse base64 string.");let n=r.indexOf("=");if(-1!==n&&n<r.length-2)throw Error("Unable to parse base64 string.");let o=r.endsWith("==")?2:r.endsWith("=")?1:0,a=r.length,i=new Uint8Array(3*(a/4));for(let l=0,s=0;l<a;l+=4,s+=3)t=e(r.charCodeAt(l))<<18|e(r.charCodeAt(l+1))<<12|e(r.charCodeAt(l+2))<<6|e(r.charCodeAt(l+3)),i[s]=t>>16,i[s+1]=t>>8&255,i[s+2]=255&t;return i.subarray(0,i.length-o)}function e(e){if(e>=t.length)throw Error("Unable to parse base64 string.");let r=t[e];if(255===r)throw Error("Unable to parse base64 string.");return r}let r=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],t=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlNjQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDUkVESVQ6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2VuZXBvbW55YXNjaGloLzcyYzQyM2Y3MjdkMzk1ZWVhYTA5Njk3MDU4MjM4NzI3XG4gKiBFbmNvZGVzIGEgZ2l2ZW4gVWludDhBcnJheSwgQXJyYXlCdWZmZXIgb3Igc3RyaW5nIGludG8gUkZDNDY0OCBiYXNlNjQgcmVwcmVzZW50YXRpb25cbiAqIEBwYXJhbSBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGUoZGF0YTogQXJyYXlCdWZmZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB1aW50OCA9IHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyA/IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShkYXRhKSA6IGRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5ID8gZGF0YSA6IG5ldyBVaW50OEFycmF5KGRhdGEpXG4gIGxldCByZXN1bHQgPSAnJ1xuICBsZXQgaVxuICBjb25zdCBsID0gdWludDgubGVuZ3RoXG4gIGZvciAoaSA9IDI7IGkgPCBsOyBpICs9IDMpIHtcbiAgICByZXN1bHQgKz0gYmFzZTY0YWJjW3VpbnQ4W2kgLSAyXSA+PiAyXVxuICAgIHJlc3VsdCArPSBiYXNlNjRhYmNbKCh1aW50OFtpIC0gMl0gJiAweDAzKSA8PCA0KSB8ICh1aW50OFtpIC0gMV0gPj4gNCldXG4gICAgcmVzdWx0ICs9IGJhc2U2NGFiY1soKHVpbnQ4W2kgLSAxXSAmIDB4MGYpIDw8IDIpIHwgKHVpbnQ4W2ldID4+IDYpXVxuICAgIHJlc3VsdCArPSBiYXNlNjRhYmNbdWludDhbaV0gJiAweDNmXVxuICB9XG4gIGlmIChpID09PSBsICsgMSkge1xuICAgIC8vIDEgb2N0ZXQgeWV0IHRvIHdyaXRlXG4gICAgcmVzdWx0ICs9IGJhc2U2NGFiY1t1aW50OFtpIC0gMl0gPj4gMl1cbiAgICByZXN1bHQgKz0gYmFzZTY0YWJjWyh1aW50OFtpIC0gMl0gJiAweDAzKSA8PCA0XVxuICAgIHJlc3VsdCArPSAnPT0nXG4gIH1cbiAgaWYgKGkgPT09IGwpIHtcbiAgICAvLyAyIG9jdGV0cyB5ZXQgdG8gd3JpdGVcbiAgICByZXN1bHQgKz0gYmFzZTY0YWJjW3VpbnQ4W2kgLSAyXSA+PiAyXVxuICAgIHJlc3VsdCArPSBiYXNlNjRhYmNbKCh1aW50OFtpIC0gMl0gJiAweDAzKSA8PCA0KSB8ICh1aW50OFtpIC0gMV0gPj4gNCldXG4gICAgcmVzdWx0ICs9IGJhc2U2NGFiY1sodWludDhbaSAtIDFdICYgMHgwZikgPDwgMl1cbiAgICByZXN1bHQgKz0gJz0nXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIENSRURJVDogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZW5lcG9tbnlhc2NoaWgvNzJjNDIzZjcyN2QzOTVlZWFhMDk2OTcwNTgyMzg3MjdcbiAqIERlY29kZXMgUkZDNDY0OCBiYXNlNjQgc3RyaW5nIGludG8gYW4gVWludDhBcnJheVxuICogQHBhcmFtIGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZShkYXRhOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgaWYgKGRhdGEubGVuZ3RoICUgNCAhPT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHBhcnNlIGJhc2U2NCBzdHJpbmcuJylcbiAgfVxuICBjb25zdCBpbmRleCA9IGRhdGEuaW5kZXhPZignPScpXG4gIGlmIChpbmRleCAhPT0gLTEgJiYgaW5kZXggPCBkYXRhLmxlbmd0aCAtIDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBwYXJzZSBiYXNlNjQgc3RyaW5nLicpXG4gIH1cbiAgY29uc3QgbWlzc2luZ09jdGV0cyA9IGRhdGEuZW5kc1dpdGgoJz09JykgPyAyIDogZGF0YS5lbmRzV2l0aCgnPScpID8gMSA6IDBcbiAgY29uc3QgbiA9IGRhdGEubGVuZ3RoXG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBVaW50OEFycmF5KDMgKiAobiAvIDQpKVxuICBsZXQgYnVmZmVyXG4gIGZvciAobGV0IGkgPSAwLCBqID0gMDsgaSA8IG47IGkgKz0gNCwgaiArPSAzKSB7XG4gICAgYnVmZmVyID1cbiAgICAgIChnZXRCYXNlNjRDb2RlKGRhdGEuY2hhckNvZGVBdChpKSkgPDwgMTgpIHxcbiAgICAgIChnZXRCYXNlNjRDb2RlKGRhdGEuY2hhckNvZGVBdChpICsgMSkpIDw8IDEyKSB8XG4gICAgICAoZ2V0QmFzZTY0Q29kZShkYXRhLmNoYXJDb2RlQXQoaSArIDIpKSA8PCA2KSB8XG4gICAgICBnZXRCYXNlNjRDb2RlKGRhdGEuY2hhckNvZGVBdChpICsgMykpXG4gICAgcmVzdWx0W2pdID0gYnVmZmVyID4+IDE2XG4gICAgcmVzdWx0W2ogKyAxXSA9IChidWZmZXIgPj4gOCkgJiAweGZmXG4gICAgcmVzdWx0W2ogKyAyXSA9IGJ1ZmZlciAmIDB4ZmZcbiAgfVxuICByZXR1cm4gcmVzdWx0LnN1YmFycmF5KDAsIHJlc3VsdC5sZW5ndGggLSBtaXNzaW5nT2N0ZXRzKVxufVxuXG4vKipcbiAqIENSRURJVDogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZW5lcG9tbnlhc2NoaWgvNzJjNDIzZjcyN2QzOTVlZWFhMDk2OTcwNTgyMzg3MjdcbiAqIEBwYXJhbSBjaGFyQ29kZVxuICovXG5mdW5jdGlvbiBnZXRCYXNlNjRDb2RlKGNoYXJDb2RlOiBudW1iZXIpOiBudW1iZXIge1xuICBpZiAoY2hhckNvZGUgPj0gYmFzZTY0Y29kZXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gcGFyc2UgYmFzZTY0IHN0cmluZy4nKVxuICB9XG4gIGNvbnN0IGNvZGUgPSBiYXNlNjRjb2Rlc1tjaGFyQ29kZV1cbiAgaWYgKGNvZGUgPT09IDI1NSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHBhcnNlIGJhc2U2NCBzdHJpbmcuJylcbiAgfVxuICByZXR1cm4gY29kZVxufVxuXG4vLyBDb3B5cmlnaHQgMjAxOC0yMDIxIHRoZSBEZW5vIGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIE1JVCBsaWNlbnNlLlxuY29uc3QgYmFzZTY0YWJjID0gW1xuICAnQScsXG4gICdCJyxcbiAgJ0MnLFxuICAnRCcsXG4gICdFJyxcbiAgJ0YnLFxuICAnRycsXG4gICdIJyxcbiAgJ0knLFxuICAnSicsXG4gICdLJyxcbiAgJ0wnLFxuICAnTScsXG4gICdOJyxcbiAgJ08nLFxuICAnUCcsXG4gICdRJyxcbiAgJ1InLFxuICAnUycsXG4gICdUJyxcbiAgJ1UnLFxuICAnVicsXG4gICdXJyxcbiAgJ1gnLFxuICAnWScsXG4gICdaJyxcbiAgJ2EnLFxuICAnYicsXG4gICdjJyxcbiAgJ2QnLFxuICAnZScsXG4gICdmJyxcbiAgJ2cnLFxuICAnaCcsXG4gICdpJyxcbiAgJ2onLFxuICAnaycsXG4gICdsJyxcbiAgJ20nLFxuICAnbicsXG4gICdvJyxcbiAgJ3AnLFxuICAncScsXG4gICdyJyxcbiAgJ3MnLFxuICAndCcsXG4gICd1JyxcbiAgJ3YnLFxuICAndycsXG4gICd4JyxcbiAgJ3knLFxuICAneicsXG4gICcwJyxcbiAgJzEnLFxuICAnMicsXG4gICczJyxcbiAgJzQnLFxuICAnNScsXG4gICc2JyxcbiAgJzcnLFxuICAnOCcsXG4gICc5JyxcbiAgJysnLFxuICAnLycsXG5dXG5cbi8vIENSRURJVDogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZW5lcG9tbnlhc2NoaWgvNzJjNDIzZjcyN2QzOTVlZWFhMDk2OTcwNTgyMzg3MjdcbmNvbnN0IGJhc2U2NGNvZGVzID0gW1xuICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSxcbiAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDYyLCAyNTUsIDI1NSwgMjU1LCA2MywgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNTgsIDU5LCA2MCwgNjEsIDI1NSwgMjU1LCAyNTUsXG4gIDAsIDI1NSwgMjU1LCAyNTUsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNixcbiAgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MCwgNTEsXG5dXG4iXSwibmFtZXMiOlsiZW5jb2RlIiwiZGF0YSIsImkiLCJ1aW50OCIsIlRleHRFbmNvZGVyIiwiVWludDhBcnJheSIsInJlc3VsdCIsImwiLCJsZW5ndGgiLCJiYXNlNjRhYmMiLCJkZWNvZGUiLCJidWZmZXIiLCJFcnJvciIsImluZGV4IiwiaW5kZXhPZiIsIm1pc3NpbmdPY3RldHMiLCJlbmRzV2l0aCIsIm4iLCJqIiwiZ2V0QmFzZTY0Q29kZSIsImNoYXJDb2RlQXQiLCJzdWJhcnJheSIsImNoYXJDb2RlIiwiYmFzZTY0Y29kZXMiLCJjb2RlIl0sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLFNBQVNBLE9BQU9DLENBQTBCLENBQVUsS0FHckRDLEVBRkosSUFBTUMsRUFBUSxBQUFnQixVQUFoQixPQUFPRixFQUFvQixJQUFJRyxjQUFjSixNQUFNLENBQUNDLEdBQVFBLGFBQWdCSSxXQUFhSixFQUFPLElBQUlJLFdBQVdKLEVBQUssQ0FDOUhLLEVBQVMsR0FFUEMsRUFBSUosRUFBTUssTUFBTSxDQUN0QixJQUFLTixFQUFJLEVBQUdBLEVBQUlLLEVBQUdMLEdBQUssRUFJdEJJLEdBSFVHLENBQVMsQ0FBQ04sQ0FBSyxDQUFDRCxFQUFJLEVBQUUs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LElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0QsQ0FHS2MsRUFBYyxDQUNsQixJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQzVJLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxHQUFJLElBQUssSUFBSyxJQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLElBQUssSUFDL0ksRUFBRyxJQUFLLElBQUssSUFBSyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssR0FDOUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FDakcifQ==
package/dist/bucket.d.ts DELETED
@@ -1,49 +0,0 @@
1
- import type { PickPartial } from '@discordeno/types';
2
- /** A Leaky Bucket.
3
- * Useful for rate limiting purposes.
4
- * This uses `performance.now()` instead of `Date.now()` for higher accuracy.
5
- *
6
- * NOTE: This bucket is lazy, means it only updates when a related method is called.
7
- */
8
- export interface LeakyBucket {
9
- /** How many tokens this bucket can hold. */
10
- max: number;
11
- /** Amount of tokens gained per interval.
12
- * If bigger than `max` it will be pressed to `max`.
13
- */
14
- refillAmount: number;
15
- /** Interval at which the bucket gains tokens. */
16
- refillInterval: number;
17
- /** Acquire tokens from the bucket.
18
- * Resolves when the tokens are acquired and available.
19
- * @param {boolean} [highPriority=false] Whether this acquire is should be done asap.
20
- */
21
- acquire: (amount: number, highPriority?: boolean) => Promise<void>;
22
- /** Returns the number of milliseconds until the next refill. */
23
- nextRefill: () => number;
24
- /** Current tokens in the bucket. */
25
- tokens: () => number;
26
- /** @private Internal track of when the last refill of tokens was.
27
- * DO NOT TOUCH THIS! Unless you know what you are doing ofc :P
28
- */
29
- lastRefill: number;
30
- /** @private Internal state of whether currently it is allowed to acquire tokens.
31
- * DO NOT TOUCH THIS! Unless you know what you are doing ofc :P
32
- */
33
- allowAcquire: boolean;
34
- /** @private Internal number of currently available tokens.
35
- * DO NOT TOUCH THIS! Unless you know what you are doing ofc :P
36
- */
37
- tokensState: number;
38
- /** @private Internal array of promises necessary to guarantee no race conditions.
39
- * DO NOT TOUCH THIS! Unless you know what you are doing ofc :P
40
- */
41
- waiting: Array<(_?: unknown) => void>;
42
- }
43
- export declare function createLeakyBucket({ max, refillInterval, refillAmount, tokens, waiting, ...rest }: Omit<PickPartial<LeakyBucket, 'max' | 'refillInterval' | 'refillAmount'>, 'tokens'> & {
44
- /** Current tokens in the bucket.
45
- * @default max
46
- */
47
- tokens?: number;
48
- }): LeakyBucket;
49
- //# sourceMappingURL=bucket.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bucket.d.ts","sourceRoot":"","sources":["../src/bucket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGpD;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAA;IAEtB;;;OAGG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAElE,gEAAgE;IAChE,UAAU,EAAE,MAAM,MAAM,CAAA;IAExB,oCAAoC;IACpC,MAAM,EAAE,MAAM,MAAM,CAAA;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAA;IAErB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,CAAA;CACtC;AAED,wBAAgB,iBAAiB,CAAE,EACjC,GAAG,EACH,cAAc,EACd,YAAY,EACZ,MAAM,EACN,OAAO,EACP,GAAG,IAAI,EACR,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,GAAG,gBAAgB,GAAG,cAAc,CAAC,EAAE,QAAQ,CAAC,GAAG;IACvF;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,WAAW,CAyBd"}
package/dist/bucket.js DELETED
@@ -1,2 +0,0 @@
1
- import{delay as t}from"./utils.js";export function createLeakyBucket({max:t,refillInterval:l,refillAmount:n,tokens:a,waiting:r,...o}){return{max:t,refillInterval:l,refillAmount:n>t?t:n,lastRefill:performance.now(),allowAcquire:!0,nextRefill:function(){return e(this),performance.now()-this.lastRefill+this.refillInterval},tokens:function(){return e(this)},acquire:async function(t,e){return await i(this,t,e)},tokensState:a??t,waiting:r??[],...o}}function e(t){let e=performance.now()-t.lastRefill,i=Math.floor(e/t.refillInterval);return t.tokensState=Math.min(t.tokensState+t.refillAmount*i,t.max),t.lastRefill+=t.refillInterval*i,t.tokensState}async function i(l,n,a=!1){if(!l.allowAcquire&&(await new Promise(t=>{a?l.waiting.unshift(t):l.waiting.push(t)}),!l.allowAcquire))return await i(l,n);l.allowAcquire=!1;let r=e(l);if(r<n){let o=Math.ceil((n-r)/l.refillAmount),f=l.refillInterval*o;await t(f),e(l)}let u=(n%l.refillAmount)??n;l.tokensState-=u,l.allowAcquire=!0,l.waiting.shift()?.()}
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idWNrZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQaWNrUGFydGlhbCB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICcuL3V0aWxzLmpzJ1xuXG4vKiogQSBMZWFreSBCdWNrZXQuXG4gKiBVc2VmdWwgZm9yIHJhdGUgbGltaXRpbmcgcHVycG9zZXMuXG4gKiBUaGlzIHVzZXMgYHBlcmZvcm1hbmNlLm5vdygpYCBpbnN0ZWFkIG9mIGBEYXRlLm5vdygpYCBmb3IgaGlnaGVyIGFjY3VyYWN5LlxuICpcbiAqIE5PVEU6IFRoaXMgYnVja2V0IGlzIGxhenksIG1lYW5zIGl0IG9ubHkgdXBkYXRlcyB3aGVuIGEgcmVsYXRlZCBtZXRob2QgaXMgY2FsbGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExlYWt5QnVja2V0IHtcbiAgLyoqIEhvdyBtYW55IHRva2VucyB0aGlzIGJ1Y2tldCBjYW4gaG9sZC4gKi9cbiAgbWF4OiBudW1iZXJcbiAgLyoqIEFtb3VudCBvZiB0b2tlbnMgZ2FpbmVkIHBlciBpbnRlcnZhbC5cbiAgICogSWYgYmlnZ2VyIHRoYW4gYG1heGAgaXQgd2lsbCBiZSBwcmVzc2VkIHRvIGBtYXhgLlxuICAgKi9cbiAgcmVmaWxsQW1vdW50OiBudW1iZXJcbiAgLyoqIEludGVydmFsIGF0IHdoaWNoIHRoZSBidWNrZXQgZ2FpbnMgdG9rZW5zLiAqL1xuICByZWZpbGxJbnRlcnZhbDogbnVtYmVyXG5cbiAgLyoqIEFjcXVpcmUgdG9rZW5zIGZyb20gdGhlIGJ1Y2tldC5cbiAgICogUmVzb2x2ZXMgd2hlbiB0aGUgdG9rZW5zIGFyZSBhY3F1aXJlZCBhbmQgYXZhaWxhYmxlLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtoaWdoUHJpb3JpdHk9ZmFsc2VdIFdoZXRoZXIgdGhpcyBhY3F1aXJlIGlzIHNob3VsZCBiZSBkb25lIGFzYXAuXG4gICAqL1xuICBhY3F1aXJlOiAoYW1vdW50OiBudW1iZXIsIGhpZ2hQcmlvcml0eT86IGJvb2xlYW4pID0+IFByb21pc2U8dm9pZD5cblxuICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB1bnRpbCB0aGUgbmV4dCByZWZpbGwuICovXG4gIG5leHRSZWZpbGw6ICgpID0+IG51bWJlclxuXG4gIC8qKiBDdXJyZW50IHRva2VucyBpbiB0aGUgYnVja2V0LiAqL1xuICB0b2tlbnM6ICgpID0+IG51bWJlclxuXG4gIC8qKiBAcHJpdmF0ZSBJbnRlcm5hbCB0cmFjayBvZiB3aGVuIHRoZSBsYXN0IHJlZmlsbCBvZiB0b2tlbnMgd2FzLlxuICAgKiBETyBOT1QgVE9VQ0ggVEhJUyEgVW5sZXNzIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBvZmMgOlBcbiAgICovXG4gIGxhc3RSZWZpbGw6IG51bWJlclxuXG4gIC8qKiBAcHJpdmF0ZSBJbnRlcm5hbCBzdGF0ZSBvZiB3aGV0aGVyIGN1cnJlbnRseSBpdCBpcyBhbGxvd2VkIHRvIGFjcXVpcmUgdG9rZW5zLlxuICAgKiBETyBOT1QgVE9VQ0ggVEhJUyEgVW5sZXNzIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBvZmMgOlBcbiAgICovXG4gIGFsbG93QWNxdWlyZTogYm9vbGVhblxuXG4gIC8qKiBAcHJpdmF0ZSBJbnRlcm5hbCBudW1iZXIgb2YgY3VycmVudGx5IGF2YWlsYWJsZSB0b2tlbnMuXG4gICAqIERPIE5PVCBUT1VDSCBUSElTISBVbmxlc3MgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIG9mYyA6UFxuICAgKi9cbiAgdG9rZW5zU3RhdGU6IG51bWJlclxuXG4gIC8qKiBAcHJpdmF0ZSBJbnRlcm5hbCBhcnJheSBvZiBwcm9taXNlcyBuZWNlc3NhcnkgdG8gZ3VhcmFudGVlIG5vIHJhY2UgY29uZGl0aW9ucy5cbiAgICogRE8gTk9UIFRPVUNIIFRISVMhIFVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgb2ZjIDpQXG4gICAqL1xuICB3YWl0aW5nOiBBcnJheTwoXz86IHVua25vd24pID0+IHZvaWQ+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMZWFreUJ1Y2tldCAoe1xuICBtYXgsXG4gIHJlZmlsbEludGVydmFsLFxuICByZWZpbGxBbW91bnQsXG4gIHRva2VucyxcbiAgd2FpdGluZyxcbiAgLi4ucmVzdFxufTogT21pdDxQaWNrUGFydGlhbDxMZWFreUJ1Y2tldCwgJ21heCcgfCAncmVmaWxsSW50ZXJ2YWwnIHwgJ3JlZmlsbEFtb3VudCc+LCAndG9rZW5zJz4gJiB7XG4gIC8qKiBDdXJyZW50IHRva2VucyBpbiB0aGUgYnVja2V0LlxuICAgKiBAZGVmYXVsdCBtYXhcbiAgICovXG4gIHRva2Vucz86IG51bWJlclxufSk6IExlYWt5QnVja2V0IHtcbiAgcmV0dXJuIHtcbiAgICBtYXgsXG4gICAgcmVmaWxsSW50ZXJ2YWwsXG4gICAgcmVmaWxsQW1vdW50OiByZWZpbGxBbW91bnQgPiBtYXggPyBtYXggOiByZWZpbGxBbW91bnQsXG4gICAgbGFzdFJlZmlsbDogcGVyZm9ybWFuY2Uubm93KCksXG4gICAgYWxsb3dBY3F1aXJlOiB0cnVlLFxuXG4gICAgbmV4dFJlZmlsbDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIG5leHRSZWZpbGwodGhpcylcbiAgICB9LFxuXG4gICAgdG9rZW5zOiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdXBkYXRlVG9rZW5zKHRoaXMpXG4gICAgfSxcblxuICAgIGFjcXVpcmU6IGFzeW5jIGZ1bmN0aW9uIChhbW91bnQsIGhpZ2hQcmlvcml0eSkge1xuICAgICAgcmV0dXJuIGF3YWl0IGFjcXVpcmUodGhpcywgYW1vdW50LCBoaWdoUHJpb3JpdHkpXG4gICAgfSxcblxuICAgIHRva2Vuc1N0YXRlOiB0b2tlbnMgPz8gbWF4LFxuICAgIHdhaXRpbmc6IHdhaXRpbmcgPz8gW10sXG5cbiAgICAuLi5yZXN0XG4gIH1cbn1cblxuLyoqIFVwZGF0ZSB0aGUgdG9rZW5zIG9mIHRoYXQgYnVja2V0LlxuICogQHJldHVybnMge251bWJlcn0gVGhlIGFtb3VudCBvZiBjdXJyZW50IGF2YWlsYWJsZSB0b2tlbnMuXG4gKi9cbmZ1bmN0aW9uIHVwZGF0ZVRva2VucyAoYnVja2V0OiBMZWFreUJ1Y2tldCk6IG51bWJlciB7XG4gIGNvbnN0IHRpbWVQYXNzZWQgPSBwZXJmb3JtYW5jZS5ub3coKSAtIGJ1Y2tldC5sYXN0UmVmaWxsXG4gIGNvbnN0IG1pc3NlZFJlZmlsbHMgPSBNYXRoLmZsb29yKHRpbWVQYXNzZWQgLyBidWNrZXQucmVmaWxsSW50ZXJ2YWwpXG5cbiAgLy8gVGhlIHJlZmlsbCBzaGFsbCBub3QgZXhjZWVkIHRoZSBtYXggYW1vdW50IG9mIHRva2Vucy5cbiAgYnVja2V0LnRva2Vuc1N0YXRlID0gTWF0aC5taW4oYnVja2V0LnRva2Vuc1N0YXRlICsgYnVja2V0LnJlZmlsbEFtb3VudCAqIG1pc3NlZFJlZmlsbHMsIGJ1Y2tldC5tYXgpXG4gIGJ1Y2tldC5sYXN0UmVmaWxsICs9IGJ1Y2tldC5yZWZpbGxJbnRlcnZhbCAqIG1pc3NlZFJlZmlsbHNcblxuICByZXR1cm4gYnVja2V0LnRva2Vuc1N0YXRlXG59XG5cbmZ1bmN0aW9uIG5leHRSZWZpbGwgKGJ1Y2tldDogTGVha3lCdWNrZXQpOiBudW1iZXIge1xuICAvLyBTaW5jZSB0aGlzIGJ1Y2tldCBpcyBsYXp5IHVwZGF0ZSB0aGUgdG9rZW5zIGJlZm9yZSBjYWxjdWxhdGluZyB0aGUgbmV4dCByZWZpbGwuXG4gIHVwZGF0ZVRva2VucyhidWNrZXQpXG5cbiAgcmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpIC0gYnVja2V0Lmxhc3RSZWZpbGwgKyBidWNrZXQucmVmaWxsSW50ZXJ2YWxcbn1cblxuYXN5bmMgZnVuY3Rpb24gYWNxdWlyZSAoYnVja2V0OiBMZWFreUJ1Y2tldCwgYW1vdW50OiBudW1iZXIsIGhpZ2hQcmlvcml0eSA9IGZhbHNlKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIFRvIHByZXZlbnQgdGhlIHJhY2UgY29uZGl0aW9uIG9mIDIgYWNxdWlyZXMgaGFwcGVuaW5nIGF0IG9uY2UsXG4gIC8vIGNoZWNrIHdoZXRoZXIgaXRzIGN1cnJlbnRseSBhbGxvd2VkIHRvIGFjcXVpcmUuXG4gIGlmICghYnVja2V0LmFsbG93QWNxdWlyZSkge1xuICAgIC8vIGNyZWF0ZSwgcHVzaCwgYW5kIHdhaXQgdW50aWwgdGhlIGN1cnJlbnQgcnVubmluZyBhY3F1aXJpbmcgaXMgZmluaXNoZWQuXG4gICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmIChoaWdoUHJpb3JpdHkpIHtcbiAgICAgICAgYnVja2V0LndhaXRpbmcudW5zaGlmdChyZXNvbHZlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnVja2V0LndhaXRpbmcucHVzaChyZXNvbHZlKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvLyBTb21laG93IGFub3RoZXIgYWNxdWlyZSBoYXMgc3RhcnRlZCxcbiAgICAvLyBzbyBuZWVkIHRvIHdhaXQgYWdhaW4uXG4gICAgaWYgKCFidWNrZXQuYWxsb3dBY3F1aXJlKSB7XG4gICAgICByZXR1cm4gYXdhaXQgYWNxdWlyZShidWNrZXQsIGFtb3VudClcbiAgICB9XG4gIH1cblxuICBidWNrZXQuYWxsb3dBY3F1aXJlID0gZmFsc2VcbiAgLy8gU2luY2UgdGhlIGJ1Y2tldCBpcyBsYXp5IHVwZGF0ZSB0aGUgdG9rZW5zIG5vdyxcbiAgLy8gYW5kIGFsc28gZ2V0IHRoZSBjdXJyZW50IGFtb3VudCBvZiBhdmFpbGFibGUgdG9rZW5zXG4gIGNvbnN0IGN1cnJlbnRUb2tlbnMgPSB1cGRhdGVUb2tlbnMoYnVja2V0KVxuXG4gIC8vIEl0J3MgcG9zc2libGUgdGhhdCBtb3JlIHRoYW4gYXZhaWxhYmxlIHRva2VucyBoYXZlIGJlZW4gYWNxdWlyZWQsXG4gIC8vIHNvIGNhbGN1bGF0ZSB0aGUgYW1vdW50IG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0IHVudGlsIHRoaXMgYWNxdWlyZSBpcyBnb29kIHRvIGdvLlxuICBpZiAoY3VycmVudFRva2VucyA8IGFtb3VudCkge1xuICAgIGNvbnN0IHRva2Vuc05lZWRlZCA9IGFtb3VudCAtIGN1cnJlbnRUb2tlbnNcbiAgICBjb25zdCByZWZpbGxzTmVlZGVkID0gTWF0aC5jZWlsKHRva2Vuc05lZWRlZCAvIGJ1Y2tldC5yZWZpbGxBbW91bnQpXG5cbiAgICBjb25zdCB3YWl0VGltZSA9IGJ1Y2tldC5yZWZpbGxJbnRlcnZhbCAqIHJlZmlsbHNOZWVkZWRcbiAgICBhd2FpdCBkZWxheSh3YWl0VGltZSlcblxuICAgIC8vIFVwZGF0ZSB0aGUgdG9rZW5zIGFnYWluIHRvIGVuc3VyZSBub3RoaW5nIGhhcyBiZWVuIG1pc3NlZC5cbiAgICB1cGRhdGVUb2tlbnMoYnVja2V0KVxuICB9XG5cbiAgLy8gSW4gb3JkZXIgdG8gbm90IHN1YnRyYWN0IHRvbyBtdWNoIGZyb20gdGhlIHRva2VucyxcbiAgLy8gY2FsY3VsYXRlIHdoYXQgaXMgYWN0dWFsbHkgbmVlZGVkIHRvIHN1YnRyYWN0LlxuICBjb25zdCB0b1N1YnRyYWN0ID0gYW1vdW50ICUgYnVja2V0LnJlZmlsbEFtb3VudCA/PyBhbW91bnRcbiAgYnVja2V0LnRva2Vuc1N0YXRlIC09IHRvU3VidHJhY3RcblxuICAvLyBBbGxvdyB0aGUgbmV4dCBhY3F1aXJlIHRvIGhhcHBlbi5cbiAgYnVja2V0LmFsbG93QWNxdWlyZSA9IHRydWVcbiAgLy8gSWYgdGhlcmUgaXMgYW4gYWNxdWlyZSB3YWl0aW5nLCBsZXQgaXQgY29udGludWUuXG4gIGJ1Y2tldC53YWl0aW5nLnNoaWZ0KCk/LigpXG59XG4iXSwibmFtZXMiOlsiZGVsYXkiLCJjcmVhdGVMZWFreUJ1Y2tldCIsIm1heCIsInJlZmlsbEludGVydmFsIiwicmVmaWxsQW1vdW50IiwidG9rZW5zIiwid2FpdGluZyIsInJlc3QiLCJsYXN0UmVmaWxsIiwicGVyZm9ybWFuY2UiLCJub3ciLCJhbGxvd0FjcXVpcmUiLCJuZXh0UmVmaWxsIiwidXBkYXRlVG9rZW5zIiwiYnVja2V0IiwiYWNxdWlyZSIsImFtb3VudCIsImhpZ2hQcmlvcml0eSIsInRva2Vuc1N0YXRlIiwidGltZVBhc3NlZCIsIm1pc3NlZFJlZmlsbHMiLCJNYXRoIiwiZmxvb3IiLCJtaW4iLCJQcm9taXNlIiwicmVzb2x2ZSIsInVuc2hpZnQiLCJwdXNoIiwiY3VycmVudFRva2VucyIsInJlZmlsbHNOZWVkZWQiLCJjZWlsIiwidG9rZW5zTmVlZGVkIiwid2FpdFRpbWUiLCJ0b1N1YnRyYWN0Iiwic2hpZnQiXSwibWFwcGluZ3MiOiJBQUNBLE9BQVNBLFNBQUFBLENBQUssS0FBUSxZQUFZLEFBbURsQyxRQUFPLFNBQVNDLGtCQUFtQixDQUNqQ0MsSUFBQUEsQ0FBRyxDQUNIQyxlQUFBQSxDQUFjLENBQ2RDLGFBQUFBLENBQVksQ0FDWkMsT0FBQUEsQ0FBTSxDQUNOQyxRQUFBQSxDQUFPLENBQ1AsR0FBR0MsRUFNSixDQUFlLENBQ2QsTUFBTyxDQUNMTCxJQUFBQSxFQUNBQyxlQUFBQSxFQUNBQyxhQUFjQSxFQUFlRixFQUFNQSxFQUFNRSxDQUFZLENBQ3JESSxXQUFZQyxZQUFZQyxHQUFHLEdBQzNCQyxhQUFjLENBQUEsRUFFZEMsV0FBWSxVQUFZLENBQ3RCLE9Ba0NKQyxFQWxDc0IsSUFBSSxFQW9DbkJKLFlBQVlDLEdBQUcsR0FBS0ksQUFwQ0wsSUFBSSxDQW9DUU4sVUFBVSxDQUFHTSxBQXBDekIsSUFBSSxDQW9DNEJYLGNBQWMsQUFuQ2xFLEVBRUFFLE9BQVEsVUFBWSxDQUNsQixPQUFPUSxFQUFhLElBQUksQ0FDMUIsRUFFQUUsUUFBUyxlQUFnQkMsQ0FBTSxDQUFFQyxDQUFZLENBQUUsQ0FDN0MsT0FBTyxNQUFNRixFQUFRLElBQUksQ0FBRUMsRUFBUUMsRUFDckMsRUFFQUMsWUFBYWIsR0FBVUgsRUFDdkJJLFFBQVNBLEdBQVcsRUFBRSxDQUV0QixHQUFHQyxDQUFJLEFBQ1QsQ0FDRixDQUFDLEFBS0QsU0FBU00sRUFBY0MsQ0FBbUIsQ0FBVSxDQUNsRCxJQUFNSyxFQUFhVixZQUFZQyxHQUFHLEdBQUtJLEVBQU9OLFVBQVUsQ0FDbERZLEVBQWdCQyxLQUFLQyxLQUFLLENBQUNILEVBQWFMLEVBQU9YLGNBQWMsRUFNbkUsT0FIQVcsRUFBT0ksV0FBVyxDQUFHRyxLQUFLRSxHQUFHLENBQUNULEVBQU9JLFdBQVcsQ0FBR0osRUFBT1YsWUFBWSxDQUFHZ0IsRUFBZU4sRUFBT1osR0FBRyxFQUNsR1ksRUFBT04sVUFBVSxFQUFJTSxFQUFPWCxjQUFjLENBQUdpQixFQUV0Q04sRUFBT0ksV0FBVyxBQUMzQixDQVNBLGVBQWVILEVBQVNELENBQW1CLENBQUVFLENBQWMsQ0FBRUMsRUFBZSxDQUFBLENBQUssQ0FBaUIsQ0FHaEcsR0FBSSxDQUFDSCxFQUFPSCxZQUFZLEdBRXRCLE1BQU0sSUFBSWEsUUFBUSxBQUFDQyxHQUFZLENBQ3pCUixFQUNGSCxFQUFPUixPQUFPLENBQUNvQixPQUFPLENBQUNELEdBRXZCWCxFQUFPUixPQUFPLENBQUNxQixJQUFJLENBQUNGLEVBRXhCLEdBSUksQ0FBQ1gsRUFBT0gsWUFBWSxFQUN0QixPQUFPLE1BQU1JLEVBQVFELEVBQVFFLEVBRWhDLEFBRURGLENBQUFBLEVBQU9ILFlBQVksQ0FBRyxDQUFBLEVBR3RCLElBQU1pQixFQUFnQmYsRUFBYUMsR0FJbkMsR0FBSWMsRUFBZ0JaLEVBQVEsQ0FFMUIsSUFBTWEsRUFBZ0JSLEtBQUtTLElBQUksQ0FBQ0MsQUFEWGYsQ0FBQUEsRUFBU1ksQ0FBWSxFQUNLZCxFQUFPVixZQUFZLEVBRTVENEIsRUFBV2xCLEVBQU9YLGNBQWMsQ0FBRzBCLENBQ3pDLE9BQU03QixFQUFNZ0MsR0FHWm5CLEVBQWFDLEVBQ2YsQ0FBQyxBQUlELElBQU1tQixFQUFhakIsQ0FBQUEsRUFBU0YsRUFBT1YsWUFBWSxBQUFELEdBQUtZLENBQ25ERixDQUFBQSxFQUFPSSxXQUFXLEVBQUllLEVBR3RCbkIsRUFBT0gsWUFBWSxDQUFHLENBQUEsRUFFdEJHLEVBQU9SLE9BQU8sQ0FBQzRCLEtBQUssTUFDdEIifQ==