dfx 0.45.5 → 0.45.6

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 (144) hide show
  1. package/package.json +2 -2
  2. package/src/package.json +2 -2
  3. package/tsconfig.json +2 -15
  4. package/Cache/driver.d.ts +0 -22
  5. package/Cache/driver.js +0 -3
  6. package/Cache/driver.js.map +0 -1
  7. package/Cache/memory.d.ts +0 -3
  8. package/Cache/memory.js +0 -48
  9. package/Cache/memory.js.map +0 -1
  10. package/Cache/memoryTTL.d.ts +0 -20
  11. package/Cache/memoryTTL.js +0 -121
  12. package/Cache/memoryTTL.js.map +0 -1
  13. package/Cache/prelude.d.ts +0 -56
  14. package/Cache/prelude.js +0 -108
  15. package/Cache/prelude.js.map +0 -1
  16. package/Cache.d.ts +0 -75
  17. package/Cache.js +0 -62
  18. package/Cache.js.map +0 -1
  19. package/DiscordConfig.d.ts +0 -28
  20. package/DiscordConfig.js +0 -29
  21. package/DiscordConfig.js.map +0 -1
  22. package/DiscordGateway/DiscordWS.d.ts +0 -31
  23. package/DiscordGateway/DiscordWS.js +0 -31
  24. package/DiscordGateway/DiscordWS.js.map +0 -1
  25. package/DiscordGateway/Shard/heartbeats.d.ts +0 -3
  26. package/DiscordGateway/Shard/heartbeats.js +0 -17
  27. package/DiscordGateway/Shard/heartbeats.js.map +0 -1
  28. package/DiscordGateway/Shard/identify.d.ts +0 -12
  29. package/DiscordGateway/Shard/identify.js +0 -26
  30. package/DiscordGateway/Shard/identify.js.map +0 -1
  31. package/DiscordGateway/Shard/invalidSession.d.ts +0 -3
  32. package/DiscordGateway/Shard/invalidSession.js +0 -6
  33. package/DiscordGateway/Shard/invalidSession.js.map +0 -1
  34. package/DiscordGateway/Shard/sendEvents.d.ts +0 -7
  35. package/DiscordGateway/Shard/sendEvents.js +0 -25
  36. package/DiscordGateway/Shard/sendEvents.js.map +0 -1
  37. package/DiscordGateway/Shard/utils.d.ts +0 -3
  38. package/DiscordGateway/Shard/utils.js +0 -9
  39. package/DiscordGateway/Shard/utils.js.map +0 -1
  40. package/DiscordGateway/Shard.d.ts +0 -16
  41. package/DiscordGateway/Shard.js +0 -85
  42. package/DiscordGateway/Shard.js.map +0 -1
  43. package/DiscordGateway/ShardStore.d.ts +0 -12
  44. package/DiscordGateway/ShardStore.js +0 -22
  45. package/DiscordGateway/ShardStore.js.map +0 -1
  46. package/DiscordGateway/Sharder.d.ts +0 -15
  47. package/DiscordGateway/Sharder.js +0 -51
  48. package/DiscordGateway/Sharder.js.map +0 -1
  49. package/DiscordGateway/WS.d.ts +0 -31
  50. package/DiscordGateway/WS.js +0 -77
  51. package/DiscordGateway/WS.js.map +0 -1
  52. package/DiscordGateway.d.ts +0 -12
  53. package/DiscordGateway.js +0 -29
  54. package/DiscordGateway.js.map +0 -1
  55. package/DiscordREST/types.d.ts +0 -7
  56. package/DiscordREST/types.js +0 -2
  57. package/DiscordREST/types.js.map +0 -1
  58. package/DiscordREST/utils.d.ts +0 -10
  59. package/DiscordREST/utils.js +0 -21
  60. package/DiscordREST/utils.js.map +0 -1
  61. package/DiscordREST.d.ts +0 -16
  62. package/DiscordREST.js +0 -123
  63. package/DiscordREST.js.map +0 -1
  64. package/Helpers/flags.d.ts +0 -27
  65. package/Helpers/flags.js +0 -36
  66. package/Helpers/flags.js.map +0 -1
  67. package/Helpers/intents.d.ts +0 -24
  68. package/Helpers/intents.js +0 -29
  69. package/Helpers/intents.js.map +0 -1
  70. package/Helpers/interactions.d.ts +0 -96
  71. package/Helpers/interactions.js +0 -97
  72. package/Helpers/interactions.js.map +0 -1
  73. package/Helpers/members.d.ts +0 -9
  74. package/Helpers/members.js +0 -10
  75. package/Helpers/members.js.map +0 -1
  76. package/Helpers/permissions.d.ts +0 -40
  77. package/Helpers/permissions.js +0 -83
  78. package/Helpers/permissions.js.map +0 -1
  79. package/Helpers/ui.d.ts +0 -47
  80. package/Helpers/ui.js +0 -66
  81. package/Helpers/ui.js.map +0 -1
  82. package/Interactions/builder.d.ts +0 -48
  83. package/Interactions/builder.js +0 -68
  84. package/Interactions/builder.js.map +0 -1
  85. package/Interactions/context.d.ts +0 -58
  86. package/Interactions/context.js +0 -61
  87. package/Interactions/context.js.map +0 -1
  88. package/Interactions/definitions.d.ts +0 -126
  89. package/Interactions/definitions.js +0 -53
  90. package/Interactions/definitions.js.map +0 -1
  91. package/Interactions/gateway.d.ts +0 -20
  92. package/Interactions/gateway.js +0 -39
  93. package/Interactions/gateway.js.map +0 -1
  94. package/Interactions/handlers.d.ts +0 -10
  95. package/Interactions/handlers.js +0 -45
  96. package/Interactions/handlers.js.map +0 -1
  97. package/Interactions/index.d.ts +0 -10
  98. package/Interactions/index.js +0 -12
  99. package/Interactions/index.js.map +0 -1
  100. package/Interactions/utils.d.ts +0 -78
  101. package/Interactions/utils.js +0 -74
  102. package/Interactions/utils.js.map +0 -1
  103. package/Interactions/webhook.d.ts +0 -45
  104. package/Interactions/webhook.js +0 -56
  105. package/Interactions/webhook.js.map +0 -1
  106. package/Log.d.ts +0 -10
  107. package/Log.js +0 -17
  108. package/Log.js.map +0 -1
  109. package/RateLimit/memory.d.ts +0 -2
  110. package/RateLimit/memory.js +0 -35
  111. package/RateLimit/memory.js.map +0 -1
  112. package/RateLimit/utils.d.ts +0 -2
  113. package/RateLimit/utils.js +0 -18
  114. package/RateLimit/utils.js.map +0 -1
  115. package/RateLimit.d.ts +0 -25
  116. package/RateLimit.js +0 -25
  117. package/RateLimit.js.map +0 -1
  118. package/_common.d.ts +0 -36
  119. package/_common.js +0 -8
  120. package/_common.js.map +0 -1
  121. package/gateway.d.ts +0 -13
  122. package/gateway.js +0 -25
  123. package/gateway.js.map +0 -1
  124. package/global.d.ts +0 -17
  125. package/global.js +0 -2
  126. package/global.js.map +0 -1
  127. package/index.d.ts +0 -13
  128. package/index.js +0 -14
  129. package/index.js.map +0 -1
  130. package/types.d.ts +0 -4449
  131. package/types.js +0 -1204
  132. package/types.js.map +0 -1
  133. package/utils/effect.d.ts +0 -1
  134. package/utils/effect.js +0 -2
  135. package/utils/effect.js.map +0 -1
  136. package/utils/hub.d.ts +0 -11
  137. package/utils/hub.js +0 -23
  138. package/utils/hub.js.map +0 -1
  139. package/utils/tsplus.d.ts +0 -12
  140. package/utils/tsplus.js +0 -2
  141. package/utils/tsplus.js.map +0 -1
  142. package/webhooks.d.ts +0 -9
  143. package/webhooks.js +0 -22
  144. package/webhooks.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dfx",
