gemi 0.152.0 → 0.154.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/dist/ai/index.js +1 -1
  2. package/dist/app/index.js +1 -1
  3. package/dist/bin/orm/emit.d.ts.map +1 -1
  4. package/dist/bin/orm-generator.js +21 -4
  5. package/dist/bin/orm-generator.js.map +3 -3
  6. package/dist/bun/plugin.js +1 -1
  7. package/dist/bun/preload.js +1 -1
  8. package/dist/{chunk-7txqv2qq.js → chunk-0fjn202c.js} +3 -3
  9. package/dist/{chunk-7txqv2qq.js.map → chunk-0fjn202c.js.map} +1 -1
  10. package/dist/{chunk-dxh8njb4.js → chunk-0hqg6ema.js} +2 -2
  11. package/dist/{chunk-dxh8njb4.js.map → chunk-0hqg6ema.js.map} +1 -1
  12. package/dist/{chunk-e06t0625.js → chunk-0mgswwbj.js} +2 -2
  13. package/dist/{chunk-e06t0625.js.map → chunk-0mgswwbj.js.map} +1 -1
  14. package/dist/{chunk-h8eawyhx.js → chunk-0t531zdt.js} +2 -2
  15. package/dist/{chunk-h8eawyhx.js.map → chunk-0t531zdt.js.map} +1 -1
  16. package/dist/{chunk-pq657qcp.js → chunk-198ywkt2.js} +1 -1
  17. package/dist/{chunk-fka28ceg.js → chunk-1a11x8ww.js} +1 -1
  18. package/dist/{chunk-nhdx7cpz.js → chunk-1q5eagpm.js} +1 -1
  19. package/dist/{chunk-1z619xe0.js → chunk-2r2j2nvq.js} +2 -2
  20. package/dist/{chunk-1z619xe0.js.map → chunk-2r2j2nvq.js.map} +1 -1
  21. package/dist/{chunk-4m0eqq80.js → chunk-2t61pc8v.js} +2 -2
  22. package/dist/{chunk-4m0eqq80.js.map → chunk-2t61pc8v.js.map} +1 -1
  23. package/dist/{chunk-65wy1r1a.js → chunk-3nf0nmpp.js} +1 -1
  24. package/dist/{chunk-ymdpt00k.js → chunk-403b2rfp.js} +2 -2
  25. package/dist/{chunk-ymdpt00k.js.map → chunk-403b2rfp.js.map} +1 -1
  26. package/dist/{chunk-bsa6b82q.js → chunk-41bvpent.js} +1 -1
  27. package/dist/{chunk-70yz9e7f.js → chunk-4ptz62pz.js} +2 -2
  28. package/dist/{chunk-70yz9e7f.js.map → chunk-4ptz62pz.js.map} +1 -1
  29. package/dist/{chunk-29jmaj16.js → chunk-4y74s15p.js} +1 -1
  30. package/dist/{chunk-9z8zq4rx.js → chunk-5gq41j99.js} +3 -3
  31. package/dist/{chunk-9z8zq4rx.js.map → chunk-5gq41j99.js.map} +1 -1
  32. package/dist/chunk-6tkkvaqg.js +5 -0
  33. package/dist/{chunk-fqqbnp0z.js.map → chunk-6tkkvaqg.js.map} +2 -2
  34. package/dist/{chunk-bykkqvd8.js → chunk-7j8x62yb.js} +2 -2
  35. package/dist/{chunk-bykkqvd8.js.map → chunk-7j8x62yb.js.map} +1 -1
  36. package/dist/{chunk-vm5t0j24.js → chunk-7jnawtcm.js} +2 -2
  37. package/dist/{chunk-vm5t0j24.js.map → chunk-7jnawtcm.js.map} +1 -1
  38. package/dist/{chunk-94hcjdbe.js → chunk-9xyd5r54.js} +2 -2
  39. package/dist/{chunk-94hcjdbe.js.map → chunk-9xyd5r54.js.map} +1 -1
  40. package/dist/{chunk-6vg2jvdp.js → chunk-ae5ycktd.js} +3 -3
  41. package/dist/{chunk-6vg2jvdp.js.map → chunk-ae5ycktd.js.map} +1 -1
  42. package/dist/{chunk-1ttd4rn9.js → chunk-afaff2se.js} +2 -2
  43. package/dist/{chunk-1ttd4rn9.js.map → chunk-afaff2se.js.map} +1 -1
  44. package/dist/{chunk-jzpbwvbt.js → chunk-baj76zja.js} +2 -2
  45. package/dist/{chunk-5yz684rw.js.map → chunk-baj76zja.js.map} +1 -1
  46. package/dist/{chunk-q9na1syb.js → chunk-c94a3qsx.js} +2 -2
  47. package/dist/{chunk-q9na1syb.js.map → chunk-c94a3qsx.js.map} +1 -1
  48. package/dist/{chunk-5yz684rw.js → chunk-dewn1kmd.js} +2 -2
  49. package/dist/{chunk-jzpbwvbt.js.map → chunk-dewn1kmd.js.map} +1 -1
  50. package/dist/{chunk-5q2pmve9.js → chunk-djyx6eyh.js} +2 -2
  51. package/dist/{chunk-5q2pmve9.js.map → chunk-djyx6eyh.js.map} +1 -1
  52. package/dist/{chunk-0mt7kqwx.js → chunk-f4hx69cr.js} +2 -2
  53. package/dist/{chunk-0mt7kqwx.js.map → chunk-f4hx69cr.js.map} +1 -1
  54. package/dist/chunk-fe9fvtvt.js +117 -0
  55. package/dist/{chunk-r52harpp.js.map → chunk-fe9fvtvt.js.map} +5 -4
  56. package/dist/{chunk-xj9xd80t.js → chunk-g23xnzc1.js} +3 -3
  57. package/dist/{chunk-xj9xd80t.js.map → chunk-g23xnzc1.js.map} +1 -1
  58. package/dist/{chunk-2k3935ke.js → chunk-h0kyymhv.js} +2 -2
  59. package/dist/{chunk-2k3935ke.js.map → chunk-h0kyymhv.js.map} +1 -1
  60. package/dist/{chunk-63xwah5k.js → chunk-ja1289jh.js} +1 -1
  61. package/dist/{chunk-tr9ynv3w.js → chunk-jgpbr2k1.js} +2 -2
  62. package/dist/{chunk-tr9ynv3w.js.map → chunk-jgpbr2k1.js.map} +1 -1
  63. package/dist/{chunk-z7tsh9qr.js → chunk-m5f6ksqe.js} +2 -2
  64. package/dist/{chunk-z7tsh9qr.js.map → chunk-m5f6ksqe.js.map} +1 -1
  65. package/dist/{chunk-1wz6kwjc.js → chunk-mp3ecfnh.js} +2 -2
  66. package/dist/{chunk-1wz6kwjc.js.map → chunk-mp3ecfnh.js.map} +1 -1
  67. package/dist/{chunk-4jd25v6d.js → chunk-nh01ncyy.js} +2 -2
  68. package/dist/{chunk-4jd25v6d.js.map → chunk-nh01ncyy.js.map} +1 -1
  69. package/dist/{chunk-hcw671mg.js → chunk-nhhnkv0e.js} +4 -4
  70. package/dist/{chunk-hcw671mg.js.map → chunk-nhhnkv0e.js.map} +1 -1
  71. package/dist/{chunk-31c2vpq0.js → chunk-qeqwe5b1.js} +2 -2
  72. package/dist/{chunk-31c2vpq0.js.map → chunk-qeqwe5b1.js.map} +1 -1
  73. package/dist/{chunk-wq42t8jq.js → chunk-qkh0xagt.js} +2 -2
  74. package/dist/{chunk-wq42t8jq.js.map → chunk-qkh0xagt.js.map} +1 -1
  75. package/dist/{chunk-j6ygdvj8.js → chunk-rb7518zz.js} +1 -1
  76. package/dist/{chunk-rkbwb3v5.js → chunk-rnd8s0n5.js} +2 -2
  77. package/dist/{chunk-rkbwb3v5.js.map → chunk-rnd8s0n5.js.map} +1 -1
  78. package/dist/{chunk-2djjs8f1.js → chunk-rnegd7ya.js} +3 -3
  79. package/dist/{chunk-2djjs8f1.js.map → chunk-rnegd7ya.js.map} +1 -1
  80. package/dist/{chunk-87y2nrjy.js → chunk-rq8b8pr5.js} +2 -2
  81. package/dist/{chunk-87y2nrjy.js.map → chunk-rq8b8pr5.js.map} +1 -1
  82. package/dist/{chunk-g22kph4n.js → chunk-rv751mxq.js} +2 -2
  83. package/dist/{chunk-g22kph4n.js.map → chunk-rv751mxq.js.map} +1 -1
  84. package/dist/{chunk-n9n4qt20.js → chunk-sbzqxtqg.js} +2 -2
  85. package/dist/{chunk-n9n4qt20.js.map → chunk-sbzqxtqg.js.map} +1 -1
  86. package/dist/{chunk-3x8zrsby.js → chunk-tdvjrftz.js} +2 -2
  87. package/dist/{chunk-3x8zrsby.js.map → chunk-tdvjrftz.js.map} +1 -1
  88. package/dist/{chunk-p27y4xrw.js → chunk-vfwpbveq.js} +2 -2
  89. package/dist/{chunk-p27y4xrw.js.map → chunk-vfwpbveq.js.map} +1 -1
  90. package/dist/{chunk-563ksar3.js → chunk-w6jff43c.js} +1 -1
  91. package/dist/{chunk-mtamgvf4.js → chunk-wckbrbzx.js} +2 -2
  92. package/dist/{chunk-mtamgvf4.js.map → chunk-wckbrbzx.js.map} +1 -1
  93. package/dist/{chunk-rma7afjd.js → chunk-wf4kywta.js} +3 -3
  94. package/dist/{chunk-rma7afjd.js.map → chunk-wf4kywta.js.map} +1 -1
  95. package/dist/{chunk-kmh402m4.js → chunk-yhgt9dxj.js} +2 -2
  96. package/dist/{chunk-kmh402m4.js.map → chunk-yhgt9dxj.js.map} +1 -1
  97. package/dist/{chunk-pwbm3x1y.js → chunk-z38m1nh5.js} +2 -2
  98. package/dist/{chunk-pwbm3x1y.js.map → chunk-z38m1nh5.js.map} +1 -1
  99. package/dist/client/index.d.ts +1 -1
  100. package/dist/client/index.d.ts.map +1 -1
  101. package/dist/client/types.d.ts +17 -1
  102. package/dist/client/types.d.ts.map +1 -1
  103. package/dist/config/index.js +1 -1
  104. package/dist/console/run.js +1 -1
  105. package/dist/container/index.js +1 -1
  106. package/dist/database/index.js +1 -1
  107. package/dist/email/index.js +1 -1
  108. package/dist/facades/Url.d.ts +29 -1
  109. package/dist/facades/Url.d.ts.map +1 -1
  110. package/dist/facades/index.js +1 -1
  111. package/dist/foundation/index.js +1 -1
  112. package/dist/gemi.d.ts +13 -0
  113. package/dist/http/index.js +1 -1
  114. package/dist/i18n/dictionaryRuntime.js +1 -1
  115. package/dist/i18n/index.js +1 -1
  116. package/dist/kernel/index.js +1 -1
  117. package/dist/orm/Model.d.ts +17 -0
  118. package/dist/orm/Model.d.ts.map +1 -1
  119. package/dist/orm/index.d.ts +3 -1
  120. package/dist/orm/index.d.ts.map +1 -1
  121. package/dist/orm/index.js +3 -3
  122. package/dist/orm/index.js.map +5 -4
  123. package/dist/orm/json-columns.d.ts +121 -0
  124. package/dist/orm/json-columns.d.ts.map +1 -0
  125. package/dist/orm/types.d.ts +57 -5
  126. package/dist/orm/types.d.ts.map +1 -1
  127. package/dist/server/index.js +2 -2
  128. package/dist/server/index.js.map +1 -1
  129. package/dist/services/index.js +2 -2
  130. package/dist/services/index.js.map +1 -1
  131. package/dist/services/queue/work.js +1 -1
  132. package/dist/stats/route-table.js +1 -1
  133. package/dist/support/index.js +1 -1
  134. package/dist/utils/apiUrl.d.ts +19 -0
  135. package/dist/utils/apiUrl.d.ts.map +1 -0
  136. package/dist/vitest/index.js +1 -1
  137. package/package.json +1 -1
  138. package/dist/chunk-fqqbnp0z.js +0 -5
  139. package/dist/chunk-r52harpp.js +0 -117
  140. /package/dist/{chunk-pq657qcp.js.map → chunk-198ywkt2.js.map} +0 -0
  141. /package/dist/{chunk-fka28ceg.js.map → chunk-1a11x8ww.js.map} +0 -0
  142. /package/dist/{chunk-nhdx7cpz.js.map → chunk-1q5eagpm.js.map} +0 -0
  143. /package/dist/{chunk-65wy1r1a.js.map → chunk-3nf0nmpp.js.map} +0 -0
  144. /package/dist/{chunk-bsa6b82q.js.map → chunk-41bvpent.js.map} +0 -0
  145. /package/dist/{chunk-29jmaj16.js.map → chunk-4y74s15p.js.map} +0 -0
  146. /package/dist/{chunk-63xwah5k.js.map → chunk-ja1289jh.js.map} +0 -0
  147. /package/dist/{chunk-j6ygdvj8.js.map → chunk-rb7518zz.js.map} +0 -0
  148. /package/dist/{chunk-563ksar3.js.map → chunk-w6jff43c.js.map} +0 -0
