@dual-os/box-api 0.0.0-stage → 6.0.4

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 (46) hide show
  1. package/LICENSE +4 -0
  2. package/Runner.js +5537 -0
  3. package/Runner.js.map +59 -0
  4. package/bundle-inventory.json +1 -0
  5. package/dist/_virtual/_rolldown/runtime.js +10 -0
  6. package/dist/_virtual/_rolldown/runtime.js.map +9 -0
  7. package/dist/auth.d.ts +43 -0
  8. package/dist/auth.d.ts.map +1 -0
  9. package/dist/auth.js +17 -0
  10. package/dist/auth.js.map +9 -0
  11. package/dist/generated/http.d.ts +81 -0
  12. package/dist/generated/http.d.ts.map +1 -0
  13. package/dist/generated/http.js +64 -0
  14. package/dist/generated/http.js.map +9 -0
  15. package/dist/generated/operations.d.ts +6059 -0
  16. package/dist/generated/operations.d.ts.map +1 -0
  17. package/dist/generated/operations.js +1532 -0
  18. package/dist/generated/operations.js.map +9 -0
  19. package/dist/generated/plugin.d.ts +1167 -0
  20. package/dist/generated/plugin.d.ts.map +1 -0
  21. package/dist/generated/plugin.js +2869 -0
  22. package/dist/generated/plugin.js.map +10 -0
  23. package/dist/triggers.d.ts +172 -0
  24. package/dist/triggers.d.ts.map +1 -0
  25. package/dist/triggers.js +17 -0
  26. package/dist/triggers.js.map +9 -0
  27. package/dual-plugin.json +1 -0
  28. package/licenses/@dual-os_sdk@0.9.0/LICENSE +4 -0
  29. package/licenses/@effect_platform-node-shared@4.1.2/LICENSE +21 -0
  30. package/licenses/@effect_platform-node@4.1.2/LICENSE +21 -0
  31. package/licenses/effect@4.1.2/LICENSE +21 -0
  32. package/package.json +1 -6
  33. package/plugin-2jdfj02n.js +18 -0
  34. package/plugin-2jdfj02n.js.map +10 -0
  35. package/plugin-7wasva88.js +62 -0
  36. package/plugin-7wasva88.js.map +10 -0
  37. package/plugin-by2fjv4r.js +10970 -0
  38. package/plugin-by2fjv4r.js.map +10 -0
  39. package/plugin-p1a27j0f.js +116 -0
  40. package/plugin-p1a27j0f.js.map +10 -0
  41. package/plugin-q33ks0q6.js +19115 -0
  42. package/plugin-q33ks0q6.js.map +158 -0
  43. package/plugin-rnyttrxf.js +1361 -0
  44. package/plugin-rnyttrxf.js.map +18 -0
  45. package/plugin.json +29 -0
  46. package/README.md +0 -3