3
- "version": "0.45.5",
3
+ "version": "0.45.6",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -48,5 +48,5 @@
48
48
  "ws": "^8.13.0"
49
49
  },
50
50
  "sideEffects": false,
51
- "gitHead": "bf1e0d84f67cfc5cd65c9c61c554b17e5552ba32"
51
+ "gitHead": "7c4a5c9a58c36230f17db2d80a789ad2cf68ee6c"
52
52
  }
package/src/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dfx",
3
- "version": "0.45.5",
3
+ "version": "0.45.6",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -48,5 +48,5 @@
48
48
  "ws": "^8.13.0"
49
49
  },
50
50
  "sideEffects": false,
51
- "gitHead": "bf1e0d84f67cfc5cd65c9c61c554b17e5552ba32"
51
+ "gitHead": "7c4a5c9a58c36230f17db2d80a789ad2cf68ee6c"
52
52
  }
package/tsconfig.json CHANGED
@@ -1,22 +1,9 @@
1
1
  {
2
+ "extends": "../tsconfig.json",
2
3
  "compilerOptions": {
3
4
  "baseUrl": ".",
4
- "rootDir": "src",
5
5
  "outDir": ".",
6
- "resolveJsonModule": true,
7
- "skipLibCheck": true,
8
- "moduleResolution": "NodeNext",
9
- "module": "ESNext",
10
- "lib": ["ESNext", "DOM"],
11
- "sourceMap": true,
12
- "declaration": true,
13
- "strict": true,
14
- "target": "ES2022",
15
- "tsPlusConfig": "./tsplus.config.json",
16
- "paths": {
17
- "dfx": ["./src/index.js"],
18
- "dfx/*": ["./src/*.js"]
19
- }
6
+ "rootDir": "./src"
20
7
  },
21
8
  "include": ["src/**/*"],
22
9
  "exclude": []
package/Cache/driver.d.ts DELETED
@@ -1,22 +0,0 @@
1
- import { Effect, Maybe } from "dfx/_common";
2
- export interface ParentCacheDriver<E, T> {
3
- readonly size: Effect<never, E, number>;
4
- sizeForParent: (parentId: string) => Effect<never, E, number>;
5
- get: (parentId: string, resourceId: string) => Effect<never, E, Maybe<T>>;
6
- getForParent: (parentId: string) => Effect<never, E, Maybe<ReadonlyMap<string, T>>>;
7
- set: (parentId: string, resourceId: string, resource: T) => Effect<never, E, void>;
8
- delete: (parentId: string, resourceId: string) => Effect<never, E, void>;
9
- parentDelete: (parentId: string) => Effect<never, E, void>;
10
- refreshTTL: (parentId: string, resourceId: string) => Effect<never, E, void>;
11
- readonly run: Effect<never, E, never>;
12
- }
13
- export declare const createParentDriver: <E, T>(driver: ParentCacheDriver<E, T>) => ParentCacheDriver<E, T>;
14
- export interface CacheDriver<E, T> {
15
- readonly size: Effect<never, E, number>;
16
- get: (resourceId: string) => Effect<never, E, Maybe<T>>;
17
- set: (resourceId: string, resource: T) => Effect<never, E, void>;
18
- delete: (resourceId: string) => Effect<never, E, void>;
19
- refreshTTL: (resourceId: string) => Effect<never, E, void>;
20
- readonly run: Effect<never, E, never>;
21
- }
22
- export declare const createDriver: <E, T>(driver: CacheDriver<E, T>) => CacheDriver<E, T>;
package/Cache/driver.js DELETED
@@ -1,3 +0,0 @@
1
- export const createParentDriver = (driver) => driver;
2
- export const createDriver = (driver) => driver;
3
- //# sourceMappingURL=driver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../src/Cache/driver.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAO,MAA+B,EAAE,EAAE,CAC1E,MAAM,CAAA;AAWR,MAAM,CAAC,MAAM,YAAY,GAAG,CAAO,MAAyB,EAAE,EAAE,CAAC,MAAM,CAAA"}
package/Cache/memory.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { Maybe } from "dfx/_common";
2
- export declare const createWithParent: <T>() => import("@effect/io/Effect").Effect<never, never, import("./driver.js").ParentCacheDriver<never, T>>;
3
- export declare const create: <T>() => import("@effect/io/Effect").Effect<never, never, import("./driver.js").CacheDriver<never, T>>;
package/Cache/memory.js DELETED
@@ -1,48 +0,0 @@
1
- import * as tsplus_module_1 from "@effect/io/Effect";
2
- import * as tsplus_module_2 from "@effect/data/Option";
3
- import { createDriver, createParentDriver } from "./driver.js";
4
- export const createWithParent = () => tsplus_module_1.sync(() => {
5
- const map = new Map();
6
- return createParentDriver({
7
- size: tsplus_module_1.sync(() => {
8
- let count = 0;
9
- for (const a of map.values()) {
10
- count += a.size;
11
- }
12
- return count;
13
- }),
14
- sizeForParent: parentId => tsplus_module_1.sync(() => map.get(parentId)?.size ?? 0),
15
- get: (parentId, resourceId) => tsplus_module_1.sync(() => tsplus_module_2.fromNullable(map.get(parentId)?.get(resourceId))),
16
- getForParent: parentId => tsplus_module_1.sync(() => tsplus_module_2.fromNullable(map.get(parentId))),
17
- set: (parentId, resourceId, resource) => tsplus_module_1.sync(() => {
18
- if (!map.has(parentId)) {
19
- map.set(parentId, new Map());
20
- }
21
- map.get(parentId).set(resourceId, resource);
22
- }),
23
- delete: (parentId, resourceId) => tsplus_module_1.sync(() => {
24
- map.get(parentId)?.delete(resourceId);
25
- }),
26
- parentDelete: parentId => tsplus_module_1.sync(() => {
27
- map.delete(parentId);
28
- }),
29
- refreshTTL: () => tsplus_module_1.unit(),
30
- run: tsplus_module_1.never(),
31
- });
32
- });
33
- export const create = () => tsplus_module_1.sync(() => {
34
- const map = new Map();
35
- return createDriver({
36
- size: tsplus_module_1.sync(() => map.size),
37
- get: resourceId => tsplus_module_1.sync(() => tsplus_module_2.fromNullable(map.get(resourceId))),
38
- set: (resourceId, resource) => tsplus_module_1.sync(() => {
39
- map.set(resourceId, resource);
40
- }),
41
- delete: resourceId => tsplus_module_1.sync(() => {
42
- map.delete(resourceId);
43
- }),
44
- refreshTTL: () => tsplus_module_1.unit(),
45
- run: tsplus_module_1.never(),
46
- });
47
- });
48
- //# sourceMappingURL=memory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/Cache/memory.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAE9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAM,EAAE,CACtC,qBAAY,GAAG,EAAE;IACf,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0B,CAAA;IAE7C,OAAO,kBAAkB,CAAC;QACxB,IAAI,EAAE,qBAAY,GAAG,EAAE;YACrB,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;gBAC5B,KAAK,IAAI,CAAC,CAAC,IAAI,CAAA;aAChB;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC;QAEF,aAAa,EAAE,QAAQ,CAAC,EAAE,CACxB,qBAAY,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;QAEjD,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,CAC5B,qBACE,GAAa,EAAE,CACb,6BAAmB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CACzD;QAEH,YAAY,EAAE,QAAQ,CAAC,EAAE,CACvB,qBAAY,GAAG,EAAE,CAAC,6BAAmB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE1D,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CACtC,qBAAY,GAAG,EAAE;YACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACtB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;aAC7B;YACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC9C,CAAC,CAAC;QAEJ,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,CAC/B,qBAAY,GAAG,EAAE;YACf,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QACvC,CAAC,CAAC;QAEJ,YAAY,EAAE,QAAQ,CAAC,EAAE,CACvB,qBAAY,GAAG,EAAE;YACf,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACtB,CAAC,CAAC;QAEJ,UAAU,EAAE,GAAG,EAAE,CAAC,sBAAa;QAE/B,GAAG,EAAE,uBAAc;KACpB,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,MAAM,GAAG,GAAM,EAAE,CAC5B,qBAAY,GAAG,EAAE;IACf,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAA;IAEhC,OAAO,YAAY,CAAC;QAClB,IAAI,EAAE,qBAAY,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;QAEjC,GAAG,EAAE,UAAU,CAAC,EAAE,CAChB,qBAAY,GAAa,EAAE,CAAC,6BAAmB,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAEtE,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAC5B,qBAAY,GAAG,EAAE;YACf,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC/B,CAAC,CAAC;QAEJ,MAAM,EAAE,UAAU,CAAC,EAAE,CACnB,qBAAY,GAAG,EAAE;YACf,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACxB,CAAC,CAAC;QAEJ,UAAU,EAAE,GAAG,EAAE,CAAC,sBAAa;QAE/B,GAAG,EAAE,uBAAc;KACpB,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,20 +0,0 @@
1
- import { Duration, Maybe, Effect } from "dfx/_common";
2
- export interface MemoryTTLOpts {
3
- /** The approx. number of milliseconds to keep items */
4
- ttl: Duration;
5
- /**
6
- * How often items should be cleared.
7
- */
8
- resolution?: Duration;
9
- /**
10
- * What sweep strategy to use.
11
- *
12
- * "activity" means the TTL is reset for every `set` OR `get` operation
13
- * "usage" means the TTL is only reset for the `get` operation
14
- *
15
- * Defaults to "usage"
16
- */
17
- strategy?: "activity" | "usage" | "expiry";
18
- }
19
- export declare const create: <T>(opts: MemoryTTLOpts) => import("@effect/io/Effect").Effect<never, never, import("./driver.js").CacheDriver<never, T>>;
20
- export declare const createWithParent: <T>(opts: MemoryTTLOpts) => import("@effect/io/Effect").Effect<never, never, import("./driver.js").ParentCacheDriver<never, T>>;
@@ -1,121 +0,0 @@
1
- import * as tsplus_module_1 from "@effect/data/Duration";
2
- import * as tsplus_module_2 from "@effect/io/Effect";
3
- import * as tsplus_module_3 from "@effect/data/Option";
4
- import { createDriver, createParentDriver } from "./driver.js";
5
- const make = ({ ttl, resolution = tsplus_module_1.minutes(1), strategy = "usage", }) => {
6
- const additionalMilliseconds = (Math.floor(ttl.millis / resolution.millis) + 1) * resolution.millis;
7
- const items = new Map();
8
- const buckets = [];
9
- const refreshTTL = (item) => {
10
- const now = Date.now();
11
- const remainder = now % resolution.millis;
12
- const expires = now - remainder + additionalMilliseconds;
13
- let currentBucket = buckets[buckets.length - 1];
14
- if ((currentBucket?.expires || 0) < expires) {
15
- currentBucket = {
16
- expires,
17
- items: [],
18
- };
19
- buckets.push(currentBucket);
20
- }
21
- currentBucket.items.push(item);
22
- };
23
- const sweep = () => {
24
- const now = Date.now();
25
- const remainder = now % resolution.millis;
26
- const currentExpires = now - remainder;
27
- while (buckets.length && buckets[0].expires <= currentExpires) {
28
- buckets.shift();
29
- }
30
- if (global.gc) {
31
- global.gc();
32
- }
33
- };
34
- const getSync = (resourceId) => {
35
- const ref = items.get(resourceId);
36
- if (!ref)
37
- return undefined;
38
- const item = ref.deref();
39
- if (!item) {
40
- items.delete(resourceId);
41
- return undefined;
42
- }
43
- if (strategy !== "expiry") {
44
- refreshTTL(item);
45
- }
46
- return item.resource;
47
- };
48
- return createDriver({
49
- size: tsplus_module_2.sync(() => items.size),
50
- get: resourceId => tsplus_module_2.sync(() => tsplus_module_3.fromNullable(getSync(resourceId))),
51
- refreshTTL: id => tsplus_module_2.sync(() => {
52
- getSync(id);
53
- }),
54
- set: (resourceId, resource) => tsplus_module_2.sync(() => {
55
- const item = items.get(resourceId)?.deref();
56
- if (item && strategy !== "activity") {
57
- item.resource = resource;
58
- }
59
- else {
60
- const newItem = { resource };
61
- refreshTTL(newItem);
62
- items.set(resourceId, new WeakRef(newItem));
63
- }
64
- }),
65
- delete: resourceId => tsplus_module_2.sync(() => {
66
- items.delete(resourceId);
67
- }),
68
- run: tsplus_module_2.forever(tsplus_module_2.delay(tsplus_module_2.sync(sweep), tsplus_module_1.times(0.5)(resolution))),
69
- });
70
- };
71
- export const create = (opts) => tsplus_module_2.sync(() => make(opts));
72
- export const createWithParent = (opts) => tsplus_module_2.sync(() => {
73
- const store = make(opts);
74
- const parentIds = new Map();
75
- return createParentDriver({
76
- size: store.size,
77
- sizeForParent: parentId => tsplus_module_2.sync(() => parentIds.get(parentId)?.size ?? 0),
78
- refreshTTL: (_, id) => store.refreshTTL(id),
79
- get: (_, id) => store.get(id),
80
- getForParent: parentId => (() => {
81
- const ids = parentIds.get(parentId);
82
- if (!ids)
83
- return tsplus_module_3.none();
84
- const toGet = [];
85
- ids.forEach(id => {
86
- toGet.push(tsplus_module_2.map(store.get(id), item => {
87
- if (item._tag === "None") {
88
- parentIds.delete(id);
89
- }
90
- return [id, item];
91
- }));
92
- });
93
- return tsplus_module_2.map(tsplus_module_2.allPar(toGet), results => {
94
- const map = results.reduce((map, [id, a]) => (a._tag === "Some" ? map.set(id, a.value) : map), new Map());
95
- return tsplus_module_3.some(map);
96
- });
97
- })(),
98
- set: (parentId, resourceId, resource) => tsplus_module_2.map(store.set(resourceId, resource), () => {
99
- if (!parentIds.has(parentId)) {
100
- parentIds.set(parentId, new Set());
101
- }
102
- parentIds.get(parentId).add(resourceId);
103
- }),
104
- delete: (parentId, resourceId) => tsplus_module_2.map(store.delete(resourceId), () => {
105
- parentIds.get(parentId)?.delete(resourceId);
106
- }),
107
- parentDelete: parentId => (() => {
108
- const ids = parentIds.get(parentId);
109
- parentIds.delete(parentId);
110
- const effects = [];
111
- if (ids) {
112
- ids.forEach(id => {
113
- effects.push(store.delete(id));
114
- });
115
- }
116
- return tsplus_module_2.map(tsplus_module_2.allParDiscard(effects), () => void 0);
117
- })(),
118
- run: store.run,
119
- });
120
- });
121
- //# sourceMappingURL=memoryTTL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memoryTTL.js","sourceRoot":"","sources":["../src/Cache/memoryTTL.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- import { DiscordREST } from "dfx";
2
- import { Discord, Effect, Stream } from "dfx/_common";
3
- import { DiscordGateway } from "dfx/gateway";
4
- import { CacheDriver, CacheMissError, CacheOp, ParentCacheDriver, ParentCacheOp } from "../Cache.js";
5
- export interface OptsWithParentOptions<E, A> {
6
- id: (a: A) => string;
7
- fromParent: Stream<never, E, [parentId: string, resources: A[]]>;
8
- create: Stream<never, E, [parentId: string, resource: A]>;
9
- update: Stream<never, E, [parentId: string, resource: A]>;
10
- remove: Stream<never, E, [parentId: string, id: string]>;
11
- parentRemove: Stream<never, E, string>;
12
- }
13
- export declare const opsWithParent: <E, T>({ id, fromParent, create, update, remove, parentRemove, }: OptsWithParentOptions<E, T>) => Stream<never, E, ParentCacheOp<T>>;
14
- export interface OpsOptions<E, A> {
15
- id: (a: A) => string;
16
- create: Stream<never, E, A>;
17
- update: Stream<never, E, A>;
18
- remove: Stream<never, E, string>;
19
- }
20
- export declare const ops: <E, T>({ id, create, update, remove }: OpsOptions<E, T>) => Stream<never, E, CacheOp<T>>;
21
- export declare const guilds: <RM, EM, E>(makeDriver: Effect<RM, EM, CacheDriver<E, Discord.Guild>>) => Effect<DiscordREST | DiscordGateway | RM, EM, {
22
- get: (id: string) => Effect<never, import("../DiscordREST.js").DiscordRESTError | import("@effect-http/client").ResponseDecodeError | E, Discord.Guild>;
23
- put: (_: Discord.Guild) => Effect<never, E, void>;
24
- update: <R, E_1>(id: string, f: (_: Discord.Guild) => Effect<R, E_1, Discord.Guild>) => Effect<R, import("../DiscordREST.js").DiscordRESTError | import("@effect-http/client").ResponseDecodeError | E | E_1, Discord.Guild>;
25
- run: Effect<never, E, never>;
26
- size: Effect<never, E, number>;
27
- set: (resourceId: string, resource: Discord.Guild) => Effect<never, E, void>;
28
- delete: (resourceId: string) => Effect<never, E, void>;
29
- refreshTTL: (resourceId: string) => Effect<never, E, void>;
30
- }>;
31
- export declare const channels: <RM, EM, E>(makeDriver: Effect<RM, EM, ParentCacheDriver<E, Discord.Channel>>) => Effect<DiscordREST | DiscordGateway | RM, EM, {
32
- get: (parentId: string, id: string) => Effect<never, import("../DiscordREST.js").DiscordRESTError | import("@effect-http/client").ResponseDecodeError | E, Discord.Channel>;
33
- put: (_: Discord.Channel) => Effect<never, import("../DiscordREST.js").DiscordRESTError | import("@effect-http/client").ResponseDecodeError | E, void>;
34
- update: <R, E_1>(parentId: string, id: string, f: (_: Discord.Channel) => Effect<R, E_1, Discord.Channel>) => Effect<R, import("../DiscordREST.js").DiscordRESTError | import("@effect-http/client").ResponseDecodeError | E | E_1, Discord.Channel>;
35
- getForParent: (parentId: string) => Effect<never, import("../DiscordREST.js").DiscordRESTError | import("@effect-http/client").ResponseDecodeError | E, ReadonlyMap<string, Discord.Channel>>;
36
- run: Effect<never, E, never>;
37
- size: Effect<never, E, number>;
38
- sizeForParent: (parentId: string) => Effect<never, E, number>;
39
- set: (parentId: string, resourceId: string, resource: Discord.Channel) => Effect<never, E, void>;
40
- delete: (parentId: string, resourceId: string) => Effect<never, E, void>;
41
- parentDelete: (parentId: string) => Effect<never, E, void>;
42
- refreshTTL: (parentId: string, resourceId: string) => Effect<never, E, void>;
43
- }>;
44
- export declare const roles: <RM, EM, E>(makeDriver: Effect<RM, EM, ParentCacheDriver<E, Discord.Role>>) => Effect<DiscordREST | DiscordGateway | RM, EM, {
45
- get: (parentId: string, id: string) => Effect<never, CacheMissError | E, Discord.Role>;
46
- put: (_: Discord.Role) => Effect<never, CacheMissError | E, void>;
47
- update: <R, E_1>(parentId: string, id: string, f: (_: Discord.Role) => Effect<R, E_1, Discord.Role>) => Effect<R, CacheMissError | E | E_1, Discord.Role>;
48
- getForParent: (parentId: string) => Effect<never, import("../DiscordREST.js").DiscordRESTError | import("@effect-http/client").ResponseDecodeError | E, ReadonlyMap<string, Discord.Role>>;
49
- run: Effect<never, E, never>;
50
- size: Effect<never, E, number>;
51
- sizeForParent: (parentId: string) => Effect<never, E, number>;
52
- set: (parentId: string, resourceId: string, resource: Discord.Role) => Effect<never, E, void>;
53
- delete: (parentId: string, resourceId: string) => Effect<never, E, void>;
54
- parentDelete: (parentId: string) => Effect<never, E, void>;
55
- refreshTTL: (parentId: string, resourceId: string) => Effect<never, E, void>;
56
- }>;
package/Cache/prelude.js DELETED
@@ -1,108 +0,0 @@
1
- import * as tsplus_module_1 from "@effect/stream/Stream";
2
- import * as tsplus_module_2 from "@effect/io/Effect";
3
- import { DiscordREST } from "dfx";
4
- import { DiscordGateway } from "dfx/gateway";
5
- import { CacheMissError, make, makeWithParent, } from "../Cache.js";
6
- export const opsWithParent = ({ id, fromParent, create, update, remove, parentRemove, }) => {
7
- const fromParentOps = tsplus_module_1.flatMap(fromParent, ([parentId, a]) => tsplus_module_1.fromIterable(a.map((resource) => ({
8
- op: "create",
9
- parentId,
10
- resourceId: id(resource),
11
- resource,
12
- }))));
13
- const createOps = tsplus_module_1.map(create, ([parentId, resource]) => ({
14
- op: "create",
15
- parentId,
16
- resourceId: id(resource),
17
- resource,
18
- }));
19
- const updateOps = tsplus_module_1.map(update, ([parentId, resource]) => ({
20
- op: "update",
21
- parentId,
22
- resourceId: id(resource),
23
- resource,
24
- }));
25
- const removeOps = tsplus_module_1.map(remove, ([parentId, resourceId]) => ({
26
- op: "delete",
27
- parentId,
28
- resourceId,
29
- }));
30
- const parentRemoveOps = tsplus_module_1.map(parentRemove, (parentId) => ({
31
- op: "parentDelete",
32
- parentId,
33
- }));
34
- return tsplus_module_1.merge(tsplus_module_1.merge(tsplus_module_1.merge(tsplus_module_1.merge(fromParentOps, createOps), updateOps), removeOps), parentRemoveOps);
35
- };
36
- export const ops = ({ id, create, update, remove }) => {
37
- const createOps = tsplus_module_1.map(create, (resource) => ({
38
- op: "create",
39
- resourceId: id(resource),
40
- resource,
41
- }));
42
- const updateOps = tsplus_module_1.map(update, (resource) => ({
43
- op: "update",
44
- resourceId: id(resource),
45
- resource,
46
- }));
47
- const removeOps = tsplus_module_1.map(remove, (resourceId) => ({
48
- op: "delete",
49
- resourceId,
50
- }));
51
- return tsplus_module_1.merge(tsplus_module_1.merge(createOps, updateOps), removeOps);
52
- };
53
- export const guilds = (makeDriver) => tsplus_module_2.flatMap(makeDriver, driver => tsplus_module_2.flatMap(DiscordGateway, gateway => tsplus_module_2.map(DiscordREST, rest => make({
54
- driver,
55
- id: _ => _.id,
56
- ops: ops({
57
- id: (g) => g.id,
58
- create: tsplus_module_1.map(gateway.fromDispatch("GUILD_CREATE"), g => ({
59
- ...g,
60
- channels: [],
61
- roles: [],
62
- emojis: [],
63
- members: [],
64
- })),
65
- update: gateway.fromDispatch("GUILD_UPDATE"),
66
- remove: tsplus_module_1.map(gateway.fromDispatch("GUILD_DELETE"), a => a.id),
67
- }),
68
- onMiss: id => tsplus_module_2.flatMap(rest.getGuild(id), r => r.json),
69
- }))));
70
- export const channels = (makeDriver) => tsplus_module_2.flatMap(makeDriver, driver => tsplus_module_2.flatMap(DiscordGateway, gateway => tsplus_module_2.map(DiscordREST, rest => makeWithParent({
71
- driver,
72
- id: _ => tsplus_module_2.succeed([_.guild_id, _.id]),
73
- ops: opsWithParent({
74
- id: (a) => a.id,
75
- fromParent: tsplus_module_1.map(gateway
76
- .fromDispatch("GUILD_CREATE"), g => [g.id, g.channels]),
77
- create: tsplus_module_1.map(gateway
78
- .fromDispatch("CHANNEL_CREATE"), c => [c.guild_id, c]),
79
- update: tsplus_module_1.map(gateway
80
- .fromDispatch("CHANNEL_UPDATE"), c => [c.guild_id, c]),
81
- remove: tsplus_module_1.map(gateway
82
- .fromDispatch("CHANNEL_DELETE"), a => [a.guild_id, a.id]),
83
- parentRemove: tsplus_module_1.map(gateway.fromDispatch("GUILD_DELETE"), g => g.id),
84
- }),
85
- onMiss: (_, id) => tsplus_module_2.flatMap(rest.getChannel(id), r => r.json),
86
- onParentMiss: guildId => tsplus_module_2.map(tsplus_module_2.flatMap(rest
87
- .getGuildChannels(guildId), r => r.json), a => a.map(a => [a.id, a])),
88
- }))));
89
- export const roles = (makeDriver) => tsplus_module_2.flatMap(makeDriver, driver => tsplus_module_2.flatMap(DiscordGateway, gateway => tsplus_module_2.map(DiscordREST, rest => makeWithParent({
90
- driver,
91
- id: _ => tsplus_module_2.fail(new CacheMissError("RolesCache/id", _.id)),
92
- ops: opsWithParent({
93
- id: (a) => a.id,
94
- fromParent: tsplus_module_1.map(gateway
95
- .fromDispatch("GUILD_CREATE"), g => [g.id, g.roles]),
96
- create: tsplus_module_1.map(gateway
97
- .fromDispatch("GUILD_ROLE_CREATE"), r => [r.guild_id, r.role]),
98
- update: tsplus_module_1.map(gateway
99
- .fromDispatch("GUILD_ROLE_UPDATE"), r => [r.guild_id, r.role]),
100
- remove: tsplus_module_1.map(gateway
101
- .fromDispatch("GUILD_ROLE_DELETE"), r => [r.guild_id, r.role_id]),
102
- parentRemove: tsplus_module_1.map(gateway.fromDispatch("GUILD_DELETE"), g => g.id),
103
- }),
104
- onMiss: (_, id) => tsplus_module_2.fail(new CacheMissError("RolesCache", id)),
105
- onParentMiss: guildId => tsplus_module_2.map(tsplus_module_2.flatMap(rest
106
- .getGuildRoles(guildId), r => r.json), _ => _.map(role => [role.id, role])),
107
- }))));
108
- //# sourceMappingURL=prelude.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prelude.js","sourceRoot":"","sources":["../src/Cache/prelude.ts"],"names":[],"mappings":"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"}
package/Cache.d.ts DELETED
@@ -1,75 +0,0 @@
1
- import { Stream, Effect } from "dfx/_common";
2
- import { CacheDriver, ParentCacheDriver } from "./Cache/driver.js";
3
- export * from "./Cache/driver.js";
4
- export { create as memoryDriver, createWithParent as memoryParentDriver, } from "./Cache/memory.js";
5
- export { create as memoryTTLDriver, createWithParent as memoryTTLParentDriver, } from "./Cache/memoryTTL.js";
6
- export type ParentCacheOp<T> = {
7
- op: "create";
8
- parentId: string;
9
- resourceId: string;
10
- resource: T;
11
- } | {
12
- op: "update";
13
- parentId: string;
14
- resourceId: string;
15
- resource: T;
16
- } | {
17
- op: "delete";
18
- parentId: string;
19
- resourceId: string;
20
- } | {
21
- op: "parentDelete";
22
- parentId: string;
23
- };
24
- export type CacheOp<T> = {
25
- op: "create";
26
- resourceId: string;
27
- resource: T;
28
- } | {
29
- op: "update";
30
- resourceId: string;
31
- resource: T;
32
- } | {
33
- op: "delete";
34
- resourceId: string;
35
- };
36
- export declare const makeWithParent: <EOps, EDriver, EMiss, EPMiss, A>({ driver, ops, id, onMiss, onParentMiss, }: {
37
- driver: ParentCacheDriver<EDriver, A>;
38
- ops?: import("@effect-http/client/_common").Stream<never, EOps, ParentCacheOp<A>> | undefined;
39
- id: (_: A) => import("@effect/io/Effect").Effect<never, EMiss, readonly [parentId: string, id: string]>;
40
- onMiss: (parentId: string, id: string) => import("@effect/io/Effect").Effect<never, EMiss, A>;
41
- onParentMiss: (parentId: string) => import("@effect/io/Effect").Effect<never, EPMiss, [id: string, resource: A][]>;
42
- }) => {
43
- get: (parentId: string, id: string) => import("@effect/io/Effect").Effect<never, EDriver | EMiss, A>;
44
- put: (_: A) => import("@effect/io/Effect").Effect<never, EDriver | EMiss, void>;
45
- update: <R, E>(parentId: string, id: string, f: (_: A) => import("@effect/io/Effect").Effect<R, E, A>) => import("@effect/io/Effect").Effect<R, EDriver | EMiss | E, A>;
46
- getForParent: (parentId: string) => import("@effect/io/Effect").Effect<never, EDriver | EPMiss, ReadonlyMap<string, A>>;
47
- run: import("@effect/io/Effect").Effect<never, EOps | EDriver, never>;
48
- size: import("@effect/io/Effect").Effect<never, EDriver, number>;
49
- sizeForParent: (parentId: string) => import("@effect/io/Effect").Effect<never, EDriver, number>;
50
- set: (parentId: string, resourceId: string, resource: A) => import("@effect/io/Effect").Effect<never, EDriver, void>;
51
- delete: (parentId: string, resourceId: string) => import("@effect/io/Effect").Effect<never, EDriver, void>;
52
- parentDelete: (parentId: string) => import("@effect/io/Effect").Effect<never, EDriver, void>;
53
- refreshTTL: (parentId: string, resourceId: string) => import("@effect/io/Effect").Effect<never, EDriver, void>;
54
- };
55
- export declare const make: <EOps, EDriver, EMiss, A>({ driver, ops, id, onMiss, }: {
56
- driver: CacheDriver<EDriver, A>;
57
- ops?: import("@effect-http/client/_common").Stream<never, EOps, CacheOp<A>> | undefined;
58
- id: (_: A) => string;
59
- onMiss: (id: string) => import("@effect/io/Effect").Effect<never, EMiss, A>;
60
- }) => {
61
- get: (id: string) => import("@effect/io/Effect").Effect<never, EDriver | EMiss, A>;
62
- put: (_: A) => import("@effect/io/Effect").Effect<never, EDriver, void>;
63
- update: <R, E>(id: string, f: (_: A) => import("@effect/io/Effect").Effect<R, E, A>) => import("@effect/io/Effect").Effect<R, EDriver | EMiss | E, A>;
64
- run: import("@effect/io/Effect").Effect<never, EOps | EDriver, never>;
65
- size: import("@effect/io/Effect").Effect<never, EDriver, number>;
66
- set: (resourceId: string, resource: A) => import("@effect/io/Effect").Effect<never, EDriver, void>;
67
- delete: (resourceId: string) => import("@effect/io/Effect").Effect<never, EDriver, void>;
68
- refreshTTL: (resourceId: string) => import("@effect/io/Effect").Effect<never, EDriver, void>;
69
- };
70
- export declare class CacheMissError {
71
- readonly cacheName: string;
72
- readonly id: string;
73
- readonly _tag = "CacheMissError";
74
- constructor(cacheName: string, id: string);
75
- }
package/Cache.js DELETED
@@ -1,62 +0,0 @@
1
- import * as tsplus_module_1 from "@effect/stream/Stream";
2
- import * as tsplus_module_2 from "@effect/io/Effect";
3
- export * from "./Cache/driver.js";
4
- export { create as memoryDriver, createWithParent as memoryParentDriver, } from "./Cache/memory.js";
5
- export { create as memoryTTLDriver, createWithParent as memoryTTLParentDriver, } from "./Cache/memoryTTL.js";
6
- export const makeWithParent = ({ driver, ops = tsplus_module_1.empty, id, onMiss, onParentMiss, }) => {
7
- const sync = tsplus_module_1.runDrain(tsplus_module_1.tap(ops, (op) => {
8
- switch (op.op) {
9
- case "create":
10
- case "update":
11
- return driver.set(op.parentId, op.resourceId, op.resource);
12
- case "delete":
13
- return driver.delete(op.parentId, op.resourceId);
14
- case "parentDelete":
15
- return driver.parentDelete(op.parentId);
16
- }
17
- }));
18
- const get = (parentId, id) => tsplus_module_2.someOrElseEffect(driver
19
- .get(parentId, id), () => tsplus_module_2.tap(onMiss(parentId, id), a => driver.set(parentId, id, a)));
20
- const put = (_) => tsplus_module_2.flatMap(id(_), ([parentId, id]) => driver.set(parentId, id, _));
21
- const update = (parentId, id, f) => tsplus_module_2.tap(tsplus_module_2.flatMap(get(parentId, id), f), _ => driver.set(parentId, id, _));
22
- return {
23
- ...driver,
24
- get,
25
- put,
26
- update,
27
- getForParent: (parentId) => tsplus_module_2.someOrElseEffect(driver.getForParent(parentId), () => tsplus_module_2.map(tsplus_module_2.tap(onParentMiss(parentId), entries => tsplus_module_2.allPar(entries.map(([id, a]) => driver.set(parentId, id, a)))), entries => new Map(entries))),
28
- run: tsplus_module_2.zipParRight(sync, driver.run),
29
- };
30
- };
31
- export const make = ({ driver, ops = tsplus_module_1.empty, id, onMiss, }) => {
32
- const sync = tsplus_module_1.runDrain(tsplus_module_1.tap(ops, (op) => {
33
- switch (op.op) {
34
- case "create":
35
- case "update":
36
- return driver.set(op.resourceId, op.resource);
37
- case "delete":
38
- return driver.delete(op.resourceId);
39
- }
40
- }));
41
- const get = (id) => tsplus_module_2.someOrElseEffect(driver
42
- .get(id), () => tsplus_module_2.tap(onMiss(id), a => driver.set(id, a)));
43
- const put = (_) => driver.set(id(_), _);
44
- const update = (id, f) => tsplus_module_2.tap(tsplus_module_2.flatMap(get(id), f), _ => driver.set(id, _));
45
- return {
46
- ...driver,
47
- get,
48
- put,
49
- update,
50
- run: tsplus_module_2.zipParRight(sync, driver.run),
51
- };
52
- };
53
- export class CacheMissError {
54
- cacheName;
55
- id;
56
- _tag = "CacheMissError";
57
- constructor(cacheName, id) {
58
- this.cacheName = cacheName;
59
- this.id = id;
60
- }
61
- }
62
- //# sourceMappingURL=Cache.js.map
package/Cache.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Cache.js","sourceRoot":"","sources":["src/Cache.ts"],"names":[],"mappings":"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"}