@@ -0,0 +1,121 @@
1
+ import type { ModelSchema } from "./schema";
2
+ /**
3
+ * Typed `Json` columns (#995): a schema per column, declared once on the
4
+ * model's class, parsed on every read and validated on every write.
5
+ *
6
+ * ```ts
7
+ * export class PageBrief extends PageBriefModel {
8
+ * static $json = {
9
+ * heroes: s.array(HeroSchema),
10
+ * styles: { schema: s.array(StyleSchema), invalid: "null" },
11
+ * };
12
+ * }
13
+ * ```
14
+ *
15
+ * Applied in `Model.$exec` at the same two places as encrypted columns:
16
+ *
17
+ * - **Writes** validate the model's *own* columns in `data` (and an upsert's
18
+ * `create` / `update`), and write the parsed value. A nested write into a
19
+ * related model runs through that model's own `$exec`, which validates its
20
+ * own columns.
21
+ * - **Reads** parse the model's own rows after shaping, and the rows of a
22
+ * folded (lateral) include on the child's behalf, since those never enter
23
+ * the child's `$exec`.
24
+ *
25
+ * The schemas are read from the class *registered* under the model's name,
26
+ * not from `this`: the generated base, the app's subclass and every
27
+ * `Model.on(...)` variant share one set of columns, and a read through the
28
+ * generated base must not hand back an unparsed value the types call parsed.
29
+ *
30
+ * A schema is anything with gemi's `safeParse` (`s` from `gemi/ai`):
31
+ * `{ ok: true, value } | { ok: false, errors }`. Only the parsed `value` is
32
+ * written or returned, so keys the schema does not know are stripped.
33
+ */
34
+ /** What `safeParse` answers. The shape of gemi's `s` schemas. */
35
+ export type JsonSchemaResult<T> = {
36
+ ok: true;
37
+ value: T;
38
+ } | {
39
+ ok: false;
40
+ errors: string[];
41
+ };
42
+ /** A schema a `Json` column can be declared with: gemi's `s` builders, or anything shaped like them. */
43
+ export interface JsonColumnSchema<T = unknown> {
44
+ parse(value: unknown): T;
45
+ safeParse(value: unknown): JsonSchemaResult<T>;
46
+ }
47
+ /**
48
+ * What a read does with a stored value the schema refuses: `"throw"` (the
49
+ * default) raises `JsonColumnError`; `"null"` answers `null`; a function
50
+ * answers its own value (a fallback for rows written before the shape
51
+ * changed).
52
+ */
53
+ export type JsonColumnInvalid<T> = "throw" | "null" | ((value: unknown, errors: string[]) => T);
54
+ /** One column's declaration: a schema, or a schema with what to do with a stored value it refuses. */
55
+ export type JsonColumnSpec<T = any> = JsonColumnSchema<T> | {
56
+ schema: JsonColumnSchema<T>;
57
+ invalid?: JsonColumnInvalid<T>;
58
+ };
59
+ /** `static $json` on a model: a column name to its declaration. */
60
+ export type JsonColumnSpecs = Record<string, JsonColumnSpec>;
61
+ /**
62
+ * A stored `Json` value its column's schema refused on a read, with
63
+ * `invalid: "throw"` (the default).
64
+ */
65
+ export declare class JsonColumnError extends Error {
66
+ readonly column: {
67
+ model: string;
68
+ field: string;
69
+ };
70
+ readonly value: unknown;
71
+ readonly errors: string[];
72
+ constructor(column: {
73
+ model: string;
74
+ field: string;
75
+ }, value: unknown, errors: string[]);
76
+ }
77
+ interface Column {
78
+ field: string;
79
+ nullable: boolean;
80
+ schema: JsonColumnSchema;
81
+ invalid: JsonColumnInvalid<unknown>;
82
+ }
83
+ /**
84
+ * The model's typed `Json` columns, from the class registered under its name
85
+ * (else `fallback`, the class `$exec` was called on). Checked once per class:
86
+ * a key that is not a `Json` column of the model, or a value that is not a
87
+ * schema, throws.
88
+ */
89
+ export declare function jsonColumnsOf(schema: ModelSchema, fallback: object): readonly Column[];
90
+ export declare function markJsonLenient<T extends object>(options: T): T;
91
+ export declare function isJsonLenient(options: unknown): boolean;
92
+ /**
93
+ * Parses this model's typed `Json` columns on `rows`, in place. `lenient`:
94
+ * see `markJsonLenient`.
95
+ */
96
+ export declare function parseJsonRows(columns: readonly Column[], model: string, rows: readonly unknown[], lenient?: boolean): void;
97
+ /**
98
+ * Parses the rows a strategy folded into the parent's statement, which never
99
+ * passed through their own model's `$exec`. Recursive, because the fold is.
100
+ */
101
+ export declare function parseJsonFolded(relation: {
102
+ as: string;
103
+ model: string;
104
+ folded?: readonly {
105
+ as: string;
106
+ model: string;
107
+ folded?: readonly unknown[];
108
+ }[];
109
+ }, parents: readonly unknown[], lenient?: boolean): void;
110
+ /**
111
+ * `args` with this model's typed `Json` columns validated and replaced by
112
+ * their parsed values, or `args` itself when there is nothing to check. Never
113
+ * mutates the caller's objects. A value the schema refuses throws
114
+ * `InvalidArgumentError`. On a nullable column the null sentinels (`DbNull`,
115
+ * `JsonNull`) pass. On a non-nullable one `DbNull` is refused, and `JsonNull`
116
+ * only passes when the schema accepts `null`: otherwise the row could be
117
+ * written and then never read.
118
+ */
119
+ export declare function validateJsonWriteArgs(columns: readonly Column[], model: string, op: string, args: any): any;
120
+ export {};
121
+ //# sourceMappingURL=json-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-columns.d.ts","sourceRoot":"","sources":["../../orm/json-columns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,iEAAiE;AACjE,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE3F,wGAAwG;AACxG,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO;IAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC;IACzB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAChD;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAEhG,sGAAsG;AACtG,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,GAAG,IAC9B,gBAAgB,CAAC,CAAC,CAAC,GACnB;IAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAEpE,mEAAmE;AACnE,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE7D;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAEtB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;aACxC,KAAK,EAAE,OAAO;aACd,MAAM,EAAE,MAAM,EAAE;gBAFhB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EACxC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EAAE;CAUnC;AAED,UAAU,MAAM;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;CACrC;AAKD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAmBtF;AA2CD,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAE/D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAMvD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,OAAO,UAAQ,GACd,IAAI,CAaN;AAYD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE;IACR,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,EAAE,CAAC;CAChF,EACD,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,OAAO,UAAQ,GACd,IAAI,CAoBN;AAID;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,GAAG,GACR,GAAG,CAgCL"}
@@ -46,6 +46,58 @@ export type JsonInput = Exclude<JsonValue, null> | DbNullValue | JsonNullValue;
46
46
  * where `{ equals: JsonNull }` is not a filter it accepts.
47
47
  */
48
48
  type IsJson<V> = [Exclude<JsonValue, null>] extends [NonNullable<V>] ? true : false;
49
+ /**
50
+ * The application's typed `Json` columns: `{ PageBrief: typeof PageBrief.$json }`.
51
+ *
52
+ * Augmented from the app's `app/models` barrel by the framework's own
53
+ * `gemi.d.ts`, the way `RPC` is from its routes, keyed by each exported
54
+ * class's name. Empty here, so every `Json` column keeps `JsonValue` until a
55
+ * model declares `static $json`.
56
+ */
57
+ export interface JsonColumns {
58
+ }
59
+ type JsonSpecSchema<S> = S extends {
60
+ schema: infer X;
61
+ } ? X : S;
62
+ type JsonSchemaOutput<S> = S extends {
63
+ parse(value: unknown): infer T;
64
+ } ? T : JsonValue;
65
+ type JsonSpecOutput<S> = JsonSchemaOutput<JsonSpecSchema<S>> | (S extends {
66
+ invalid: "null";
67
+ } ? null : never);
68
+ /**
69
+ * What the generated descriptor carries for each `Json` column: the type a
70
+ * read answers and the type a write takes. The schema's when the model
71
+ * declares one (`JsonColumns`), else `JsonValue` and `JsonInput`, which is
72
+ * what every `Json` column had before.
73
+ */
74
+ export type JsonColumnTypes<M extends string, F extends string, Nullable extends boolean> = M extends keyof JsonColumns ? F extends keyof JsonColumns[M] ? {
75
+ output: JsonSpecOutput<JsonColumns[M][F]> | (Nullable extends true ? null : never);
76
+ input: Exclude<JsonSchemaOutput<JsonSpecSchema<JsonColumns[M][F]>>, null> | (Nullable extends true ? DbNullValue | JsonNullValue : never);
77
+ } : {
78
+ output: JsonValue | (Nullable extends true ? null : never);
79
+ input: JsonInput;
80
+ } : {
81
+ output: JsonValue | (Nullable extends true ? null : never);
82
+ input: JsonInput;
83
+ };
84
+ /** A `Json` column's write type, for the generated `create` scalars. */
85
+ export type JsonColumnInput<M extends string, F extends string, Nullable extends boolean = true> = JsonColumnTypes<M, F, Nullable>["input"];
86
+ type JsonColumnPair = {
87
+ output: unknown;
88
+ input: unknown;
89
+ };
90
+ type JsonTypesOf<M> = M extends {
91
+ json: infer J extends Record<string, JsonColumnPair>;
92
+ } ? J : {};
93
+ /**
94
+ * The row's column types: `scalars` with each typed `Json` column replaced
95
+ * by its schema's output. `scalars` itself stays the raw column type, which
96
+ * is what filters, sorting and grouping are built from.
97
+ */
98
+ type Columns<M extends ModelTypeInfo> = [keyof JsonTypesOf<M>] extends [never] ? Scalars<M> : {
99
+ [K in keyof Scalars<M>]: K extends keyof JsonTypesOf<M> ? (JsonTypesOf<M>[K] & JsonColumnPair)["output"] : Scalars<M>[K];
100
+ };
49
101
  /** One relation, as the generated descriptor describes it. */
50
102
  export interface RelationInfo {
51
103
  kind: "one" | "many";
@@ -135,13 +187,13 @@ type RelationCountPayload<M extends ModelTypeInfo, A> = "select" extends keyof A
135
187
  [K in keyof Relations<M> as Relations<M>[K]["kind"] extends "many" ? K : never]: number;
136
188
  };
137
189
  type SelectPayload<M extends ModelTypeInfo, S> = {
138
- [K in Requested<S>]: K extends keyof Scalars<M> ? Scalars<M>[K] : K extends keyof Relations<M> ? RelationPayload<Relations<M>[K], S[K]> : K extends "_count" ? RelationCountPayload<M, S[K]> : never;
190
+ [K in Requested<S>]: K extends keyof Scalars<M> ? Columns<M>[K] : K extends keyof Relations<M> ? RelationPayload<Relations<M>[K], S[K]> : K extends "_count" ? RelationCountPayload<M, S[K]> : never;
139
191
  };
140
192
  type IncludePayload<M extends ModelTypeInfo, I> = {
141
193
  [K in Requested<I>]: K extends keyof Relations<M> ? RelationPayload<Relations<M>[K], I[K]> : K extends "_count" ? RelationCountPayload<M, I[K]> : never;
142
194
  };
143
195
  /** `omit: { email: true }` removes the column from the default selection. */
144
- type OmitPayload<M extends ModelTypeInfo, O> = Omit<Scalars<M>, Requested<O>>;
196
+ type OmitPayload<M extends ModelTypeInfo, O> = Omit<Columns<M>, Requested<O>>;
145
197
  /**
146
198
  * The result of an operation, narrowed by the arguments it was given.
147
199
  *
@@ -178,10 +230,10 @@ type OmitPayload<M extends ModelTypeInfo, O> = Omit<Scalars<M>, Requested<O>>;
178
230
  * rejects `orderBey` inside a relation's arguments, which nothing else catches.
179
231
  */
180
232
  export type Payload<M extends ModelTypeInfo, A> = "select" extends keyof A ? [A["select"]] extends [undefined] ? DefaultPayload<M, A> : SelectPayload<M, NonNullable<A["select"]>> : DefaultPayload<M, A>;
181
- type DefaultPayload<M extends ModelTypeInfo, A> = "omit" extends keyof A ? [A["omit"]] extends [undefined] ? WithInclude<M, A, Scalars<M>> : WithInclude<M, A, OmitPayload<M, NonNullable<A["omit"]>>> : WithInclude<M, A, Scalars<M>>;
233
+ type DefaultPayload<M extends ModelTypeInfo, A> = "omit" extends keyof A ? [A["omit"]] extends [undefined] ? WithInclude<M, A, Columns<M>> : WithInclude<M, A, OmitPayload<M, NonNullable<A["omit"]>>> : WithInclude<M, A, Columns<M>>;
182
234
  type WithInclude<M extends ModelTypeInfo, A, Base> = "include" extends keyof A ? [A["include"]] extends [undefined] ? Base : Base & IncludePayload<M, NonNullable<A["include"]>> : Base;
183
235
  /** Every column of the model, which is what `wrap` demands and `include` keeps. */