@@ -0,0 +1,116 @@
1
+ // @bun
2
+ import {
3
+ exists,
4
+ contains,
5
+ minutes,
6
+ toMillis,
7
+ currentTimeMillis,
8
+ forEach,
9
+ succeed4,
10
+ mapError,
11
+ fn,
12
+ make3,
13
+ toEpochMillis,
14
+ decodeUnknownEffect,
15
+ optionalKey,
16
+ Unknown,
17
+ String3,
18
+ Struct,
19
+ Record,
20
+ StructWithRest,
21
+ NonEmptyArray,
22
+ Uint8Array2,
23
+ Action_exports,
24
+ Trigger_exports
25
+ } from "./plugin-q33ks0q6.js";
26
+ import {
27
+ ItemType2,
28
+ Triggers2,
29
+ webhooks_postWebhooks2,
30
+ webhooks_deleteWebhooksId2
31
+ } from "./plugin-by2fjv4r.js";
32
+
33
+ // dist/triggers.js
34
+ var tolerance = minutes(10);
35
+ var Event = StructWithRest(Struct({
36
+ id: String3,
37
+ trigger: String3
38
+ }), [Record(String3, Unknown)]);
39
+ var SignedDelivery = Struct({
40
+ headers: Struct({
41
+ "box-delivery-timestamp": String3,
42
+ "box-signature-primary": optionalKey(String3),
43
+ "box-signature-secondary": optionalKey(String3)
44
+ }),
45
+ rawBody: Uint8Array2
46
+ });
47
+ var triggers2 = [Trigger_exports.webhook("event", {
48
+ description: "Triggers when a subscribed event happens to a Box file or folder, such as an upload, a download, a comment or a shared link",
49
+ name: "Box event",
50
+ config: Struct({
51
+ target: Struct({
52
+ id: String3,
53
+ type: ItemType2
54
+ }),
55
+ triggers: NonEmptyArray(Triggers2)
56
+ }),
57
+ output: Event,
58
+ state: Struct({ webhookId: String3 })
59
+ })];
60
+ var handlers2 = { event: {
61
+ activate: fn("Box.event.activate")(function* (input, context) {
62
+ const keys = context.auth.current.value;
63
+ if (keys.webhookPrimaryKey === undefined && keys.webhookSecondaryKey === undefined)
64
+ return yield* Action_exports.ActionHandlerError.make({ message: "Configure a Box app webhook signature key before activating webhooks" });
65
+ const webhook = yield* webhooks_postWebhooks2.run({ payload: {
66
+ address: input.webhookUrl,
67
+ target: input.config.target,
68
+ triggers: input.config.triggers
69
+ } }, context);
70
+ if (webhook.id === undefined)
71
+ return yield* Action_exports.ActionHandlerError.make({ message: "Box did not return the registered webhook ID" });
72
+ return { state: { webhookId: webhook.id } };
73
+ }),
74
+ deactivate: fn("Box.event.deactivate")(function* (input, context) {
75
+ if (input.state === undefined)
76
+ return;
77
+ yield* webhooks_deleteWebhooksId2.run({ webhook_id: input.state.webhookId }, context);
78
+ }),
79
+ parse: fn("Box.event.parse")(function* (input) {
80
+ const payload = yield* decodeUnknownEffect(Event)(input.request.body);
81
+ return {
82
+ events: [{
83
+ key: payload.id,
84
+ payload
85
+ }],
86
+ state: input.state
87
+ };
88
+ }),
89
+ verify: fn("Box.event.verify")(function* (input, context) {
90
+ const forged = Action_exports.ActionHandlerError.make({
91
+ message: "Invalid Box webhook signature",
92
+ status: 401
93
+ });
94
+ const delivery = yield* mapError(decodeUnknownEffect(SignedDelivery)({
95
+ ...input.request,
96
+ headers: input.request.headers ?? {}
97
+ }), () => forged);
98
+ const timestamp = delivery.headers["box-delivery-timestamp"];
99
+ const now = yield* currentTimeMillis;
100
+ const fresh = exists(make3(timestamp), (sent) => Math.abs(now - toEpochMillis(sent)) <= toMillis(tolerance));
101
+ const keys = context.auth.current.value;
102
+ const results = yield* forEach([[keys.webhookPrimaryKey, delivery.headers["box-signature-primary"]], [keys.webhookSecondaryKey, delivery.headers["box-signature-secondary"]]], (pair) => pair[0] === undefined || pair[1] === undefined ? succeed4(false) : Trigger_exports.verifyHmac({
103
+ algorithm: "sha256",
104
+ encoding: "base64",
105
+ message: [delivery.rawBody, timestamp],
106
+ secret: pair[0],
107
+ signature: pair[1]
108
+ }));
109
+ if (!fresh || !contains(results, true))
110
+ return yield* forged;
111
+ })
112
+ } };
113
+ export { triggers2, handlers2 };
114
+
115
+ //# debugId=8C93891FC3C2C5F364756E2164756E21
116
+ //# sourceMappingURL=plugin-p1a27j0f.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../bundle-input/dist/triggers.js"],
4
+ "sourcesContent": [
5
+ "import { ItemType, Triggers, webhooks_deleteWebhooksId, webhooks_postWebhooks } from \"./generated/operations.js\";\nimport { Array, Clock, DateTime, Duration, Effect, Option, Schema } from \"effect\";\nimport { Action, Trigger } from \"@dual-os/sdk\";\n//#region src/triggers.ts\nconst tolerance = Duration.minutes(10);\nconst Event = Schema.StructWithRest(Schema.Struct({\n\tid: Schema.String,\n\ttrigger: Schema.String\n}), [Schema.Record(Schema.String, Schema.Unknown)]);\nconst SignedDelivery = Schema.Struct({\n\theaders: Schema.Struct({\n\t\t\"box-delivery-timestamp\": Schema.String,\n\t\t\"box-signature-primary\": Schema.optionalKey(Schema.String),\n\t\t\"box-signature-secondary\": Schema.optionalKey(Schema.String)\n\t}),\n\trawBody: Schema.Uint8Array\n});\nconst triggers = [Trigger.webhook(\"event\", {\n\tdescription: \"Triggers when a subscribed event happens to a Box file or folder, such as an upload, a download, a comment or a shared link\",\n\tname: \"Box event\",\n\tconfig: Schema.Struct({\n\t\ttarget: Schema.Struct({\n\t\t\tid: Schema.String,\n\t\t\ttype: ItemType\n\t\t}),\n\t\ttriggers: Schema.NonEmptyArray(Triggers)\n\t}),\n\toutput: Event,\n\tstate: Schema.Struct({ webhookId: Schema.String })\n})];\nconst handlers = { event: {\n\tactivate: Effect.fn(\"Box.event.activate\")(function* (input, context) {\n\t\tconst keys = context.auth.current.value;\n\t\tif (keys.webhookPrimaryKey === void 0 && keys.webhookSecondaryKey === void 0) return yield* Action.ActionHandlerError.make({ message: \"Configure a Box app webhook signature key before activating webhooks\" });\n\t\tconst webhook = yield* webhooks_postWebhooks.run({ payload: {\n\t\t\taddress: input.webhookUrl,\n\t\t\ttarget: input.config.target,\n\t\t\ttriggers: input.config.triggers\n\t\t} }, context);\n\t\tif (webhook.id === void 0) return yield* Action.ActionHandlerError.make({ message: \"Box did not return the registered webhook ID\" });\n\t\treturn { state: { webhookId: webhook.id } };\n\t}),\n\tdeactivate: Effect.fn(\"Box.event.deactivate\")(function* (input, context) {\n\t\tif (input.state === void 0) return;\n\t\tyield* webhooks_deleteWebhooksId.run({ webhook_id: input.state.webhookId }, context);\n\t}),\n\tparse: Effect.fn(\"Box.event.parse\")(function* (input) {\n\t\tconst payload = yield* Schema.decodeUnknownEffect(Event)(input.request.body);\n\t\treturn {\n\t\t\tevents: [{\n\t\t\t\tkey: payload.id,\n\t\t\t\tpayload\n\t\t\t}],\n\t\t\tstate: input.state\n\t\t};\n\t}),\n\tverify: Effect.fn(\"Box.event.verify\")(function* (input, context) {\n\t\tconst forged = Action.ActionHandlerError.make({\n\t\t\tmessage: \"Invalid Box webhook signature\",\n\t\t\tstatus: 401\n\t\t});\n\t\tconst delivery = yield* Effect.mapError(Schema.decodeUnknownEffect(SignedDelivery)({\n\t\t\t...input.request,\n\t\t\theaders: input.request.headers ?? {}\n\t\t}), () => forged);\n\t\tconst timestamp = delivery.headers[\"box-delivery-timestamp\"];\n\t\tconst now = yield* Clock.currentTimeMillis;\n\t\tconst fresh = Option.exists(DateTime.make(timestamp), (sent) => Math.abs(now - DateTime.toEpochMillis(sent)) <= Duration.toMillis(tolerance));\n\t\tconst keys = context.auth.current.value;\n\t\tconst results = yield* Effect.forEach([[keys.webhookPrimaryKey, delivery.headers[\"box-signature-primary\"]], [keys.webhookSecondaryKey, delivery.headers[\"box-signature-secondary\"]]], (pair) => pair[0] === void 0 || pair[1] === void 0 ? Effect.succeed(false) : Trigger.verifyHmac({\n\t\t\talgorithm: \"sha256\",\n\t\t\tencoding: \"base64\",\n\t\t\tmessage: [delivery.rawBody, timestamp],\n\t\t\tsecret: pair[0],\n\t\t\tsignature: pair[1]\n\t\t}));\n\t\tif (!fresh || !Array.contains(results, true)) return yield* forged;\n\t})\n} };\n//#endregion\nexport { handlers, triggers };\n\n//# sourceMappingURL=triggers.js.map"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "8C93891FC3C2C5F364756E2164756E21",
9
+ "names": []
10
+ }