184
- export type Row<M extends ModelTypeInfo> = Scalars<M>;
236
+ export type Row<M extends ModelTypeInfo> = Columns<M>;
185
237
  /**
186
238
  * The scalar operators, from `compile/where.ts`'s own table.
187
239
  *
@@ -895,7 +947,7 @@ type UpdateField<V> = IsJson<V> extends true ? JsonInput : [NonNullable<V>] exte
895
947
  set?: V;
896
948
  };
897
949
  export type UpdateInput<M extends ModelTypeInfo> = {
898
- [K in keyof Scalars<M>]?: UpdateField<Scalars<M>[K]>;
950
+ [K in keyof Scalars<M>]?: K extends keyof JsonTypesOf<M> ? (JsonTypesOf<M>[K] & JsonColumnPair)["input"] : UpdateField<Scalars<M>[K]>;
899
951
  } & {
900
952
  [K in keyof Relations<M>]?: NestedUpdate<Relations<M>[K]>;
901
953
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../orm/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../orm/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{Ca as f}from"../chunk-kk18xqgc.js";import{Da as S}from"../chunk-ymdpt00k.js";import{fl as Q,hl as Z,il as P,jl as y,kl as U,ll as A}from"../chunk-mzkzgp2j.js";import{pl as H}from"../chunk-apga49vp.js";import"../chunk-fqqbnp0z.js";import{wl as F}from"../chunk-jzpbwvbt.js";var x="/__gemi__/health",$=Symbol.for("gemi.server.health");function V(){let z=globalThis;return z[$]??={lagMs:0,consecutiveBreaches:0,degraded:!1,timer:void 0},z[$]}function W(){let z=V(),B=Q();return{healthy:!B&&!z.degraded,shuttingDown:B,lagMs:z.lagMs,consecutiveBreaches:z.consecutiveBreaches}}function E(z,B){let I=V();I.lagMs=z,I.consecutiveBreaches=z>B.maxLagMs?I.consecutiveBreaches+1:0;let J=I.consecutiveBreaches>=B.breaches;if(J&&!I.degraded)console.warn(`[gemi] Health: degraded (event-loop lag ${Math.round(z)}ms, ${I.consecutiveBreaches} samples in a row over ${B.maxLagMs}ms).`);else if(!J&&I.degraded)console.log(`[gemi] Health: recovered (event-loop lag ${Math.round(z)}ms).`);I.degraded=J}function G(z){let B=V();if(B.timer)return;let I=performance.now()+z.intervalMs;B.timer=setInterval(()=>{let J=performance.now();E(Math.max(0,J-I),z),I=J+z.intervalMs},z.intervalMs),B.timer.unref?.()}function _(z=process.env){return{paths:D(z.GEMI_HEALTH_PATH),intervalMs:O("GEMI_HEALTH_INTERVAL_MS",z.GEMI_HEALTH_INTERVAL_MS,500),maxLagMs:O("GEMI_HEALTH_MAX_LAG_MS",z.GEMI_HEALTH_MAX_LAG_MS,1000),breaches:Math.ceil(O("GEMI_HEALTH_BREACHES",z.GEMI_HEALTH_BREACHES,3))}}function D(z){if(z===void 0||z.trim()==="")return[x];if(z.trim().toLowerCase()==="off")return[];let B=z.split(",").map((J)=>J.trim()).filter(Boolean);if(B.filter((J)=>!J.startsWith("/")).length>0)throw Error(`GEMI_HEALTH_PATH: expected comma-separated paths starting with "/", or "off"; got ${JSON.stringify(z)}.`);return B}function O(z,B,I){if(B===void 0||B.trim()==="")return I;let J=Number(B);if(Number.isFinite(J)&&J>0)return J;return console.warn(`[gemi] Ignoring ${z}="${B}": expected a positive number.`),I}function j(z,B){if(B.length===0)return z;let I=new Set(B);return async(J,K)=>{if(!B.some((b)=>J.url.includes(b))||!I.has(new URL(J.url).pathname))return z(J,K);return y(R(J.method))}}function R(z){let B={"Cache-Control":"no-store","Content-Type":"text/plain; charset=utf-8"};if(z!=="GET"&&z!=="HEAD")return new Response("Method Not Allowed",{status:405,headers:{...B,Allow:"GET, HEAD"}});let{healthy:I,shuttingDown:J}=W();return new Response(z==="HEAD"?null:I?"ok":J?"shutting down":"degraded",{status:I?200:503,headers:B})}var L=Symbol.for("gemi.server.devGeneration"),X={graceMs:1e4,providerTimeoutMs:5000};class Y{app;inFlight=0;waiters=new Set;constructor(z){this.app=z}track(z){return async(B,I)=>{this.inFlight++;try{return await z(B,I)}finally{if(this.inFlight--,this.inFlight===0)this.wake()}}}get pending(){return this.inFlight}async retire({graceMs:z,providerTimeoutMs:B}){try{await this.idle(z),await Promise.resolve().then(()=>this.app.shutdown({timeoutMs:B}))}catch(I){C(I)}}idle(z){if(this.inFlight===0)return Promise.resolve();return new Promise((B)=>{let I=()=>{clearTimeout(J),this.waiters.delete(I),B()},J=setTimeout(I,z);this.waiters.add(I)})}wake(){for(let z of this.waiters)z()}}function N(z,B=X){let I=globalThis,J=I[L];if(I[L]=z,!J||J===z||typeof J.retire!=="function")return Promise.resolve();let K=J.retire.bind(J);return Promise.resolve().then(()=>K(B)).catch(C)}function C(z){console.error("[gemi] Shutting down the application a reload replaced failed:",z)}class k{app;instrumentation;handleSignals;server;stopping;settings;constructor(z){this.app=new S({kernel:z.kernel}),this.handleSignals=z.handleSignals??!0,this.instrumentation=U(z.instrumentation??((B,I)=>I(B)))}async start(){process.env.ROOT_DIR=H();let z=Bun.env.NODE_ENV==="production",B=_();if(z)G(B);let I=j(this.instrumentation,B.paths);if(z){if(this.handleSignals)A(()=>this.stop());this.settings=Z()}try{await this.app.waitForBoot()}catch(J){if(!z)this.app.shutdown({timeoutMs:X.providerTimeoutMs});throw J}if(z){let{httpProd:J}=await import("../chunk-31c2vpq0.js");this.server=await J(this.app,I)}else{f();let{httpDev:J}=await import("../chunk-xj9xd80t.js"),K=new Y(this.app);this.server=await J(this.app,K.track(I)),N(K)}return this.server}stop(z={}){let B=this.app.sockets();return this.stopping??=P({server:this.server,closeSockets:B?()=>B.shutdown():void 0,shutdownProviders:(I)=>this.app.shutdown(I),settings:{...this.settings??Z(),...z}}),this.stopping}}export{W as liveness,Q as isShuttingDown,k as Server};
2
+ import{Ca as f}from"../chunk-kk18xqgc.js";import{Da as S}from"../chunk-403b2rfp.js";import{fl as Q,hl as Z,il as P,jl as y,kl as U,ll as A}from"../chunk-mzkzgp2j.js";import{pl as H}from"../chunk-apga49vp.js";import"../chunk-6tkkvaqg.js";import{xl as F}from"../chunk-baj76zja.js";var x="/__gemi__/health",$=Symbol.for("gemi.server.health");function V(){let z=globalThis;return z[$]??={lagMs:0,consecutiveBreaches:0,degraded:!1,timer:void 0},z[$]}function W(){let z=V(),B=Q();return{healthy:!B&&!z.degraded,shuttingDown:B,lagMs:z.lagMs,consecutiveBreaches:z.consecutiveBreaches}}function E(z,B){let I=V();I.lagMs=z,I.consecutiveBreaches=z>B.maxLagMs?I.consecutiveBreaches+1:0;let J=I.consecutiveBreaches>=B.breaches;if(J&&!I.degraded)console.warn(`[gemi] Health: degraded (event-loop lag ${Math.round(z)}ms, ${I.consecutiveBreaches} samples in a row over ${B.maxLagMs}ms).`);else if(!J&&I.degraded)console.log(`[gemi] Health: recovered (event-loop lag ${Math.round(z)}ms).`);I.degraded=J}function G(z){let B=V();if(B.timer)return;let I=performance.now()+z.intervalMs;B.timer=setInterval(()=>{let J=performance.now();E(Math.max(0,J-I),z),I=J+z.intervalMs},z.intervalMs),B.timer.unref?.()}function _(z=process.env){return{paths:D(z.GEMI_HEALTH_PATH),intervalMs:O("GEMI_HEALTH_INTERVAL_MS",z.GEMI_HEALTH_INTERVAL_MS,500),maxLagMs:O("GEMI_HEALTH_MAX_LAG_MS",z.GEMI_HEALTH_MAX_LAG_MS,1000),breaches:Math.ceil(O("GEMI_HEALTH_BREACHES",z.GEMI_HEALTH_BREACHES,3))}}function D(z){if(z===void 0||z.trim()==="")return[x];if(z.trim().toLowerCase()==="off")return[];let B=z.split(",").map((J)=>J.trim()).filter(Boolean);if(B.filter((J)=>!J.startsWith("/")).length>0)throw Error(`GEMI_HEALTH_PATH: expected comma-separated paths starting with "/", or "off"; got ${JSON.stringify(z)}.`);return B}function O(z,B,I){if(B===void 0||B.trim()==="")return I;let J=Number(B);if(Number.isFinite(J)&&J>0)return J;return console.warn(`[gemi] Ignoring ${z}="${B}": expected a positive number.`),I}function j(z,B){if(B.length===0)return z;let I=new Set(B);return async(J,K)=>{if(!B.some((b)=>J.url.includes(b))||!I.has(new URL(J.url).pathname))return z(J,K);return y(R(J.method))}}function R(z){let B={"Cache-Control":"no-store","Content-Type":"text/plain; charset=utf-8"};if(z!=="GET"&&z!=="HEAD")return new Response("Method Not Allowed",{status:405,headers:{...B,Allow:"GET, HEAD"}});let{healthy:I,shuttingDown:J}=W();return new Response(z==="HEAD"?null:I?"ok":J?"shutting down":"degraded",{status:I?200:503,headers:B})}var L=Symbol.for("gemi.server.devGeneration"),X={graceMs:1e4,providerTimeoutMs:5000};class Y{app;inFlight=0;waiters=new Set;constructor(z){this.app=z}track(z){return async(B,I)=>{this.inFlight++;try{return await z(B,I)}finally{if(this.inFlight--,this.inFlight===0)this.wake()}}}get pending(){return this.inFlight}async retire({graceMs:z,providerTimeoutMs:B}){try{await this.idle(z),await Promise.resolve().then(()=>this.app.shutdown({timeoutMs:B}))}catch(I){C(I)}}idle(z){if(this.inFlight===0)return Promise.resolve();return new Promise((B)=>{let I=()=>{clearTimeout(J),this.waiters.delete(I),B()},J=setTimeout(I,z);this.waiters.add(I)})}wake(){for(let z of this.waiters)z()}}function N(z,B=X){let I=globalThis,J=I[L];if(I[L]=z,!J||J===z||typeof J.retire!=="function")return Promise.resolve();let K=J.retire.bind(J);return Promise.resolve().then(()=>K(B)).catch(C)}function C(z){console.error("[gemi] Shutting down the application a reload replaced failed:",z)}class k{app;instrumentation;handleSignals;server;stopping;settings;constructor(z){this.app=new S({kernel:z.kernel}),this.handleSignals=z.handleSignals??!0,this.instrumentation=U(z.instrumentation??((B,I)=>I(B)))}async start(){process.env.ROOT_DIR=H();let z=Bun.env.NODE_ENV==="production",B=_();if(z)G(B);let I=j(this.instrumentation,B.paths);if(z){if(this.handleSignals)A(()=>this.stop());this.settings=Z()}try{await this.app.waitForBoot()}catch(J){if(!z)this.app.shutdown({timeoutMs:X.providerTimeoutMs});throw J}if(z){let{httpProd:J}=await import("../chunk-qeqwe5b1.js");this.server=await J(this.app,I)}else{f();let{httpDev:J}=await import("../chunk-g23xnzc1.js"),K=new Y(this.app);this.server=await J(this.app,K.track(I)),N(K)}return this.server}stop(z={}){let B=this.app.sockets();return this.stopping??=P({server:this.server,closeSockets:B?()=>B.shutdown():void 0,shutdownProviders:(I)=>this.app.shutdown(I),settings:{...this.settings??Z(),...z}}),this.stopping}}export{W as liveness,Q as isShuttingDown,k as Server};
3
3
 
4
- //# debugId=B36181B2C42D38F264756E2164756E21
4
+ //# debugId=3B2C064BF807ADA964756E2164756E21
@@ -7,6 +7,6 @@
7
7
  "import { App } from \"../app\";\nimport { Kernel } from \"../kernel\";\nimport { projectRoot } from \"../support/discover\";\nimport { healthSettings, serveHealth, startLivenessSampler } from \"./health\";\nimport { DevGeneration, devRetireDefaults, replaceDevGeneration } from \"./devReload\";\nimport {\n drain,\n installShutdownSignals,\n serveForShutdown,\n shutdownSettings,\n type ShutdownSettings,\n} from \"./shutdown\";\nimport { Instrumentation } from \"./types\";\nimport { watchEnv } from \"./watchEnv\";\n\nexport class Server {\n private app: App;\n private instrumentation: Instrumentation;\n private handleSignals: boolean;\n private server: Bun.Server<unknown> | undefined;\n private stopping: Promise<number> | undefined;\n private settings: ShutdownSettings | undefined;\n\n constructor(params: {\n kernel: new () => Kernel;\n instrumentation?: Instrumentation;\n /**\n * Drain on `SIGTERM`/`SIGINT` and exit — production only. `false` leaves\n * the signals to the app, which can call `stop()` itself.\n */\n handleSignals?: boolean;\n }) {\n this.app = new App({ kernel: params.kernel });\n this.handleSignals = params.handleSignals ?? true;\n this.instrumentation = serveForShutdown(\n params.instrumentation ??\n ((req: Request, next: (req: Request) => Promise<Response>) => next(req)),\n );\n }\n\n /**\n * Boots the application and starts listening. Resolves with the `Bun.Server`\n * once it is accepting requests.\n */\n async start(): Promise<Bun.Server<unknown>> {\n // Before the boot, not after: `httpDev`/`httpProd` set this too, but they\n // are imported below — after every provider's `boot()` has run — so a\n // service that resolves a path during boot used to read `undefined`\n // (`services/logging`, #423). Same rule `httpProd` computes it with, so\n // the assignment it makes a moment later is the same value.\n //\n // It doubles as the marker for \"this process is serving\": nothing else\n // sets `ROOT_DIR`, so a console command or a migration — which boot the\n // same providers through `runConsole` — can tell that it is not one, and\n // skip work that only a server should do at boot.\n process.env.ROOT_DIR = projectRoot();\n\n // Read once, ahead of the boot, so the signal handling below and the mode\n // that starts after the boot cannot disagree: whatever a provider's\n // `boot()` does to the environment, this process is the server it was\n // started as.\n const production = process.env.NODE_ENV === \"production\";\n\n // Read before the boot, so a bad `GEMI_HEALTH_PATH` fails the deploy at\n // once. The route is served in both modes; the lag sampler runs only in\n // production, where a `bun --hot` reload or a Vite compile cannot stall\n // the loop and read as an outage.\n const health = healthSettings();\n if (production) startLivenessSampler(health);\n // The outermost layer: a probe is answered ahead of the app's\n // instrumentation and the shutdown refusal (#48).\n const instrumentation = serveHealth(this.instrumentation, health.paths);\n\n if (production) {\n // Before the boot, not just before listening: the whole start-up is a\n // window in which a signal can arrive, and the slow part of it is the\n // boot — a connection pool, the config, the dictionaries. A rolling\n // update that `SIGTERM`s a pod two seconds in finds no listener\n // installed, and the default action for both signals is to kill the\n // process on the spot: no provider's `shutdown()`, no pool closed,\n // nothing flushed. Installing here makes that a drain like any other.\n // `stop()` handles a server that does not exist yet (nothing to close,\n // requests cannot be in flight) and `Application.shutdown` calls the\n // hooks of providers that registered but never booted, swallowing\n // whatever they throw — half a boot is exactly when a hook is most\n // likely to trip over something it expected `boot()` to have made.\n if (this.handleSignals) installShutdownSignals(() => this.stop());\n // Read now, so a bad value is warned about while the operator is\n // watching the deploy, not first at the shutdown it spoils — and so a\n // signal during the boot drains on the configured budget rather than on\n // whatever `stop()` reads at the time.\n this.settings = shutdownSettings();\n }\n\n // Phase two of the boot. `new App({ kernel })` already ran every provider's\n // synchronous `register()`; this awaits their `boot()` before the first\n // request is served.\n try {\n await this.app.waitForBoot();\n } catch (error) {\n // A `bun --hot` reload whose boot threw: the previous application keeps\n // serving, and this one never will, so whatever its providers opened\n // before the throw (the feature flags' warm-up, when they are on, has\n // opened the database pool by then) is closed now rather than left open\n // for good (#652). Production exits on a failed boot, which closes\n // everything anyway.\n if (!production) void this.app.shutdown({ timeoutMs: devRetireDefaults.providerTimeoutMs });\n throw error;\n }\n\n // Dynamic import so each mode only pulls in its own code: `httpDev` drags in\n // Vite (dev-only) and `httpProd` reads the built `dist/` manifests — neither\n // should load in the other environment.\n if (production) {\n const { httpProd } = await import(\"./httpProd.js\");\n this.server = await httpProd(this.app, instrumentation);\n } else {\n // Dev only: reload `.env` into process.env on change so config edits take\n // effect without restarting the dev server (Bun reads `.env` only at\n // startup, even under `--hot`). No signal handling here: `bun --hot`\n // re-runs this on every reload, and a Ctrl+C in development should stop\n // the server now, not after a drain.\n watchEnv();\n const { httpDev } = await import(\"./httpDev.js\");\n const generation = new DevGeneration(this.app);\n this.server = await httpDev(this.app, generation.track(instrumentation));\n // Only now, with the new fetch handler live, has the application this\n // reload replaced stopped receiving requests; it is shut down once the\n // ones it is serving finish (#652). Not awaited, so the reload is not\n // held up by it.\n void replaceDevGeneration(generation);\n }\n return this.server;\n }\n\n /**\n * Stops the server gracefully and resolves with the exit code it earned: 0\n * when the in-flight requests drained and every provider shut down in time,\n * 1 otherwise. Does not exit the process — the signal handler does that.\n *\n * The order is `drain` in `./shutdown`: `isShuttingDown()` turns true, the\n * listener closes, in-flight requests finish under the grace period, then\n * every provider's `shutdown()` runs in reverse registration order.\n * Idempotent: a second call returns the first call's promise. Settings\n * default to the `GEMI_SHUTDOWN_*` environment variables.\n */\n stop(settings: Partial<ShutdownSettings> = {}): Promise<number> {\n const sockets = this.app.sockets();\n this.stopping ??= drain({\n server: this.server,\n // Once the listener is closed: `bye` to every broadcast socket, which\n // the graceful stop would otherwise wait on for good.\n closeSockets: sockets ? () => sockets.shutdown() : undefined,\n shutdownProviders: (options) => this.app.shutdown(options),\n settings: { ...(this.settings ?? shutdownSettings()), ...settings },\n });\n return this.stopping;\n }\n}\n"
8
8
  ],
9
9
  "mappings": "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",
10
- "debugId": "B36181B2C42D38F264756E2164756E21",
10
+ "debugId": "3B2C064BF807ADA964756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{cb as A8}from"../chunk-fcqx2t0p.js";import{Ab as D8,Bb as F8,Cb as H8,Db as U8,Eb as C4,Fb as K6,Gb as C,Hb as O8,Ib as S8,Jb as R8,Kb as _8,Lb as f8,Mb as C8,Nb as k8,Ob as b8,Pb as T8,Qb as P8,Rb as V8,Sb as I8,Tb as v8,Ub as q8,Vb as w8,Wb as y8,db as yZ,eb as AZ,fb as hZ,gb as gZ,hb as EZ,ib as S4,jb as mZ,kb as F4,lb as H4,mb as v1,nb as cZ,ob as uZ,pb as K8,tb as G8,ub as z8,vb as X8,wb as B8,xb as L8,yb as N8,zb as x8}from"../chunk-6vg2jvdp.js";import{Zb as _4}from"../chunk-nhdx7cpz.js";import{Ad as J8,Bd as Q8,Cd as Y8,nd as pZ,od as dZ,pd as lZ,qd as nZ,rd as iZ,sd as oZ,td as aZ,ud as tZ,vd as rZ,wd as eZ,xd as W8,yd as Z8,zd as $8}from"../chunk-2b3hh9xw.js";import{Dd as sZ}from"../chunk-v9z4x5j2.js";import{Ed as HZ,Fd as UZ,Gd as OZ,Hd as SZ,Id as RZ,Jd as _Z,Kd as fZ,Ld as CZ,Md as kZ,Nd as bZ,Od as TZ,Pd as PZ,Qd as VZ,Rd as IZ,Sd as vZ,Td as qZ,Yd as wZ}from"../chunk-877yc341.js";import{Zd as j8,_d as M8}from"../chunk-ydkv9e8w.js";import"../chunk-eqv7yxk7.js";import{$f as a5,Ae as gW,Be as EW,Bf as v5,Ce as mW,Cf as q5,Cg as q1,De as cW,Df as y5,Ee as uW,Fe as pW,Ge as dW,Gf as A5,He as lW,Hf as h5,Ie as I0,If as g5,Je as nW,Jf as E5,Ke as iW,Le as sW,Lf as m5,Me as oW,Mf as c5,Ne as aW,Nf as u5,Ng as jZ,Of as p5,Og as MZ,Pf as d5,Qf as l5,Rf as n5,Sf as i5,Tf as s5,Uf as o5,Zf as k,_f as i,af as Q5,ag as t5,bf as Y5,bg as r5,cf as K5,cg as e5,df as G5,dg as WZ,ef as z5,ff as X5,fg as ZZ,gg as $Z,hg as JZ,ie as r0,ig as QZ,je as vW,jg as YZ,ke as qW,le as wW,lf as S5,mf as R5,mg as KZ,ne as yW,nf as _5,ng as GZ,of as f5,og as zZ,pf as C5,qf as k5,re as e0,rf as b5,se as h0,sf as T5,te as g0,tf as P5,tg as XZ,ue as X4,ve as AW,vf as V5,wf as Y6,xf as I5,xg as BZ,ze as hW}from"../chunk-r52harpp.js";import"../chunk-hh5bs656.js";import"../chunk-3csz8pfk.js";import{Ai as J5,Ci as P1,Gh as z4,Hh as Y4,Ih as M1,Vh as D4,Yh as t,_h as d,ci as K4,di as L1,ei as T1,fi as tW,gi as rW,hi as eW,ii as W5,xi as Z5,yi as $5}from"../chunk-1z619xe0.js";import"../chunk-cee5gq7t.js";import{Mi as r}from"../chunk-a8n9ec43.js";import{Ui as D5,Vi as F5,Wi as b1,Xi as H5,Yi as P0,Zi as U5,_i as O5}from"../chunk-563ksar3.js";import{ej as L5,fj as N5,gj as x5}from"../chunk-n9n4qt20.js";import"../chunk-xv58jnpb.js";import{Pj as w5}from"../chunk-313593t3.js";import{Rj as B5,Sj as j5,Tj as M5}from"../chunk-86zhngpg.js";import"../chunk-attr793y.js";import"../chunk-2ery6a75.js";import"../chunk-73rzf7ys.js";import"../chunk-2x6cv37t.js";import{Jk as LZ,Kk as NZ,Lk as xZ,Mk as DZ,Ok as FZ}from"../chunk-z7tsh9qr.js";import"../chunk-mr3szvr3.js";import{Yk as w}from"../chunk-1fyn63ka.js";import"../chunk-e9z8p2fy.js";import"../chunk-g8sh9btf.js";import"../chunk-mzkzgp2j.js";import"../chunk-apga49vp.js";import"../chunk-fqqbnp0z.js";import{wl as q0}from"../chunk-jzpbwvbt.js";import{Buffer as v0}from"buffer";class w0 extends L1{client;config;constructor(...W){super();this.config=W}async connect(){let W=await import("../chunk-hcw671mg.js");return this.client??=new W.S3Client(...this.config),{sdk:W,client:this.client}}async put(W,{signal:Z}={}){Z?.throwIfAborted();let $,J,Q,Y=process.env.BUCKET_NAME;if(W instanceof Blob)$=W,Q=`${Bun.randomUUIDv7()}.${W.type.split("/")[1].split(";")[0]}`,J=W.type;else $=W.body,Q=W.name,Y=W.bucket??Y,J=W.contentType||($ instanceof Blob||$ instanceof File?$.type:void 0);J=J||void 0;let K=$ instanceof v0?$:$ instanceof Blob||$ instanceof File?v0.from(await $.arrayBuffer()):"",{sdk:G,client:X}=await this.connect();return Z?.throwIfAborted(),await X.send(new G.PutObjectCommand({Bucket:Y,Key:Q,Body:K,ContentType:J}),{abortSignal:Z}),Q}async delete(W){let Z=typeof W==="string"?W:W.name,$=(typeof W==="string"?void 0:W.bucket)??process.env.BUCKET_NAME;if(!Z)throw Error("Object name has to be specified");let{sdk:J,client:Q}=await this.connect();try{await Q.send(new J.DeleteObjectCommand({Bucket:$,Key:Z}))}catch(Y){if(Y?.name==="NoSuchKey"||Y?.$metadata?.httpStatusCode===404)return;throw Y}}async*pages(W,{bucket:Z,signal:$}){let{sdk:J,client:Q}=await this.connect(),Y;do{$?.throwIfAborted();let K=await Q.send(new J.ListObjectsV2Command({Bucket:Z??process.env.BUCKET_NAME,Prefix:W,ContinuationToken:Y}),{abortSignal:$});yield(K.Contents??[]).map((G)=>({name:G.Key,size:G.Size??0,lastModified:G.LastModified??new Date(0)})),Y=K.IsTruncated?K.NextContinuationToken:void 0}while(Y)}async*objects(W,Z={}){for await(let $ of this.pages(W,Z))yield*$}async deletePrefix(W,Z={}){K4(W);let $=Z.bucket??process.env.BUCKET_NAME,{sdk:J,client:Q}=await this.connect(),Y=0;for await(let K of this.pages(W,{...Z,bucket:$})){if(K.length===0)continue;Z.signal?.throwIfAborted();let X=(await Q.send(new J.DeleteObjectsCommand({Bucket:$,Delete:{Objects:K.map((z)=>({Key:z.name})),Quiet:!0}}),{abortSignal:Z.signal}))?.Errors??[];if(X.length>0){let z=X[0];throw Error(`S3 could not delete ${X.length} object(s) under "${W}", e.g. "${z.Key}": ${z.Code??"unknown"} ${z.Message??""}`.trim())}Y+=K.length}return Y}async list(W){let{sdk:Z,client:$}=await this.connect();return await $.send(new Z.ListObjectsV2Command({Bucket:process.env.BUCKET_NAME,Prefix:W}))}async fetch(W,{signal:Z}={}){Z?.throwIfAborted();let $=process.env.BUCKET_NAME,J;if(typeof W==="string")J=W;else $=W.bucket??$,J=W.name;if(!J)throw Error("Object name has to be specified");let{sdk:Q,client:Y}=await this.connect();Z?.throwIfAborted();let K=await Y.send(new Q.GetObjectCommand({Bucket:$,Key:J}),{abortSignal:Z}),G=T1(K.Body.transformToWebStream(),Z);return Z?.throwIfAborted(),new Response(G,{headers:{"Content-Type":K.ContentType,"Content-Length":K.ContentLength.toString(),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":K.LastModified?.toUTCString()||"",ETag:K.ETag||""}})}async read(W){let Z=typeof W==="string"?{name:W}:W,$=Z.bucket??process.env.BUCKET_NAME,{name:J,range:Q=null}=Z;if(!J)throw Error("Object name has to be specified");let{sdk:Y,client:K}=await this.connect(),G;try{G=await K.send(new Y.GetObjectCommand({Bucket:$,Key:J,Range:Q?Y4(Q):void 0}))}catch(j){if(j?.name==="InvalidRange"||j?.$metadata?.httpStatusCode===416)throw new t(await this.size({name:J,bucket:$}));if(j?.name==="NoSuchKey"||j?.$metadata?.httpStatusCode===404)throw new d(J);throw j}let X=M1(G.ContentRange),z=Boolean(X)&&G.$metadata?.httpStatusCode===206,B=X?.total??G.ContentLength??0;return{body:G.Body.transformToWebStream(),start:X?.start??0,end:X?.end??B-1,total:B,partial:z,type:G.ContentType??"application/octet-stream",etag:G.ETag||void 0,lastModified:G.LastModified,name:J}}async size(W){let Z=typeof W==="string"?W:W.name,$=(typeof W==="string"?void 0:W.bucket)??process.env.BUCKET_NAME,{sdk:J,client:Q}=await this.connect();try{return(await Q.send(new J.HeadObjectCommand({Bucket:$,Key:Z}))).ContentLength??0}catch(Y){if(Y?.name==="NotFound"||Y?.$metadata?.httpStatusCode===404)throw new d(Z);throw Y}}}import{Buffer as y0}from"buffer";import{Readable as l6}from"stream";function G4(W){return W?.statusCode===404||W?.details?.errorCode==="BlobNotFound"||W?.code==="BlobNotFound"}function n6(W){return W?.statusCode===416||W?.details?.errorCode==="InvalidRange"||W?.code==="InvalidRange"}class A0 extends L1{config;serviceClientPromise=null;constructor(W={}){super();this.config=W}async serviceClient(){if(this.config.serviceClient)return this.config.serviceClient;return this.serviceClientPromise??=(async()=>{let W;try{W=await import("@azure/storage-blob")}catch{throw Error("AzureBlobDriver requires the '@azure/storage-blob' package. Install it with `bun add @azure/storage-blob`, or pass a pre-built `serviceClient`.")}let Z=this.config.connectionString??process.env.AZURE_STORAGE_CONNECTION_STRING;if(this.config.url)return new W.BlobServiceClient(this.config.url,this.config.credential);if(Z)return W.BlobServiceClient.fromConnectionString(Z);throw Error("AzureBlobDriver needs a connection string (AZURE_STORAGE_CONNECTION_STRING), a `url`, or a `serviceClient`.")})(),this.serviceClientPromise}async blob(W,Z){if(!W)throw Error("Object name has to be specified");let $=Z??this.config.container??process.env.BUCKET_NAME;if(!$)throw Error("AzureBlobDriver needs a container name, from `bucket`, the `container` config, or BUCKET_NAME.");return(await this.serviceClient()).getContainerClient($).getBlockBlobClient(W)}async put(W,{signal:Z}={}){Z?.throwIfAborted();let $,J,Q,Y;if(W instanceof Blob)$=W,Q=`${Bun.randomUUIDv7()}.${W.type.split("/")[1].split(";")[0]}`,J=W.type;else $=W.body,Q=W.name,Y=W.bucket,J=W.contentType??($ instanceof Blob||$ instanceof File?$.type:void 0);let K=$ instanceof y0?$:y0.from(await $.arrayBuffer()),G=await this.blob(Q,Y);return Z?.throwIfAborted(),await G.uploadData(K,{blobHTTPHeaders:J?{blobContentType:J}:void 0,abortSignal:Z}),Q}async*objects(W,{bucket:Z,signal:$}={}){$?.throwIfAborted();let J=Z??this.config.container??process.env.BUCKET_NAME;if(!J)throw Error("AzureBlobDriver needs a container name, from `bucket`, the `container` config, or BUCKET_NAME.");let Y=(await this.serviceClient()).getContainerClient(J);for await(let K of Y.listBlobsFlat({prefix:W}))$?.throwIfAborted(),yield{name:K.name,size:K.properties?.contentLength??0,lastModified:K.properties?.lastModified??new Date(0)}}async list(W){let Z=this.config.container??process.env.BUCKET_NAME,J=(await this.serviceClient()).getContainerClient(Z),Q=[];for await(let Y of J.listBlobsFlat({prefix:W}))Q.push(Y.name);return Q}async fetch(W,{signal:Z}={}){Z?.throwIfAborted();let $=await this.download(typeof W==="string"?{name:W}:{name:W.name,bucket:W.bucket},Z);return new Response($.body,{headers:{"Content-Type":$.type,"Content-Length":String($.total),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":$.lastModified?.toUTCString()??"",ETag:$.etag??""}})}async read(W){return this.download(typeof W==="string"?{name:W}:W)}async download(W,Z){let{name:$,bucket:J,range:Q=null}=W,Y=await this.blob($,J);Z?.throwIfAborted();let K,G,X=Q?.kind==="suffix"||Q?.kind==="offset"&&Q.end===null&&Q.start===0;if(Q&&X){let H=await this.size({name:$,bucket:J}),p=z4(Q,H);if(!p)throw new t(H);K=p.start,G=p.length}else if(Q?.kind==="offset")K=Q.start,G=Q.end===null?void 0:Q.end-Q.start+1;let z;try{z=await Y.download(K,G,Z?{abortSignal:Z}:void 0)}catch(H){if(n6(H))throw new t(await this.size({name:$,bucket:J}));if(G4(H))throw new d($);throw H}let B=M1(z.contentRange),j=Boolean(B),x=B?.total??z.contentLength??0,O=await i6(z);if(O instanceof ReadableStream)O=T1(O,Z);return Z?.throwIfAborted(),{body:O,start:B?.start??0,end:B?.end??x-1,total:x,partial:j,type:z.contentType??"application/octet-stream",etag:z.etag||void 0,lastModified:z.lastModified,name:$}}async size(W){let Z=typeof W==="string"?W:W.name,$=typeof W==="string"?void 0:W.bucket,J=await this.blob(Z,$);try{return(await J.getProperties()).contentLength??0}catch(Q){if(G4(Q))throw new d(Z);throw Q}}async delete(W){let Z=typeof W==="string"?W:W.name,$=typeof W==="string"?void 0:W.bucket,J=await this.blob(Z,$);try{await J.delete()}catch(Q){if(G4(Q))return;throw Q}}}async function i6(W){if(W.blobBody)return await W.blobBody;if(W.readableStreamBody)return l6.toWeb(W.readableStreamBody);return null}function s6(W){return W}class B4 extends Error{code="ERR_RATE_LIMITER_TIMEOUT";constructor(W){super(`RedisRateLimiter: Redis did not answer within ${W}ms.`);this.name="RedisRateLimiterTimeoutError"}}var o6=`
2
+ import{cb as A8}from"../chunk-fcqx2t0p.js";import{Ab as D8,Bb as F8,Cb as H8,Db as U8,Eb as C4,Fb as K6,Gb as C,Hb as O8,Ib as S8,Jb as R8,Kb as _8,Lb as f8,Mb as C8,Nb as k8,Ob as b8,Pb as T8,Qb as P8,Rb as V8,Sb as I8,Tb as v8,Ub as q8,Vb as w8,Wb as y8,db as yZ,eb as AZ,fb as hZ,gb as gZ,hb as EZ,ib as S4,jb as mZ,kb as F4,lb as H4,mb as v1,nb as cZ,ob as uZ,pb as K8,tb as G8,ub as z8,vb as X8,wb as B8,xb as L8,yb as N8,zb as x8}from"../chunk-ae5ycktd.js";import{Zb as _4}from"../chunk-1q5eagpm.js";import{Ad as J8,Bd as Q8,Cd as Y8,nd as pZ,od as dZ,pd as lZ,qd as nZ,rd as iZ,sd as oZ,td as aZ,ud as tZ,vd as rZ,wd as eZ,xd as W8,yd as Z8,zd as $8}from"../chunk-2b3hh9xw.js";import{Dd as sZ}from"../chunk-v9z4x5j2.js";import{Ed as HZ,Fd as UZ,Gd as OZ,Hd as SZ,Id as RZ,Jd as _Z,Kd as fZ,Ld as CZ,Md as kZ,Nd as bZ,Od as TZ,Pd as PZ,Qd as VZ,Rd as IZ,Sd as vZ,Td as qZ,Yd as wZ}from"../chunk-877yc341.js";import{Zd as j8,_d as M8}from"../chunk-ydkv9e8w.js";import"../chunk-eqv7yxk7.js";import{$f as a5,Ae as gW,Be as EW,Bf as v5,Ce as mW,Cf as q5,Cg as q1,De as cW,Df as y5,Ee as uW,Fe as pW,Ge as dW,Gf as A5,He as lW,Hf as h5,Ie as I0,If as g5,Je as nW,Jf as E5,Ke as iW,Le as sW,Lf as m5,Me as oW,Mf as c5,Ne as aW,Nf as u5,Ng as jZ,Of as p5,Og as MZ,Pf as d5,Qf as l5,Rf as n5,Sf as i5,Tf as s5,Uf as o5,Zf as k,_f as i,af as Q5,ag as t5,bf as Y5,bg as r5,cf as K5,cg as e5,df as G5,dg as WZ,ef as z5,ff as X5,fg as ZZ,gg as $Z,hg as JZ,ie as r0,ig as QZ,je as vW,jg as YZ,ke as qW,le as wW,lf as S5,mf as R5,mg as KZ,ne as yW,nf as _5,ng as GZ,of as f5,og as zZ,pf as C5,qf as k5,re as e0,rf as b5,se as h0,sf as T5,te as g0,tf as P5,tg as XZ,ue as X4,ve as AW,vf as V5,wf as Y6,xf as I5,xg as BZ,ze as hW}from"../chunk-fe9fvtvt.js";import"../chunk-hh5bs656.js";import"../chunk-3csz8pfk.js";import{Ai as J5,Ci as P1,Gh as z4,Hh as Y4,Ih as M1,Vh as D4,Yh as t,_h as d,ci as K4,di as L1,ei as T1,fi as tW,gi as rW,hi as eW,ii as W5,xi as Z5,yi as $5}from"../chunk-2r2j2nvq.js";import"../chunk-cee5gq7t.js";import{Mi as r}from"../chunk-a8n9ec43.js";import{Ui as D5,Vi as F5,Wi as b1,Xi as H5,Yi as P0,Zi as U5,_i as O5}from"../chunk-w6jff43c.js";import{ej as L5,fj as N5,gj as x5}from"../chunk-sbzqxtqg.js";import"../chunk-xv58jnpb.js";import{Pj as w5}from"../chunk-313593t3.js";import{Rj as B5,Sj as j5,Tj as M5}from"../chunk-86zhngpg.js";import"../chunk-attr793y.js";import"../chunk-2ery6a75.js";import"../chunk-73rzf7ys.js";import"../chunk-2x6cv37t.js";import{Jk as LZ,Kk as NZ,Lk as xZ,Mk as DZ,Ok as FZ}from"../chunk-m5f6ksqe.js";import"../chunk-mr3szvr3.js";import{Yk as w}from"../chunk-1fyn63ka.js";import"../chunk-e9z8p2fy.js";import"../chunk-g8sh9btf.js";import"../chunk-mzkzgp2j.js";import"../chunk-apga49vp.js";import"../chunk-6tkkvaqg.js";import{xl as q0}from"../chunk-baj76zja.js";import{Buffer as v0}from"buffer";class w0 extends L1{client;config;constructor(...W){super();this.config=W}async connect(){let W=await import("../chunk-nhhnkv0e.js");return this.client??=new W.S3Client(...this.config),{sdk:W,client:this.client}}async put(W,{signal:Z}={}){Z?.throwIfAborted();let $,J,Q,Y=process.env.BUCKET_NAME;if(W instanceof Blob)$=W,Q=`${Bun.randomUUIDv7()}.${W.type.split("/")[1].split(";")[0]}`,J=W.type;else $=W.body,Q=W.name,Y=W.bucket??Y,J=W.contentType||($ instanceof Blob||$ instanceof File?$.type:void 0);J=J||void 0;let K=$ instanceof v0?$:$ instanceof Blob||$ instanceof File?v0.from(await $.arrayBuffer()):"",{sdk:G,client:X}=await this.connect();return Z?.throwIfAborted(),await X.send(new G.PutObjectCommand({Bucket:Y,Key:Q,Body:K,ContentType:J}),{abortSignal:Z}),Q}async delete(W){let Z=typeof W==="string"?W:W.name,$=(typeof W==="string"?void 0:W.bucket)??process.env.BUCKET_NAME;if(!Z)throw Error("Object name has to be specified");let{sdk:J,client:Q}=await this.connect();try{await Q.send(new J.DeleteObjectCommand({Bucket:$,Key:Z}))}catch(Y){if(Y?.name==="NoSuchKey"||Y?.$metadata?.httpStatusCode===404)return;throw Y}}async*pages(W,{bucket:Z,signal:$}){let{sdk:J,client:Q}=await this.connect(),Y;do{$?.throwIfAborted();let K=await Q.send(new J.ListObjectsV2Command({Bucket:Z??process.env.BUCKET_NAME,Prefix:W,ContinuationToken:Y}),{abortSignal:$});yield(K.Contents??[]).map((G)=>({name:G.Key,size:G.Size??0,lastModified:G.LastModified??new Date(0)})),Y=K.IsTruncated?K.NextContinuationToken:void 0}while(Y)}async*objects(W,Z={}){for await(let $ of this.pages(W,Z))yield*$}async deletePrefix(W,Z={}){K4(W);let $=Z.bucket??process.env.BUCKET_NAME,{sdk:J,client:Q}=await this.connect(),Y=0;for await(let K of this.pages(W,{...Z,bucket:$})){if(K.length===0)continue;Z.signal?.throwIfAborted();let X=(await Q.send(new J.DeleteObjectsCommand({Bucket:$,Delete:{Objects:K.map((z)=>({Key:z.name})),Quiet:!0}}),{abortSignal:Z.signal}))?.Errors??[];if(X.length>0){let z=X[0];throw Error(`S3 could not delete ${X.length} object(s) under "${W}", e.g. "${z.Key}": ${z.Code??"unknown"} ${z.Message??""}`.trim())}Y+=K.length}return Y}async list(W){let{sdk:Z,client:$}=await this.connect();return await $.send(new Z.ListObjectsV2Command({Bucket:process.env.BUCKET_NAME,Prefix:W}))}async fetch(W,{signal:Z}={}){Z?.throwIfAborted();let $=process.env.BUCKET_NAME,J;if(typeof W==="string")J=W;else $=W.bucket??$,J=W.name;if(!J)throw Error("Object name has to be specified");let{sdk:Q,client:Y}=await this.connect();Z?.throwIfAborted();let K=await Y.send(new Q.GetObjectCommand({Bucket:$,Key:J}),{abortSignal:Z}),G=T1(K.Body.transformToWebStream(),Z);return Z?.throwIfAborted(),new Response(G,{headers:{"Content-Type":K.ContentType,"Content-Length":K.ContentLength.toString(),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":K.LastModified?.toUTCString()||"",ETag:K.ETag||""}})}async read(W){let Z=typeof W==="string"?{name:W}:W,$=Z.bucket??process.env.BUCKET_NAME,{name:J,range:Q=null}=Z;if(!J)throw Error("Object name has to be specified");let{sdk:Y,client:K}=await this.connect(),G;try{G=await K.send(new Y.GetObjectCommand({Bucket:$,Key:J,Range:Q?Y4(Q):void 0}))}catch(j){if(j?.name==="InvalidRange"||j?.$metadata?.httpStatusCode===416)throw new t(await this.size({name:J,bucket:$}));if(j?.name==="NoSuchKey"||j?.$metadata?.httpStatusCode===404)throw new d(J);throw j}let X=M1(G.ContentRange),z=Boolean(X)&&G.$metadata?.httpStatusCode===206,B=X?.total??G.ContentLength??0;return{body:G.Body.transformToWebStream(),start:X?.start??0,end:X?.end??B-1,total:B,partial:z,type:G.ContentType??"application/octet-stream",etag:G.ETag||void 0,lastModified:G.LastModified,name:J}}async size(W){let Z=typeof W==="string"?W:W.name,$=(typeof W==="string"?void 0:W.bucket)??process.env.BUCKET_NAME,{sdk:J,client:Q}=await this.connect();try{return(await Q.send(new J.HeadObjectCommand({Bucket:$,Key:Z}))).ContentLength??0}catch(Y){if(Y?.name==="NotFound"||Y?.$metadata?.httpStatusCode===404)throw new d(Z);throw Y}}}import{Buffer as y0}from"buffer";import{Readable as l6}from"stream";function G4(W){return W?.statusCode===404||W?.details?.errorCode==="BlobNotFound"||W?.code==="BlobNotFound"}function n6(W){return W?.statusCode===416||W?.details?.errorCode==="InvalidRange"||W?.code==="InvalidRange"}class A0 extends L1{config;serviceClientPromise=null;constructor(W={}){super();this.config=W}async serviceClient(){if(this.config.serviceClient)return this.config.serviceClient;return this.serviceClientPromise??=(async()=>{let W;try{W=await import("@azure/storage-blob")}catch{throw Error("AzureBlobDriver requires the '@azure/storage-blob' package. Install it with `bun add @azure/storage-blob`, or pass a pre-built `serviceClient`.")}let Z=this.config.connectionString??process.env.AZURE_STORAGE_CONNECTION_STRING;if(this.config.url)return new W.BlobServiceClient(this.config.url,this.config.credential);if(Z)return W.BlobServiceClient.fromConnectionString(Z);throw Error("AzureBlobDriver needs a connection string (AZURE_STORAGE_CONNECTION_STRING), a `url`, or a `serviceClient`.")})(),this.serviceClientPromise}async blob(W,Z){if(!W)throw Error("Object name has to be specified");let $=Z??this.config.container??process.env.BUCKET_NAME;if(!$)throw Error("AzureBlobDriver needs a container name, from `bucket`, the `container` config, or BUCKET_NAME.");return(await this.serviceClient()).getContainerClient($).getBlockBlobClient(W)}async put(W,{signal:Z}={}){Z?.throwIfAborted();let $,J,Q,Y;if(W instanceof Blob)$=W,Q=`${Bun.randomUUIDv7()}.${W.type.split("/")[1].split(";")[0]}`,J=W.type;else $=W.body,Q=W.name,Y=W.bucket,J=W.contentType??($ instanceof Blob||$ instanceof File?$.type:void 0);let K=$ instanceof y0?$:y0.from(await $.arrayBuffer()),G=await this.blob(Q,Y);return Z?.throwIfAborted(),await G.uploadData(K,{blobHTTPHeaders:J?{blobContentType:J}:void 0,abortSignal:Z}),Q}async*objects(W,{bucket:Z,signal:$}={}){$?.throwIfAborted();let J=Z??this.config.container??process.env.BUCKET_NAME;if(!J)throw Error("AzureBlobDriver needs a container name, from `bucket`, the `container` config, or BUCKET_NAME.");let Y=(await this.serviceClient()).getContainerClient(J);for await(let K of Y.listBlobsFlat({prefix:W}))$?.throwIfAborted(),yield{name:K.name,size:K.properties?.contentLength??0,lastModified:K.properties?.lastModified??new Date(0)}}async list(W){let Z=this.config.container??process.env.BUCKET_NAME,J=(await this.serviceClient()).getContainerClient(Z),Q=[];for await(let Y of J.listBlobsFlat({prefix:W}))Q.push(Y.name);return Q}async fetch(W,{signal:Z}={}){Z?.throwIfAborted();let $=await this.download(typeof W==="string"?{name:W}:{name:W.name,bucket:W.bucket},Z);return new Response($.body,{headers:{"Content-Type":$.type,"Content-Length":String($.total),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":$.lastModified?.toUTCString()??"",ETag:$.etag??""}})}async read(W){return this.download(typeof W==="string"?{name:W}:W)}async download(W,Z){let{name:$,bucket:J,range:Q=null}=W,Y=await this.blob($,J);Z?.throwIfAborted();let K,G,X=Q?.kind==="suffix"||Q?.kind==="offset"&&Q.end===null&&Q.start===0;if(Q&&X){let H=await this.size({name:$,bucket:J}),p=z4(Q,H);if(!p)throw new t(H);K=p.start,G=p.length}else if(Q?.kind==="offset")K=Q.start,G=Q.end===null?void 0:Q.end-Q.start+1;let z;try{z=await Y.download(K,G,Z?{abortSignal:Z}:void 0)}catch(H){if(n6(H))throw new t(await this.size({name:$,bucket:J}));if(G4(H))throw new d($);throw H}let B=M1(z.contentRange),j=Boolean(B),x=B?.total??z.contentLength??0,O=await i6(z);if(O instanceof ReadableStream)O=T1(O,Z);return Z?.throwIfAborted(),{body:O,start:B?.start??0,end:B?.end??x-1,total:x,partial:j,type:z.contentType??"application/octet-stream",etag:z.etag||void 0,lastModified:z.lastModified,name:$}}async size(W){let Z=typeof W==="string"?W:W.name,$=typeof W==="string"?void 0:W.bucket,J=await this.blob(Z,$);try{return(await J.getProperties()).contentLength??0}catch(Q){if(G4(Q))throw new d(Z);throw Q}}async delete(W){let Z=typeof W==="string"?W:W.name,$=typeof W==="string"?void 0:W.bucket,J=await this.blob(Z,$);try{await J.delete()}catch(Q){if(G4(Q))return;throw Q}}}async function i6(W){if(W.blobBody)return await W.blobBody;if(W.readableStreamBody)return l6.toWeb(W.readableStreamBody);return null}function s6(W){return W}class B4 extends Error{code="ERR_RATE_LIMITER_TIMEOUT";constructor(W){super(`RedisRateLimiter: Redis did not answer within ${W}ms.`);this.name="RedisRateLimiterTimeoutError"}}var o6=`
3
3
  local currentKey = KEYS[1]
4
4
  local previousKey = KEYS[2]
5
5
  local limit = tonumber(ARGV[1])
@@ -69,4 +69,4 @@ ${W.resolution}.`;console.warn($),console.warn("To disable this message, import
69
69
  `));return await this.put(Z.data.upload_url,$,{forceBodyMode:"raw",enableAuth:!1,headers:{"Content-Type":"text/plain"},prefix:""}),Z}async complianceJobResult(W){let Z=W;while(Z.status!=="complete"){if(Z.status==="expired"||Z.status==="failed")throw Error("Job failed to be completed.");await new Promise((J)=>setTimeout(J,3500)),Z=(await this.complianceJob(W.id)).data}return(await this.get(W.download_url,void 0,{enableAuth:!1,prefix:""})).trim().split(`
70
70
  `).filter((J)=>J).map((J)=>JSON.parse(J))}async usage(W={}){return this.get("usage/tweets",W)}community(W,Z={}){return this.get("communities/:id",Z,{params:{id:W}})}searchCommunities(W,Z={}){return this.get("communities/search",{query:W,...Z})}}class B1 extends z1{constructor(){super(...arguments);this._prefix=e}get readOnly(){return this}}class j1 extends X1{constructor(){super(...arguments);this._prefix=g}get readOnly(){return this}get labs(){if(this._labs)return this._labs;return this._labs=new B1(this)}hideReply(W,Z){return this.put("tweets/:id/hidden",{hidden:Z},{params:{id:W}})}like(W,Z){return this.post("users/:id/likes",{tweet_id:Z},{params:{id:W}})}unlike(W,Z){return this.delete("users/:id/likes/:tweet_id",void 0,{params:{id:W,tweet_id:Z}})}retweet(W,Z){return this.post("users/:id/retweets",{tweet_id:Z},{params:{id:W}})}unretweet(W,Z){return this.delete("users/:id/retweets/:tweet_id",void 0,{params:{id:W,tweet_id:Z}})}tweet(W,Z={}){if(typeof W==="object")Z=W;else Z={text:W,...Z};return this.post("tweets",Z)}async uploadMedia(W,Z,$=1048576){let J=Z.media_category;if(!Z.media_category){if(Z.media_type.includes("gif"))J="tweet_gif";else if(Z.media_type.includes("image"))J="tweet_image";else if(Z.media_type.includes("video"))J="tweet_video"}let Q={additional_owners:Z.additional_owners,media_type:Z.media_type,total_bytes:W.length,media_category:J},K=(await this.post("media/upload/initialize",Q)).data.id,G=Math.ceil(W.length/$),X=new Uint8Array(W);for(let B=0;B<G;B++){let j=B*$,x=Math.min(j+$,W.length),O=X.slice(j,x),H=Buffer.from(O),p={segment_index:B,media:H};await this.post(`media/upload/${K}/append`,p,{forceBodyMode:"form-data"})}if((await this.post(`media/upload/${K}/finalize`)).data.processing_info)await this.waitForMediaProcessing(K);return K}async waitForMediaProcessing(W){var Z;let J=(await this.get("media/upload",{command:"STATUS",media_id:W})).data.processing_info;if(!J)return;switch(J.state){case"succeeded":return;case"failed":throw Error(`Media processing failed: ${(Z=J.error)===null||Z===void 0?void 0:Z.message}`);case"pending":case"in_progress":{let Q=J===null||J===void 0?void 0:J.check_after_secs;if(Q&&Q>0)await new Promise((Y)=>setTimeout(Y,Q*1000)),await this.waitForMediaProcessing(W)}}}createMediaMetadata(W,Z){return this.post("media/metadata",{id:W,metadata:Z})}reply(W,Z,$={}){var J;let Q={in_reply_to_tweet_id:Z,...(J=$.reply)!==null&&J!==void 0?J:{}};return this.post("tweets",{text:W,...$,reply:Q})}quote(W,Z,$={}){return this.tweet(W,{...$,quote_tweet_id:Z})}async tweetThread(W){var Z,$;let J=[];for(let Q of W){let Y=J.length?J[J.length-1]:null,K={...typeof Q==="string"?{text:Q}:Q},G=Y?Y.data.id:(Z=K.reply)===null||Z===void 0?void 0:Z.in_reply_to_tweet_id,X=($=K.text)!==null&&$!==void 0?$:"";if(G)J.push(await this.reply(X,G,K));else J.push(await this.tweet(X,K))}return J}deleteTweet(W){return this.delete("tweets/:id",void 0,{params:{id:W}})}async bookmark(W){let Z=await this.getCurrentUserV2Object();return this.post("users/:id/bookmarks",{tweet_id:W},{params:{id:Z.data.id}})}async deleteBookmark(W){let Z=await this.getCurrentUserV2Object();return this.delete("users/:id/bookmarks/:tweet_id",void 0,{params:{id:Z.data.id,tweet_id:W}})}follow(W,Z){return this.post("users/:id/following",{target_user_id:Z},{params:{id:W}})}unfollow(W,Z){return this.delete("users/:source_user_id/following/:target_user_id",void 0,{params:{source_user_id:W,target_user_id:Z}})}block(W,Z){return this.post("users/:id/blocking",{target_user_id:Z},{params:{id:W}})}unblock(W,Z){return this.delete("users/:source_user_id/blocking/:target_user_id",void 0,{params:{source_user_id:W,target_user_id:Z}})}mute(W,Z){return this.post("users/:id/muting",{target_user_id:Z},{params:{id:W}})}unmute(W,Z){return this.delete("users/:source_user_id/muting/:target_user_id",void 0,{params:{source_user_id:W,target_user_id:Z}})}createList(W){return this.post("lists",W)}updateList(W,Z={}){return this.put("lists/:id",Z,{params:{id:W}})}removeList(W){return this.delete("lists/:id",void 0,{params:{id:W}})}addListMember(W,Z){return this.post("lists/:id/members",{user_id:Z},{params:{id:W}})}removeListMember(W,Z){return this.delete("lists/:id/members/:user_id",void 0,{params:{id:W,user_id:Z}})}subscribeToList(W,Z){return this.post("users/:id/followed_lists",{list_id:Z},{params:{id:W}})}unsubscribeOfList(W,Z){return this.delete("users/:id/followed_lists/:list_id",void 0,{params:{id:W,list_id:Z}})}pinList(W,Z){return this.post("users/:id/pinned_lists",{list_id:Z},{params:{id:W}})}unpinList(W,Z){return this.delete("users/:id/pinned_lists/:list_id",void 0,{params:{id:W,list_id:Z}})}sendDmInConversation(W,Z){return this.post("dm_conversations/:dm_conversation_id/messages",Z,{params:{dm_conversation_id:W}})}sendDmToParticipant(W,Z){return this.post("dm_conversations/with/:participant_id/messages",Z,{params:{participant_id:W}})}createDmConversation(W){return this.post("dm_conversations",W)}}class T6 extends B1{constructor(){super(...arguments);this._prefix=e}get readWrite(){return this}}var P6=T6;class V6 extends j1{constructor(){super(...arguments);this._prefix=g}get readWrite(){return this}get labs(){if(this._labs)return this._labs;return this._labs=new P6(this)}}var I6=V6;class C1 extends c{get v1(){if(this._v1)return this._v1;return this._v1=new Y1(this)}get v2(){if(this._v2)return this._v2;return this._v2=new X1(this)}async currentUser(W=!1){return await this.getCurrentUserObject(W)}async currentUserV2(W=!1){return await this.getCurrentUserV2Object(W)}search(W,Z){return this.v2.search(W,Z)}async generateAuthLink(W="oob",{authAccessType:Z,linkMode:$="authenticate",forceLogin:J,screenName:Q}={}){let Y=await this.post("https://api.x.com/oauth/request_token",{oauth_callback:W,x_auth_access_type:Z}),K=`https://api.x.com/oauth/${$}?oauth_token=${encodeURIComponent(Y.oauth_token)}`;if(J!==void 0)K+=`&force_login=${encodeURIComponent(J)}`;if(Q!==void 0)K+=`&screen_name=${encodeURIComponent(Q)}`;if(this._requestMaker.hasPlugins())this._requestMaker.applyPluginMethod("onOAuth1RequestToken",{client:this._requestMaker,url:K,oauthResult:Y});return{url:K,...Y}}async login(W){let Z=this.getActiveTokens();if(Z.type!=="oauth-1.0a")throw Error("You must setup TwitterApi instance with consumer keys to accept OAuth 1.0 login");let $=await this.post("https://api.x.com/oauth/access_token",{oauth_token:Z.accessToken,oauth_verifier:W}),J=new this.constructor({appKey:Z.appKey,appSecret:Z.appSecret,accessToken:$.oauth_token,accessSecret:$.oauth_token_secret},this._requestMaker.clientSettings);return{accessToken:$.oauth_token,accessSecret:$.oauth_token_secret,userId:$.user_id,screenName:$.screen_name,client:J}}async appLogin(){let W=this.getActiveTokens();if(W.type!=="oauth-1.0a")throw Error("You must setup TwitterApi instance with consumer keys to accept app-only login");let $=await new this.constructor({username:W.appKey,password:W.appSecret},this._requestMaker.clientSettings).post("https://api.x.com/oauth2/token",{grant_type:"client_credentials"});return new this.constructor($.access_token,this._requestMaker.clientSettings)}generateOAuth2AuthLink(W,Z={}){var $,J;if(!this._requestMaker.clientId)throw Error("Twitter API instance is not initialized with client ID. You can find your client ID in Twitter Developer Portal. Please build an instance with: new TwitterApi({ clientId: '<yourClientId>' })");let Q=($=Z.state)!==null&&$!==void 0?$:a.generateRandomString(32),Y=a.getCodeVerifier(),K=a.getCodeChallengeFromVerifier(Y),G=(J=Z.scope)!==null&&J!==void 0?J:"",X=Array.isArray(G)?G.join(" "):G,z=new URL("https://x.com/i/oauth2/authorize"),B={response_type:"code",client_id:this._requestMaker.clientId,redirect_uri:W,state:Q,code_challenge:K,code_challenge_method:"s256",scope:X};R.addQueryParamsToUrl(z,B);let j={url:z.toString(),state:Q,codeVerifier:Y,codeChallenge:K};if(this._requestMaker.hasPlugins())this._requestMaker.applyPluginMethod("onOAuth2RequestToken",{client:this._requestMaker,result:j,redirectUri:W});return j}async loginWithOAuth2({code:W,codeVerifier:Z,redirectUri:$}){if(!this._requestMaker.clientId)throw Error("Twitter API instance is not initialized with client ID. Please build an instance with: new TwitterApi({ clientId: '<yourClientId>' })");let J=await this.post("https://api.x.com/2/oauth2/token",{code:W,code_verifier:Z,redirect_uri:$,grant_type:"authorization_code",client_id:this._requestMaker.clientId,client_secret:this._requestMaker.clientSecret});return this.parseOAuth2AccessTokenResult(J)}async refreshOAuth2Token(W){if(!this._requestMaker.clientId)throw Error("Twitter API instance is not initialized with client ID. Please build an instance with: new TwitterApi({ clientId: '<yourClientId>' })");let Z=await this.post("https://api.x.com/2/oauth2/token",{refresh_token:W,grant_type:"refresh_token",client_id:this._requestMaker.clientId,client_secret:this._requestMaker.clientSecret});return this.parseOAuth2AccessTokenResult(Z)}async revokeOAuth2Token(W,Z="access_token"){if(!this._requestMaker.clientId)throw Error("Twitter API instance is not initialized with client ID. Please build an instance with: new TwitterApi({ clientId: '<yourClientId>' })");return await this.post("https://api.x.com/2/oauth2/revoke",{client_id:this._requestMaker.clientId,client_secret:this._requestMaker.clientSecret,token:W,token_type_hint:Z})}parseOAuth2AccessTokenResult(W){let Z=new this.constructor(W.access_token,this._requestMaker.clientSettings),$=W.scope.split(" ").filter((J)=>J);return{client:Z,expiresIn:W.expires_in,accessToken:W.access_token,scope:$,refreshToken:W.refresh_token}}}class k1 extends C1{get v1(){if(this._v1)return this._v1;return this._v1=new K1(this)}get v2(){if(this._v2)return this._v2;return this._v2=new j1(this)}get readOnly(){return this}}class t1 extends _{constructor(){super(...arguments);this._prefix=W1}}class r1 extends t1{constructor(){super(...arguments);this._prefix=W1}get readOnly(){return this}}class e1 extends _{constructor(){super(...arguments);this._prefix=Z1}}class W4 extends e1{constructor(){super(...arguments);this._prefix=Z1}get readOnly(){return this}}class v6 extends W4{constructor(){super(...arguments);this._prefix=Z1}get readWrite(){return this}}var q6=v6;class w6 extends r1{constructor(){super(...arguments);this._prefix=W1}get readWrite(){return this}get sandbox(){if(this._sandbox)return this._sandbox;return this._sandbox=new q6(this)}}var y6=w6;class b0 extends k1{get v1(){if(this._v1)return this._v1;return this._v1=new i1(this)}get v2(){if(this._v2)return this._v2;return this._v2=new I6(this)}get readWrite(){return this}get ads(){if(this._ads)return this._ads;return this._ads=new y6(this)}static getErrors(W){var Z;if(typeof W!=="object")return[];if(!("data"in W))return[];return(Z=W.data.errors)!==null&&Z!==void 0?Z:[]}static getProfileImageInSize(W,Z){let $=W.split("/").pop(),J=["normal","bigger","mini"],Q=W;for(let K of J)if($.includes(`_${K}`)){Q=W.replace(`_${K}`,"");break}if(Z==="original")return Q;let Y=Q.lastIndexOf(".");if(Y!==-1){let K=Q.slice(Y+1);return Q.slice(0,Y)+"_"+Z+"."+K}else return Q+"_"+Z}}var fW={clientId:process.env.X_CLIENT_ID,clientSecret:process.env.X_SECRET,redirectPath:"/auth/oauth/x/callback",scope:["tweet.read","users.read","offline.access"]};class A6 extends i{config;client;constructor(W={}){super();this.config={...fW,...W},this.client=new b0({clientId:this.config.clientId,clientSecret:this.config.clientSecret})}redirectUri(){return`${r()??""}${this.config.redirectPath}`}getRedirectUrl(W,Z){if(!Z)throw Error("XOAuthProvider needs the state and PKCE challenge gemi passes.");let $=new URL("https://x.com/i/oauth2/authorize"),J={response_type:"code",client_id:this.config.clientId,redirect_uri:this.redirectUri(),state:Z.state,code_challenge:Z.codeChallenge,code_challenge_method:Z.codeChallengeMethod,scope:this.config.scope.join(" ")};for(let[Q,Y]of Object.entries(J))$.searchParams.set(Q,Y);return $.toString()}async onCallback(W,Z){let $=W.search.get("code");if(!$)throw new k("missing_code");if(!Z?.codeVerifier)throw new k("invalid_state");let J;try{J=await this.client.loginWithOAuth2({code:$,codeVerifier:Z.codeVerifier,redirectUri:this.redirectUri()})}catch(z){throw console.error("X OAuth error: token exchange failed",z),new k("exchange_failed")}let{data:Q}=await J.client.v2.me({"user.fields":["name","username","entities"]}),{name:Y,email:K,id:G="",username:X}=Q??{};return{name:Y,email:K,username:X,providerId:G}}}var g6=["instagram_business_basic"],q={authorizeUrl:"https://www.instagram.com/oauth/authorize",tokenUrl:"https://api.instagram.com/oauth/access_token",graphUrl:"https://graph.instagram.com"};class P extends Error{status;type;code;constructor(W,Z,$,J,Q){super(W,Q);this.status=Z;this.type=$;this.code=J;this.name="InstagramApiError"}}async function Z4(W){let Z=new URLSearchParams({client_id:W.clientId,client_secret:W.clientSecret,grant_type:"authorization_code",redirect_uri:W.redirectUri,code:W.code.replace(/#_$/,"")}),$=await J4(W.tokenUrl??q.tokenUrl,"code exchange",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Z.toString()}),J=Array.isArray($.data)?$.data[0]:$,Q=J?.access_token;if(typeof Q!=="string"||Q==="")throw new P("Instagram's code exchange answered without an access token.",200);let Y=J?.permissions;return{accessToken:Q,userId:T0(J?.user_id),permissions:Array.isArray(Y)?Y.map(String):typeof Y==="string"?Y.split(/[\s,]+/).filter(Boolean):null}}async function E6(W){let Z=new URL("/access_token",W.graphUrl??q.graphUrl);return Z.searchParams.set("grant_type","ig_exchange_token"),Z.searchParams.set("client_secret",W.clientSecret),Z.searchParams.set("access_token",W.accessToken),c6(await J4(Z.toString(),"long-lived token exchange",{method:"GET"}))}async function m6(W){let Z=new URL("/refresh_access_token",W.graphUrl??q.graphUrl);return Z.searchParams.set("grant_type","ig_refresh_token"),Z.searchParams.set("access_token",W.accessToken),c6(await J4(Z.toString(),"token refresh",{method:"GET"}))}async function $4(W){let Z=W.graphApiVersion?`/${W.graphApiVersion.replace(/^\/+|\/+$/g,"")}`:"",$=new URL(`${Z}/me`,W.graphUrl??q.graphUrl);$.searchParams.set("fields",(W.fields??["user_id","username","name","account_type","profile_picture_url"]).join(",")),$.searchParams.set("access_token",W.accessToken);let J=await J4($.toString(),"profile request",{method:"GET"}),Q=Array.isArray(J.data)?J.data[0]:J,Y=T0(Q?.user_id);if(!Y)throw new P("Instagram's /me answered without a user_id.",200);let K={user_id:Y},G=T0(Q?.id);if(G)K.id=G;for(let X of["username","name","account_type","profile_picture_url"]){let z=Q?.[X];if(typeof z==="string"&&z!=="")K[X]=z}return K}function c6(W){if(typeof W.access_token!=="string"||W.access_token==="")throw new P("Instagram answered without an access token.",200);let Z=Number(W.expires_in);return{accessToken:W.access_token,tokenType:typeof W.token_type==="string"?W.token_type:null,expiresIn:Number.isFinite(Z)&&Z>0?Z:null}}async function J4(W,Z,$){let J;try{J=await fetch(W,{...$,redirect:"error"})}catch(Y){throw new P(`Instagram's ${Z} failed to reach Instagram.`,void 0,void 0,void 0,{cause:Y})}let Q=CW(await J.text().catch(()=>""));if(!J.ok){let Y=Q.error??{},K=h6(Q.error_type)??h6(Y.type),G=Number(Q.code??Y.code);throw new P(`Instagram refused the ${Z} (HTTP ${J.status}${K?`, ${K}`:""}${Number.isFinite(G)?` ${G}`:""}).`,J.status,K,Number.isFinite(G)?G:void 0)}return Q}function CW(W){try{let Z=JSON.parse(W.replace(/("(?:user_id|id)"\s*:\s*)(-?\d+)(?=\s*[,}\]])/g,'$1"$2"'));return Z&&typeof Z==="object"?Z:{}}catch{return{}}}function T0(W){if(typeof W==="string"&&W!=="")return W;if(typeof W==="number"&&Number.isSafeInteger(W))return String(W);return null}function h6(W){return typeof W==="string"&&W!==""?W:void 0}class u6 extends i{createUsersWithoutEmail=!0;linkByEmail=!1;config;constructor(W={}){super();this.config={clientId:process.env.INSTAGRAM_CLIENT_ID??"",clientSecret:process.env.INSTAGRAM_CLIENT_SECRET??"",scopes:g6,redirectPath:"/auth/oauth/instagram/callback",authorizationParams:{},...W}}redirectUri(){return`${r()??""}${this.config.redirectPath}`}getRedirectUrl(W,Z){let $=new URL(this.config.authorizeUrl??q.authorizeUrl),J={...this.config.authorizationParams,client_id:this.config.clientId,redirect_uri:this.redirectUri(),response_type:"code",scope:this.config.scopes.join(",")};if(Z)J.state=Z.state;for(let[Q,Y]of Object.entries(J))$.searchParams.set(Q,Y);return $.toString()}async onCallback(W){let Z=W.search.get("code");if(!Z)throw new k("missing_code");let $;try{let J=await Z4({code:Z,clientId:this.config.clientId,clientSecret:this.config.clientSecret,redirectUri:this.redirectUri(),tokenUrl:this.config.tokenUrl});$=await $4({accessToken:J.accessToken,graphUrl:this.config.graphUrl,graphApiVersion:this.config.graphApiVersion,fields:["user_id","username","name"]})}catch(J){if(J instanceof P)throw console.error(`Instagram OAuth error: ${J.message}`),new k("exchange_failed");throw J}return{providerId:$.user_id,username:$.username,name:$.name||$.username}}}import{createHmac as kW,timingSafeEqual as bW}from"crypto";class V extends Error{reason;constructor(W,Z){super(Z);this.reason=W;this.name="MetaSignedRequestError"}}function TW(W,Z,$={}){if(!Z)throw Error("parseMetaSignedRequest needs the app secret.");if(typeof W!=="string")throw new V("malformed","No signed_request was given.");let J=W.indexOf(".");if(J<=0||J===W.length-1||W.indexOf(".",J+1)!==-1)throw new V("malformed","A signed_request is <signature>.<payload>.");let Q=W.slice(0,J),Y=W.slice(J+1);if(!/^[A-Za-z0-9_-]+={0,2}$/.test(Q)||!/^[A-Za-z0-9_-]+={0,2}$/.test(Y))throw new V("malformed","A signed_request is base64url.");let K=kW("sha256",Z).update(Y).digest(),G=Buffer.from(Q,"base64url");if(G.length!==K.length||!bW(G,K))throw new V("bad_signature","The signed_request's signature does not match the app secret.");let X;try{let x=Buffer.from(Y,"base64url").toString("utf8").replace(/("user_id"\s*:\s*)(-?\d+)(?=\s*[,}])/g,'$1"$2"');X=JSON.parse(x)}catch{throw new V("malformed","The signed_request's payload is not JSON.")}if(!X||typeof X!=="object")throw new V("malformed","The signed_request's payload is not an object.");if(String(X.algorithm??"").toUpperCase()!=="HMAC-SHA256")throw new V("unsupported_algorithm","Only HMAC-SHA256 signed_requests are accepted.");let z=Math.floor(($.now??Date.now())/1000),B=Number(X.expires);if(Number.isFinite(B)&&B>0&&B<z)throw new V("expired","The signed_request has expired.");let j=X.user_id;if((typeof j!=="string"||j==="")&&typeof j!=="number")throw new V("missing_user","The signed_request names no user.");return{...X,algorithm:String(X.algorithm),user_id:String(j)}}var PW=86400000;class p6 extends P0{instagram;constructor(W={}){let Z={authorizeUrl:W.authorizeUrl??q.authorizeUrl,tokenUrl:W.tokenUrl??q.tokenUrl,graphUrl:W.graphUrl??q.graphUrl,graphApiVersion:W.graphApiVersion};super({authorizeUrl:Z.authorizeUrl,tokenUrl:Z.tokenUrl,clientId:W.clientId??process.env.INSTAGRAM_CLIENT_ID??"",clientSecret:W.clientSecret??process.env.INSTAGRAM_CLIENT_SECRET??"",scopes:W.scopes??["instagram_business_basic","instagram_business_content_publish"],scopeSeparator:",",pkce:!1,authorizationParams:W.authorizationParams??{},redirectUri:W.redirectUri,apiBaseUrl:Z.graphUrl,refreshLeewaySeconds:W.refreshLeewaySeconds??864000,multiple:W.multiple??!1,tokenPlacement:"query",isTokenRejected:VW,refreshStrategy:async($)=>{if(Date.now()-$.issuedAt.getTime()<PW){if($.reason==="rejected")throw new b1("refresh_failed","Instagram refused the access token (OAuthException 190).",{status:401});return null}let J=await Q4("refresh_failed",()=>m6({accessToken:$.accessToken,graphUrl:Z.graphUrl}));return{accessToken:J.accessToken,refreshToken:null,tokenType:J.tokenType,expiresAt:J.expiresIn===null?null:new Date(Date.now()+J.expiresIn*1000),scopes:$.scopes,providerAccountId:$.providerAccountId}}});this.instagram=Z}async exchangeCode(W){let Z=await Q4("exchange_failed",()=>Z4({code:W.code,clientId:this.config.clientId,clientSecret:this.config.clientSecret,redirectUri:W.redirectUri,tokenUrl:this.instagram.tokenUrl})),$=await Q4("exchange_failed",()=>E6({accessToken:Z.accessToken,clientSecret:this.config.clientSecret,graphUrl:this.instagram.graphUrl})),J=await Q4("exchange_failed",()=>$4({accessToken:$.accessToken,graphUrl:this.instagram.graphUrl,graphApiVersion:this.instagram.graphApiVersion}));return{accessToken:$.accessToken,refreshToken:null,tokenType:$.tokenType,expiresAt:$.expiresIn===null?null:new Date(Date.now()+$.expiresIn*1000),scopes:Z.permissions??this.config.scopes,providerAccountId:J.user_id,profile:{...J}}}refresh(){return Promise.reject(new b1("refresh_failed","Instagram connections renew the access token itself; call connection.refresh()."))}}async function VW(W){if(W.status===401)return!0;if(W.status!==400)return!1;let Z=await W.clone().json().catch(()=>null);return Number(Z?.error?.code)===190}async function Q4(W,Z){try{return await Z()}catch($){if($ instanceof P)throw new b1(W,$.message,{cause:$,status:$.status===200?502:$.status});throw $}}class V0{describe;rollout;when;serverOnly;salt;constructor(W={}){if(W.rollout!==void 0){let{rollout:Z}=W;if(!Number.isFinite(Z)||Z<0||Z>100)throw Error(`A feature's \`rollout\` must be a number between 0 and 100, received ${String(Z)}.`)}this.describe=W.describe,this.rollout=W.rollout,this.when=W.when,this.serverOnly=W.serverOnly??!1,this.salt=W.salt}}function IW(W={}){return new V0(W)}class d6 extends I0{rows=new Map;constructor(W={}){super();for(let[Z,$]of Object.entries(W))this.rows.set(Z,{key:Z,active:$})}async load(){return[...this.rows.values()].map((W)=>({...W}))}async write(W,Z,$){return this.rows.set(W,{key:W,active:Z,updatedBy:$.actor,updatedAt:new Date}),{actorRecorded:!0}}}export{QZ as viewRouteConfigDefaults,M8 as translationConfigDefaults,Y4 as toRangeHeaderValue,pW as subjectFor,Z5 as sniffContentType,aZ as scheduleConfigDefaults,z4 as resolveRange,v8 as redisConfigDefaults,P8 as rateLimiterConfigDefaults,fZ as queueConfigDefaults,TW as parseMetaSignedRequest,M1 as parseContentRange,wW as mintSessionToken,MZ as middlewareConfigDefaults,gZ as mcpCallOf,DZ as mailConfigDefaults,C8 as logConfigDefaults,qW as isSessionToken,p5 as isFinalRunStatus,K6 as isBroadcastEvent,$5 as isActiveContentType,cW as inRollout,e5 as imageConfigDefaults,eW as filesystemConfigDefaults,D8 as featuresConfigDefaults,rZ as eventConfigDefaults,uW as evaluateFeature,_5 as encodeCursor,KZ as documentScriptCspHash,$8 as discoverWorkflows,Y8 as discoverListeners,Z8 as discoverJobs,J8 as discoverCronJobs,Q8 as discoverCommands,j8 as defineTranslationConfig,oZ as defineScheduleConfig,m5 as defineRunsConfig,$Z as defineRouteConfig,I8 as defineRedisConfig,T8 as defineRateLimiterConfig,_Z as defineQueueConfig,jZ as defineMiddlewareConfig,xZ as defineMailConfig,f8 as defineLogConfig,r5 as defineImageConfig,rW as defineFilesystemConfig,x8 as defineFeaturesConfig,IW as defineFeature,tZ as defineEventConfig,s6 as defineEncryptionConfig,lZ as defineCommandConfig,iZ as defineCommand,S5 as defineChangeFeedConfig,Q5 as defineCacheConfig,v5 as defineBroadcastConfig,hW as defineAuthConfig,f5 as decodeCursor,SZ as createWorkflowTableStatements,n5 as createRunsTableStatements,nZ as commandConfigDefaults,R5 as changeFeedConfigDefaults,Y5 as cacheConfigDefaults,mW as bucketOf,EW as bucketKey,q5 as broadcastConfigDefaults,S4 as bearerToken,gW as authConfigDefaults,K4 as assertDeletablePrefix,JZ as apiRouteConfigDefaults,A6 as XOAuthProvider,vZ as WorkflowRuntime,VZ as WorkflowCancelledError,W8 as Workflow,TZ as WaitTimeoutError,XZ as ViewRouteDispatcher,sW as UndeclaredFeatureError,X5 as TaggedCache,PZ as StepTimeoutError,bZ as StepFailedError,IZ as Step,d6 as StaticFeatureFlagSource,t5 as Sharp,uZ as Scheduler,L8 as ScheduleServiceProvider,zZ as STATIC_NAVIGATION_CSP_HASH,I5 as SOCKET_ID_HEADER,vW as SESSION_TOKEN_PREFIX,w0 as S3Driver,y8 as RunsServiceProvider,i5 as RunNotFoundError,o5 as RunManager,s5 as RunFailure,w8 as RouteServiceProvider,NZ as ResendDriver,q8 as RedisServiceProvider,B4 as RedisRateLimiterTimeoutError,E0 as RedisRateLimiter,P1 as RedisManager,G5 as RedisCacheStore,y5 as RedisBroadcastDriver,V8 as RateLimiterServiceProvider,X4 as RateLimiterDriver,yW as RateLimiter,t as RangeNotSatisfiableError,K8 as QueueServiceProvider,qZ as QueueManager,O5 as ProviderConnection,J6 as PrismaMcpOAuthStore,g5 as PendingBroadcast,u5 as OPEN_RUN_STATUSES,H5 as OAuthReconnectRequiredError,i as OAuthProvider,P0 as OAuthConnectionProvider,b1 as OAuthConnectionError,k as OAuthCallbackError,b8 as MiddlewareServiceProvider,ZZ as MiddlewareRegistry,V as MetaSignedRequestError,CZ as MemoryWorkflowStore,d5 as MemoryRunStore,kZ as MemoryQueueDriver,$6 as MemoryMcpOAuthStore,UZ as MemoryLockStore,D5 as MemoryConnectionStore,k5 as MemoryChangeFeedDriver,K5 as MemoryCacheStore,w5 as MemoryBroadcastDriver,AZ as McpToolError,EZ as McpRegistry,W6 as McpOAuthServer,cZ as McpHttpServer,hZ as McpCallRefusedError,mZ as McpApiKeyResolver,H8 as MailServiceProvider,FZ as MailManager,k8 as LogServiceProvider,J5 as LogManager,M5 as LockManager,B5 as LockLostError,eZ as Listener,_8 as KernelIdServiceProvider,YZ as KernelId,wZ as Job,V5 as InvalidChannelError,u6 as InstagramOAuthProvider,p6 as InstagramConnectionProvider,P as InstagramApiError,AW as InMemoryRateLimiter,R8 as ImageServiceProvider,a5 as ImageOptimizationDriver,WZ as ImageManager,GZ as ISLAND_LOADER_CSP_HASH,j5 as HeldLock,z6 as GoogleOAuthProvider,S8 as FilesystemServiceProvider,W5 as FilesystemManager,tW as FileSystemDriver,L1 as FileStorageDriver,d as FileNotFoundError,F8 as FeaturesServiceProvider,iW as FeatureSourceReadOnlyError,oW as FeatureScope,dW as FeatureReloadError,nW as FeatureModelMissingError,aW as FeatureManager,lW as FeatureFlagStore,I0 as FeatureFlagSource,V0 as Feature,c5 as FINAL_RUN_STATUSES,O8 as EventServiceProvider,C as EventManager,h1 as Event,U8 as EncryptionServiceProvider,N5 as EncryptionKeyError,L5 as Encrypter,LZ as EmailDriver,x5 as DecryptionError,OZ as DatabaseWorkflowStore,l5 as DatabaseRunStore,RZ as DatabaseQueueDriver,HZ as DatabaseLockStore,N8 as DatabaseFeatureFlagSource,F5 as DatabaseConnectionStore,C5 as DatabaseChangeFeedDriver,yZ as DEFAULT_MCP_SCOPE,sZ as CronJob,U5 as ConnectionManager,A8 as CommandRegistry,pZ as CommandFailed,dZ as Command,P5 as ChangeFeedSubscription,X8 as ChangeFeedServiceProvider,T5 as ChangeFeedManager,b5 as ChangeFeedFullError,z8 as CacheServiceProvider,z5 as CacheManager,V1 as CONSENT_PAGE_HEADERS,G8 as BroadcastServiceProvider,E5 as BroadcastScope,A5 as BroadcastPayloadTooLargeError,h5 as BroadcastManager,G6 as BroadcastEvent,A0 as AzureBlobDriver,B8 as AuthServiceProvider,q1 as AuthManager,BZ as ApiRouteDispatcher};
71
71
 
72
- //# debugId=E87CB6E0AD80391E64756E2164756E21
72
+ //# debugId=DEFC20C0F2F5C7BD64756E2164756E21