gemi 0.4.72 → 0.4.74

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 (98) hide show
  1. package/dist/app/App.d.ts +0 -1
  2. package/dist/app/App.d.ts.map +1 -1
  3. package/dist/app/index.js +62 -62
  4. package/dist/chunk-0f15c920a9e36b9d.js +2 -0
  5. package/dist/{chunk-aa3cd1ebb3cef8cf.js → chunk-146715025d13a0cd.js} +1 -1
  6. package/dist/chunk-15e6e8c0dd4b0672.js +2 -0
  7. package/dist/chunk-2108d757e3dff3e5.js +2 -0
  8. package/dist/{chunk-d03b02d5f8128f13.js → chunk-32c9eede30a4534c.js} +2 -2
  9. package/dist/{chunk-d7c78cd1ab7dc7ed.js → chunk-33ee54a02c10fc37.js} +1 -1
  10. package/dist/{chunk-11cd81b560d496a3.js → chunk-474c8dc0ac6b3cdf.js} +1 -1
  11. package/dist/{chunk-32483f77b064cc0a.js → chunk-4d058b99d3cd50d3.js} +2 -2
  12. package/dist/{chunk-f25e3644c98f64a7.js → chunk-56b5bf53d53c03a4.js} +1 -1
  13. package/dist/{chunk-7ffc808402a7646b.js → chunk-64a4f5b40b729f4f.js} +1 -1
  14. package/dist/{chunk-98d9ccc476ab91dc.js → chunk-74019c1ac29f1d31.js} +1 -1
  15. package/dist/{chunk-65cd4d128b79bd93.js → chunk-9501e589e3e86a96.js} +1 -1
  16. package/dist/{chunk-db03a0a05fbe3bc4.js → chunk-a1e43f3e2aa39908.js} +1 -1
  17. package/dist/chunk-a4b73fda470356b4.js +3 -0
  18. package/dist/{chunk-6c1b62f2d8dc48e2.js → chunk-a6cfd5c0ed5980bd.js} +1 -1
  19. package/dist/chunk-a909d17bbac3413c.js +1 -0
  20. package/dist/chunk-a92a4cb80ddf74b0.js +2 -0
  21. package/dist/{chunk-4672a061bfa698ce.js → chunk-bd7553048dc4a7f0.js} +1 -1
  22. package/dist/{chunk-a1efc60864e65ef2.js → chunk-c041f058dc3d571b.js} +1 -1
  23. package/dist/{chunk-dfc59075d409b16e.js → chunk-d73f00cff7e5d51a.js} +1 -1
  24. package/dist/chunk-e8b83fc64856dfe0.js +2 -0
  25. package/dist/chunk-e98666083e9a2b6f.js +2 -0
  26. package/dist/chunk-ff5ac7825f395891.js +18 -0
  27. package/dist/client/Link.d.ts +4 -2
  28. package/dist/client/Link.d.ts.map +1 -1
  29. package/dist/client/QueryManagerContext.d.ts +3 -3
  30. package/dist/client/QueryManagerContext.d.ts.map +1 -1
  31. package/dist/client/ServerDataProvider.d.ts +1 -0
  32. package/dist/client/ServerDataProvider.d.ts.map +1 -1
  33. package/dist/client/auth/useUser.d.ts +1 -11
  34. package/dist/client/auth/useUser.d.ts.map +1 -1
  35. package/dist/client/index.js +42 -15
  36. package/dist/client/useNavigate.d.ts +2 -2
  37. package/dist/client/useNavigate.d.ts.map +1 -1
  38. package/dist/client/useQuery.d.ts +2 -2
  39. package/dist/client/useQuery.d.ts.map +1 -1
  40. package/dist/email/index.js +1 -1
  41. package/dist/facades/FileStorage.d.ts +12 -0
  42. package/dist/facades/FileStorage.d.ts.map +1 -0
  43. package/dist/facades/Prefetch.d.ts +25 -0
  44. package/dist/facades/Prefetch.d.ts.map +1 -0
  45. package/dist/facades/index.d.ts +2 -0
  46. package/dist/facades/index.d.ts.map +1 -1
  47. package/dist/facades/index.js +1 -1
  48. package/dist/http/HttpRequest.d.ts +5 -1
  49. package/dist/http/HttpRequest.d.ts.map +1 -1
  50. package/dist/http/index.js +1 -1
  51. package/dist/http/requestContext.d.ts +6 -3
  52. package/dist/http/requestContext.d.ts.map +1 -1
  53. package/dist/kernel/Kernel.d.ts +13 -2
  54. package/dist/kernel/Kernel.d.ts.map +1 -1
  55. package/dist/kernel/context.d.ts +6 -2
  56. package/dist/kernel/context.d.ts.map +1 -1
  57. package/dist/kernel/index.js +2 -2
  58. package/dist/server/index.js +1 -1
  59. package/dist/services/ServiceProvider.d.ts +4 -0
  60. package/dist/services/ServiceProvider.d.ts.map +1 -0
  61. package/dist/services/file-storage/FileStorageServiceContainer.d.ts +6 -0
  62. package/dist/services/file-storage/FileStorageServiceContainer.d.ts.map +1 -0
  63. package/dist/services/file-storage/FileStorageServiceProvider.d.ts +5 -0
  64. package/dist/services/file-storage/FileStorageServiceProvider.d.ts.map +1 -0
  65. package/dist/services/file-storage/drivers/FileStorageDriver.d.ts +6 -0
  66. package/dist/services/file-storage/drivers/FileStorageDriver.d.ts.map +1 -0
  67. package/dist/services/file-storage/drivers/FileSystemDriver.d.ts +9 -0
  68. package/dist/services/file-storage/drivers/FileSystemDriver.d.ts.map +1 -0
  69. package/dist/services/file-storage/drivers/S3Driver.d.ts +10 -0
  70. package/dist/services/file-storage/drivers/S3Driver.d.ts.map +1 -0
  71. package/dist/services/file-storage/drivers/types.d.ts +19 -0
  72. package/dist/services/file-storage/drivers/types.d.ts.map +1 -0
  73. package/dist/services/index.d.ts +6 -0
  74. package/dist/services/index.d.ts.map +1 -0
  75. package/dist/services/index.js +11 -0
  76. package/dist/services/middleware/MiddlewareServiceContainer.d.ts +8 -0
  77. package/dist/services/middleware/MiddlewareServiceContainer.d.ts.map +1 -0
  78. package/dist/services/router/ApiRouterServiceContainer.d.ts +13 -0
  79. package/dist/services/router/ApiRouterServiceContainer.d.ts.map +1 -0
  80. package/dist/services/router/ApiRouterServiceProvider.d.ts +8 -0
  81. package/dist/services/router/ApiRouterServiceProvider.d.ts.map +1 -0
  82. package/dist/services/router/createFlatApiRoutes.d.ts +16 -0
  83. package/dist/services/router/createFlatApiRoutes.d.ts.map +1 -0
  84. package/dist/utils/omitNullishValues.d.ts +2 -0
  85. package/dist/utils/omitNullishValues.d.ts.map +1 -0
  86. package/package.json +2 -2
  87. package/dist/chunk-466213c5585251ad.js +0 -2
  88. package/dist/chunk-6596f9d480e68b0a.js +0 -2
  89. package/dist/chunk-718d1e84f3207c29.js +0 -2
  90. package/dist/chunk-c4927c583b31b4be.js +0 -18
  91. package/dist/chunk-d1c7d307baac84fb.js +0 -2
  92. package/dist/chunk-e565da7343a33b65.js +0 -3
  93. package/dist/chunk-f90e2f05651f95fc.js +0 -2
  94. package/dist/storage/File.d.ts +0 -26
  95. package/dist/storage/File.d.ts.map +0 -1
  96. package/dist/storage/index.d.ts +0 -2
  97. package/dist/storage/index.d.ts.map +0 -1
  98. package/dist/storage/index.js +0 -2
@@ -134,20 +134,47 @@ class QueryResource {
134
134
  }
135
135
  }
136
136
  }
137
+ const ServerDataContext = createContext({});
138
+ const ServerDataProvider = (props) => {
139
+ let _value = props.value;
140
+ if (props.value) {
141
+ _value = props.value;
142
+ } else {
143
+ _value = window.__GEMI_DATA__;
144
+ }
145
+ return /* @__PURE__ */ jsx(ServerDataContext.Provider, { value: _value, children: props.children });
146
+ };
137
147
  const QueryManagerContext = createContext({
138
148
  getResource: (key, initialState = {}) => {
139
149
  return new QueryResource(key, initialState);
150
+ },
151
+ updatePrefecthedData: (_data) => {
140
152
  }
141
153
  });
142
154
  const QueryManagerProvider = ({ children }) => {
143
155
  const resourcesRef = useRef(/* @__PURE__ */ new Map());
156
+ const { prefetchedData } = useContext(ServerDataContext);
157
+ const prefetchedDataRef = useRef(prefetchedData);
158
+ const updatePrefecthedData = (data) => {
159
+ for (const [key, value] of Object.entries(data)) {
160
+ prefetchedDataRef.current[key] = value;
161
+ }
162
+ };
144
163
  return /* @__PURE__ */ jsx(
145
164
  QueryManagerContext.Provider,
146
165
  {
147
166
  value: {
148
- getResource: (key, initialState = {}) => {
167
+ updatePrefecthedData,
168
+ getResource: (key, initialState) => {
169
+ let _initialState = initialState;
170
+ if (!_initialState && prefetchedDataRef.current[key]) {
171
+ _initialState = prefetchedDataRef.current[key];
172
+ }
149
173
  if (!resourcesRef.current.has(key)) {
150
- resourcesRef.current.set(key, new QueryResource(key, initialState));
174
+ resourcesRef.current.set(
175
+ key,
176
+ new QueryResource(key, _initialState ?? {})
177
+ );
151
178
  }
152
179
  return resourcesRef.current.get(key);
153
180
  }
@@ -172,7 +199,7 @@ function applyParams$1(url, params) {
172
199
  }
173
200
  const defaultConfig = {
174
201
  fallbackData: null,
175
- keepPreviousData: false,
202
+ keepPreviousData: true,
176
203
  retryIntervalOnError: 1e4
177
204
  };
178
205
  const defaultOptions$1 = {
@@ -197,7 +224,10 @@ function useQuery(url, ...args) {
197
224
  searchParams.sort();
198
225
  const variantKey = searchParams.toString();
199
226
  const [resource] = useState(
200
- () => getResource(normalPath, { [variantKey]: config.fallbackData })
227
+ () => getResource(
228
+ normalPath,
229
+ config.fallbackData ? { [variantKey]: config.fallbackData } : null
230
+ )
201
231
  );
202
232
  const retryIntervalRef = useRef();
203
233
  const retryingMap = useRef(/* @__PURE__ */ new Map());
@@ -1505,16 +1535,6 @@ class ProgressManager {
1505
1535
  this.unsubscribe();
1506
1536
  }
1507
1537
  }
1508
- const ServerDataContext = createContext({});
1509
- const ServerDataProvider = (props) => {
1510
- let _value = props.value;
1511
- if (props.value) {
1512
- _value = props.value;
1513
- } else {
1514
- _value = window.__GEMI_DATA__;
1515
- }
1516
- return /* @__PURE__ */ jsx(ServerDataContext.Provider, { value: _value, children: props.children });
1517
- };
1518
1538
  const I18nContext = createContext({});
1519
1539
  const I18nProvider = (props) => {
1520
1540
  const { i18n } = useContext(ServerDataContext);
@@ -1598,6 +1618,7 @@ function useNavigate() {
1598
1618
  isNavigatingSubject,
1599
1619
  setNavigationAbortController
1600
1620
  } = useContext(ClientRouterContext);
1621
+ const { updatePrefecthedData } = useContext(QueryManagerContext);
1601
1622
  const { fetchTranslations } = useContext(I18nContext);
1602
1623
  function action(pushOrReplace) {
1603
1624
  return async (path, ...args) => {
@@ -1643,7 +1664,12 @@ function useNavigate() {
1643
1664
  )
1644
1665
  ]);
1645
1666
  if (res.ok) {
1646
- const { data, directive = {}, is404 = false } = await res.json();
1667
+ const {
1668
+ data,
1669
+ prefetchedData,
1670
+ directive = {},
1671
+ is404 = false
1672
+ } = await res.json();
1647
1673
  if ((directive == null ? void 0 : directive.kind) === "Redirect") {
1648
1674
  if (directive == null ? void 0 : directive.path) {
1649
1675
  isNavigatingSubject.next(false);
@@ -1652,6 +1678,7 @@ function useNavigate() {
1652
1678
  return;
1653
1679
  }
1654
1680
  updatePageData(data);
1681
+ updatePrefecthedData(prefetchedData);
1655
1682
  history == null ? void 0 : history[pushOrReplace](
1656
1683
  navigationPath,
1657
1684
  is404 ? { status: 404 } : {}
@@ -8,8 +8,8 @@ type Options<T extends ViewPaths> = UrlParser<T> extends Record<string, never> ?
8
8
  shallow?: boolean;
9
9
  };
10
10
  export declare function useNavigate(): {
11
- push: <T extends ViewPaths>(path: T, ...args: UrlParser<T> extends Record<string, never> ? [options?: Options<T>] : [options: Options<T>]) => Promise<void>;
12
- replace: <T extends ViewPaths>(path: T, ...args: UrlParser<T> extends Record<string, never> ? [options?: Options<T>] : [options: Options<T>]) => Promise<void>;
11
+ push: <T extends ViewPaths>(path: T | (string & {}), ...args: UrlParser<T> extends Record<string, never> ? [options?: Options<T>] : [options: Options<T>]) => Promise<void>;
12
+ replace: <T extends ViewPaths>(path: T | (string & {}), ...args: UrlParser<T> extends Record<string, never> ? [options?: Options<T>] : [options: Options<T>]) => Promise<void>;
13
13
  };
14
14
  export {};
15
15
  //# sourceMappingURL=useNavigate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigate.d.ts","sourceRoot":"","sources":["../../client/useNavigate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIpD,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,IAC9B,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACtC;IACE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IACE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;IACtE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAER,wBAAgB,WAAW;WAYT,CAAC,SAAS,SAAS,QACzB,CAAC,WACE,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;cAJb,CAAC,SAAS,SAAS,QACzB,CAAC,WACE,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;EAoF9B"}
1
+ {"version":3,"file":"useNavigate.d.ts","sourceRoot":"","sources":["../../client/useNavigate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKpD,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,IAC9B,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACtC;IACE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IACE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;IACtE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAER,wBAAgB,WAAW;WAaT,CAAC,SAAS,SAAS,QACzB,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,WACd,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;cAJb,CAAC,SAAS,SAAS,QACzB,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,WACd,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;EA0F9B"}
@@ -1,5 +1,5 @@
1
1
  import type { RPC } from "./rpc";
2
- import type { JSONLike, Prettify } from "../utils/type";
2
+ import type { JSONLike } from "../utils/type";
3
3
  import type { ApiRouterHandler } from "../http/ApiRouter";
4
4
  import type { UnwrapPromise } from "../utils/type";
5
5
  import type { UrlParser } from "./types";
@@ -35,7 +35,7 @@ export declare function useQuery<T extends keyof GetRPC>(url: T, ...args: UrlPar
35
35
  },
36
36
  config?: Config<Data<T>>
37
37
  ]): {
38
- data: Prettify<Data<T>>;
38
+ data: Data<T>;
39
39
  loading: boolean;
40
40
  error: Error;
41
41
  mutate: {
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../client/useQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../client/useQuery.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import"../http/index.js";import"../facades/index.js";import{r as w,s as c} from"../kernel/index.js";import"../chunk-7ce930fe69575c87.js";import{renderToStaticMarkup as u} from"react-dom/server";var x=(t)=>{return`<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">${u(t)}`};class s{static async send(t,r){const e=new t,{to:a=e.to,from:l=e.from,subject:m=e.subject,cc:p=e.cc,bcc:T=e.bcc,attachments:d=e.attachments,data:E}=r,n=x(e.render(E));if(process.env.EMAIL_DEBUG){const o=`${process.env.ROOT_DIR}/.debug/emails/${(new Date()).toISOString()}${m}.html`;await Bun.write(o,n),Bun.spawnSync(["open",o]);return}await c.getContext().emailServiceProvider.send({bcc:T,cc:p,from:l,subject:m,to:a,attachments:d,html:n})}}import{createElement as f,Fragment as g} from"react";class i{from="doe@gemijs.dev";to=["hi@gemijs.dev"];subject="Welcome";cc=[];bcc=[];attachments=[];render(t){return console.log("EmailTemplate"),f(g,null,"EmailTemplate")}}export{i as EmailTemplate,w as EmailServiceProvider,s as Email};
2
+ import"../http/index.js";import"../facades/index.js";import{r as w,s as c} from"../kernel/index.js";import"../chunk-7ce930fe69575c87.js";import"../chunk-474c8dc0ac6b3cdf.js";import"../chunk-a92a4cb80ddf74b0.js";import"../chunk-2108d757e3dff3e5.js";import{renderToStaticMarkup as u} from"react-dom/server";var x=(t)=>{return`<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">${u(t)}`};class s{static async send(t,r){const e=new t,{to:a=e.to,from:l=e.from,subject:m=e.subject,cc:p=e.cc,bcc:T=e.bcc,attachments:d=e.attachments,data:E}=r,n=x(e.render(E));if(process.env.EMAIL_DEBUG){const o=`${process.env.ROOT_DIR}/.debug/emails/${(new Date()).toISOString()}${m}.html`;await Bun.write(o,n),Bun.spawnSync(["open",o]);return}await c.getContext().emailServiceProvider.send({bcc:T,cc:p,from:l,subject:m,to:a,attachments:d,html:n})}}import{createElement as f,Fragment as g} from"react";class i{from="doe@gemijs.dev";to=["hi@gemijs.dev"];subject="Welcome";cc=[];bcc=[];attachments=[];render(t){return console.log("EmailTemplate"),f(g,null,"EmailTemplate")}}export{i as EmailTemplate,w as EmailServiceProvider,s as Email};
@@ -0,0 +1,12 @@
1
+ import sharp from "sharp";
2
+ import type { Prettify } from "../utils/type";
3
+ import type { PutFileParams, ReadFileParams } from "../services/file-storage/drivers/types";
4
+ type Metadata = Prettify<sharp.Metadata>;
5
+ export declare class FileStorage {
6
+ static put(params: PutFileParams | Blob): Promise<string>;
7
+ static metadata(obj: Blob | File): Promise<Partial<Metadata>>;
8
+ static fetch(params: ReadFileParams | string): Promise<Response>;
9
+ static delete(): void;
10
+ }
11
+ export {};
12
+ //# sourceMappingURL=FileStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileStorage.d.ts","sourceRoot":"","sources":["../../facades/FileStorage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACf,MAAM,wCAAwC,CAAC;AAEhD,KAAK,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAEzC,qBAAa,WAAW;WACT,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;WAMhC,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;WAStD,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAKlD,MAAM,CAAC,MAAM;CACd"}
@@ -0,0 +1,25 @@
1
+ import type { RPC } from "../client/rpc";
2
+ import type { UrlParser } from "../client/types";
3
+ import type { ApiRouterHandler } from "../http/ApiRouter";
4
+ type GetRPC = {
5
+ [K in keyof RPC as K extends `GET:${infer P}` ? P : never]: RPC[K];
6
+ };
7
+ type Data<T extends keyof GetRPC> = GetRPC[T] extends ApiRouterHandler<any, infer Data, any> ? Awaited<Data> : never;
8
+ type Input<T extends keyof GetRPC> = GetRPC[T] extends ApiRouterHandler<infer Input, any, any> ? Input : never;
9
+ export declare class Query {
10
+ private static prepare;
11
+ static instant<T extends keyof GetRPC>(path: T, ...args: UrlParser<T> extends Record<string, never> ? [options?: {
12
+ search: Partial<Input<T>>;
13
+ }] : [options: {
14
+ search?: Partial<Input<T>>;
15
+ params: UrlParser<T>;
16
+ }]): Promise<Data<T>>;
17
+ static prefetch<T extends keyof GetRPC>(path: T, ...args: UrlParser<T> extends Record<string, never> ? [options?: {
18
+ search: Partial<Input<T>>;
19
+ }] : [options: {
20
+ search?: Partial<Input<T>>;
21
+ params: UrlParser<T>;
22
+ }]): void;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=Prefetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Prefetch.d.ts","sourceRoot":"","sources":["../../facades/Prefetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAO1D,KAAK,MAAM,GAAG;KACX,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,OAAO,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;CACnE,CAAC;AAEF,KAAK,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,IAC9B,MAAM,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,GAAG,CAAC,GACpD,OAAO,CAAC,IAAI,CAAC,GACb,KAAK,CAAC;AAEZ,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,MAAM,IAC/B,MAAM,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,MAAM,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5E,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAC,OAAO;IAkDtB,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,MAAM,MAAM,EACnC,IAAI,EAAE,CAAC,EACP,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC,GACzC,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;IAKrE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,MAAM,EACpC,IAAI,EAAE,CAAC,EACP,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC,GACzC,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;CAItE"}
@@ -1,4 +1,6 @@
1
1
  export { Auth } from "./Auth";
2
2
  export { Redirect } from "./Redirect";
3
3
  export { I18n } from "./I18n";
4
+ export { FileStorage } from "./FileStorage";
5
+ export { Query } from "./Prefetch";
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../facades/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../facades/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{f as l,h as s,l as c,n as i} from"../http/index.js";import"../chunk-7ce930fe69575c87.js";class n{static async user(){const r=s.getStore(),t=r.req.cookies.get("access_token");let a=r.user;if(!a)a=(await c.getStore().authenticationServiceProvider.adapter.findSession({token:t,userAgent:r.req.headers.get("User-Agent")}))?.user,r.setUser(a);if(a)return a;return null}static async guard(r){const t=await n.user();if(!t)throw new i;try{if(!await r(t))throw new i}catch(a){throw new i}}static async guardSafe(r){const t=await n.user();if(!t)return!1;try{return await r(t)}catch(a){return!1}}}function d(r,t){return r.replace(/:([^/]+)/g,(a,e)=>{const o=e.endsWith("?"),p=o?e.slice(0,-1):e,m=t[p];if(m===void 0){if(o)return"";throw new Error(`Missing parameter: ${p}`)}return m}).replace(/\/\//g,"/")}class g extends l{constructor(r){super("Redirect error");this.name="RedirectError",this.payload={api:{status:200,data:{},directive:{kind:"Redirect",path:r}},view:{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:r}}}}}class T{static to(r,...t){const[a={}]=t;throw new g(d(r,a))}}function P(r,t){return r.replace(/{{([^}]+)}}/g,(a,e)=>{const o=t[e];if(o===void 0)throw new Error(`Missing parameter: ${e}`);return o})}class w{static scope(r){return r}static translate(r,...t){const a=c.getStore().i18nServiceContainer,e=a.detectLocale(s.getStore().req),o=a.translations.get(`${e}.server`)?.[r];if(!o)return r;return P(o,t[0])}}export{T as Redirect,w as I18n,n as Auth};export{n as q};
2
+ import{f as T,h as o,i as S,l as s,n as l} from"../http/index.js";import{y as b} from"../chunk-7ce930fe69575c87.js";import{A as V} from"../chunk-474c8dc0ac6b3cdf.js";class d{static async user(){const t=o.getStore(),r=t.req.cookies.get("access_token");let e=t.user;if(!e)e=(await s.getStore().authenticationServiceProvider.adapter.findSession({token:r,userAgent:t.req.headers.get("User-Agent")}))?.user,t.setUser(e);if(e)return e;return null}static async guard(t){const r=await d.user();if(!r)throw new l;try{if(!await t(r))throw new l}catch(e){throw new l}}static async guardSafe(t){const r=await d.user();if(!r)return!1;try{return await t(r)}catch(e){return!1}}}function m(t,r){return t.replace(/:([^/]+)/g,(e,a)=>{const n=a.endsWith("?"),i=n?a.slice(0,-1):a,p=r[i];if(p===void 0){if(n)return"";throw new Error(`Missing parameter: ${i}`)}return p}).replace(/\/\//g,"/")}class y extends T{constructor(t){super("Redirect error");this.name="RedirectError",this.payload={api:{status:200,data:{},directive:{kind:"Redirect",path:t}},view:{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:t}}}}}class g{static to(t,...r){const[e={}]=r;throw new y(m(t,e))}}function h(t,r){return t.replace(/{{([^}]+)}}/g,(e,a)=>{const n=r[a];if(n===void 0)throw new Error(`Missing parameter: ${a}`);return n})}class x{static scope(t){return t}static translate(t,...r){const e=s.getStore().i18nServiceContainer,a=e.detectLocale(o.getStore().req),n=e.translations.get(`${a}.server`)?.[t];if(!n)return t;return h(n,r[0])}}var v=b(V(),1);import{Buffer as j} from"buffer";class w{static async put(t){return s.getStore().fileStorageServiceContainer.service.driver.put(t)}static async metadata(t){const r=j.from(await t.arrayBuffer());try{return await v.default(r).metadata()}catch{return{}}}static async fetch(t){return s.getStore().fileStorageServiceContainer.service.driver.fetch(t)}static delete(){}}function C(t){return Object.fromEntries(Object.entries(t).filter(([,r])=>{return r!==null&&r!==void 0}))}class f{static prepare(t,...r){const e={params:{},search:{}},[a={}]=r,{search:n,params:i}={...e,...a},p=o.getStore(),P=p.req.rawRequest,U=new URL(P.url),u=new URLSearchParams(C(n)),I=[`${m(t,i)}`,u.toString()].filter((c)=>c.length>0).join("?"),G=`${U.origin}/${I}`,$=new Request(G,{headers:P.headers}),D=new S($,i),F=(c)=>{p.prefetchedResources.set(m(t,i),{[u.toString()]:c})},R=()=>{return o.run(D,async()=>{const c=await s.getStore().apiRouterServiceContainer.getRouteData(t);return F(c),c})};return{instant:R,prefetch:()=>{p.prefetchPromiseQueue.add(R)}}}static instant(t,...r){return f.prepare(t,...r).instant()}static prefetch(t,...r){return f.prepare(t,...r).prefetch()}}export{g as Redirect,f as Query,x as I18n,w as FileStorage,d as Auth};export{d as q};
@@ -22,17 +22,21 @@ export declare class HttpRequest<T extends Body = Record<string, never>, Params
22
22
  rawRequest: Request;
23
23
  headers: Headers;
24
24
  cookies: Map<string, string>;
25
+ search: Input<T>;
25
26
  schema: any;
26
27
  params: Params;
27
28
  ctx: {
28
29
  cookies: Set<import("./Cookie").Cookie>;
29
30
  headers: Headers;
31
+ prefetchedResources: Map<string, Record<string, any>>;
32
+ prefetchPromiseQueue: Set<() => Promise<any>>;
30
33
  user: any;
31
- req: HttpRequest | null;
34
+ req: HttpRequest;
32
35
  setCookie(name: string, value: string, options?: import("./Cookie").CreateCookieOptions): void;
33
36
  setHeaders(name: string, value: string): void;
34
37
  setUser(user: any): void;
35
38
  setRequest(req: HttpRequest<any, any>): void;
39
+ destroy(): void;
36
40
  };
37
41
  constructor(req?: Request, params?: any);
38
42
  refine(_input: any): any;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpRequest.d.ts","sourceRoot":"","sources":["../../http/HttpRequest.ts"],"names":[],"mappings":"AAGA,cAAM,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC3B,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,CAAC;IAEpB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAInC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;IAIhB,MAAM,IAAI,CAAC;CAGnB;AAuHD,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC3B,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC3B,KAAK,WAAW,GAAG,SAAS,CAAC;AAC7B,KAAK,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC;AACrC,KAAK,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC;AACrC,KAAK,YAAY,GAAG,UAAU,CAAC;AAC/B,KAAK,QAAQ,GAAG,MAAM,CAAC;AACvB,KAAK,YAAY,GAAG,oBAAoB,CAAC;AACzC,KAAK,YAAY,GAAG,oBAAoB,CAAC;AACzC,KAAK,SAAS,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,MAAM,CACzC,MAAM,CAAC,EACP,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CACnC,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvC,qBAAa,WAAW,CACtB,CAAC,SAAS,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACtC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAEvB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,MAAM,EAAE,GAAG,CAAM;IAEjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG;;;;;;;;;MAA6B;gBAE3B,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG;IAwBhC,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;YAIjB,SAAS;IAwCvB,OAAO,CAAC,aAAa;IA+CR,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAS1B,SAAS,IAAI,OAAO,CAAC;QAChC,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;KACjB,CAAC;IAsBW,SAAS,CAAC,OAAO,EAAE,eAAe;CAGhD;AAeD,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"HttpRequest.d.ts","sourceRoot":"","sources":["../../http/HttpRequest.ts"],"names":[],"mappings":"AAGA,cAAM,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC3B,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,CAAC;IAEpB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAInC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;IAIhB,MAAM,IAAI,CAAC;CAGnB;AAuHD,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC3B,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC3B,KAAK,WAAW,GAAG,SAAS,CAAC;AAC7B,KAAK,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC;AACrC,KAAK,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC;AACrC,KAAK,YAAY,GAAG,UAAU,CAAC;AAC/B,KAAK,QAAQ,GAAG,MAAM,CAAC;AACvB,KAAK,YAAY,GAAG,oBAAoB,CAAC;AACzC,KAAK,YAAY,GAAG,oBAAoB,CAAC;AACzC,KAAK,SAAS,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,MAAM,CACzC,MAAM,CAAC,EACP,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CACnC,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvC,qBAAa,WAAW,CACtB,CAAC,SAAS,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACtC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAEvB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,EAAE,GAAG,CAAM;IAEjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG;;;;;;;;;;;;MAA6B;gBAE3B,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG;IA6BhC,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;YAIjB,SAAS;IAyCvB,OAAO,CAAC,aAAa;IA+CR,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAI1B,SAAS,IAAI,OAAO,CAAC;QAChC,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;KACjB,CAAC;IAsBW,SAAS,CAAC,OAAO,EAAE,eAAe;CAGhD;AAeD,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B,CAAC"}
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import"../chunk-7ce930fe69575c87.js";class P{requests={};static kind="controller";constructor(){}}class f extends P{constructor(){super(...arguments)}}function H(e){return typeof e==="function"&&e.prototype!==void 0}var L=function(e){return H(e)};class u{e;t;n;middlewares=[];constructor(e,t,n){this.method=e;this.handler=t;this.methodName=n;this.handler=t,this.methodName=n,this.method=e}run(e){if(L(this.handler)){const t=new this.handler;return t[this.methodName].bind(t)()}else return this.handler(e)}middleware(e){return this.middlewares=e,this}}class K{constructor(...e){return new u(...e)}}class h{routes={};middlewares=[];middleware(e){}get(e,t){return new u("GET",e,t)}post(e,t){return new u("POST",e,t)}put(e,t){return new u("PUT",e,t)}patch(e,t){return new u("PATCH",e,t)}delete(e,t){return new u("DELETE",e,t)}resource(e){class t extends h{constructor(){super(...arguments)}routes={"/":{list:this.get(e,"list"),create:this.post(e,"create")},"/:id":{show:this.get(e,"show"),update:this.put(e,"update"),delete:this.delete(e,"delete")}}}return t}file(e,t){return new K("GET",e,t)}}class g{e;middlewares=[];handler;constructor(e,t){this.viewPath=e;if(!t)this.handler=()=>({});else if(typeof t==="function")this.handler=t;else{const[n,r]=t,o=new n,s=o[r].bind(o);this.handler=(i)=>{return s()}}}async run(e){return{[this.viewPath]:await this.handler(e)}}middleware(e){return this.middlewares=e,this}}class O{e;children;middlewares=[];handler=()=>({});constructor(e,t,n){this.viewPath=e;if(typeof t==="function")this.handler=t,this.children=class extends c{routes=n??{}};else if(Array.isArray(t)){const[r,o]=t,s=new r,i=s[o].bind(s);this.handler=(a)=>{let d=a;return d=s.requests[o]?new s.requests[o](a.rawRequest,a.params):d,i(a)},this.children=class extends c{routes=n??{}}}else this.children=class extends c{routes=t},this.handler=()=>({})}async run(e){return{[this.viewPath]:await this.handler(e)}}middleware(e){return this.middlewares=e,this}}class c{middlewares=[];routes={};view(e,t){return new g(e,t)}layout(e,t,n){return new O(e,t,n)}}var Z="GEMI_REQUEST_BREAKER_ERROR";class l extends Error{constructor(){super(...arguments)}kind="GEMI_REQUEST_BREAKER_ERROR";payload={api:{},view:{}}}class y extends l{errors={};constructor(e){super("Validation error");this.name="ValidationError",this.errors=e,this.payload={api:{status:400,data:{error:{kind:"validation_error",messages:e}},headers:{"Content-Type":"application/json"}},view:{status:400}}}}import{AsyncLocalStorage as U} from"async_hooks";class m{e;t;n;constructor(e,t,n={}){this.name=e;this.value=t;this.options=n}toString(){return[`${this.name}=${this.value}`,this.options.maxAge?`Max-Age=${this.options.maxAge}`:"",this.options.httpOnly?"HttpOnly":"",this.options.secure?"Secure":"",this.options.sameSite?`SameSite=${this.options.sameSite}`:"SameSite=Strict",this.options.path?`Path=${this.options.path}`:"Path=/",this.options.domain?`Domain=${this.options.domain}`:"",this.options.expires?`Expires=${this.options.expires.toUTCString()}`:"",this.options.partitioned?"Partitioned":""].filter((e)=>e!=="").join("; ")}}var R=new U;class I{cookies=new Set;headers=new Headers;user=null;req=null;constructor(){}setCookie(e,t,n={}){this.cookies.add(new m(e,t,n))}setHeaders(e,t){this.headers.set(e,t)}setUser(e){this.user=e}setRequest(e){this.req=e}}class p{static getStore(){return R.getStore()}static setRequest(e){R.getStore().req=e}static async run(e){return R.run(new I,e)}}var v=function(e){const[t,n]=e.match(/\d+|\D+/g)??[];if(!t||!n)return 0;const r=parseInt(t);switch(n){case"B":return r;case"KB":return r*1024;case"MB":return r*1024*1024;case"GB":return r*1024*1024*1024;case"TB":return r*1024*1024*1024*1024;default:return 0}},D=function(e){switch(e){case"image":return"image";case"png":return"image/png";case"jpg":return"image/jpeg";case"jpeg":return"image/jpeg";case"ttf":return"font/ttf";case"excel":return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case"csv":return"text/csv";case"word":return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case"pdf":return"application/pdf";case"json":return"application/json";default:return e}},G=function(e){const[t,n]=e.split(":");switch(t){case"required":return(r)=>{if(r instanceof Blob)return r.size>0;return r!==null&&r!==void 0&&r?.length>0};case"password":return(r)=>{return/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{8,}$/.test(r)};case"number":return(r)=>{if(typeof r!=="number")return!1;return!isNaN(r)};case"min":return(r)=>{return r?.length>=parseInt(n)};case"max":return(r)=>{return r?.length<=parseInt(n)};case"email":return(r)=>{return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)};case"file":return(r)=>{return r instanceof Blob};case"fileType":return(r)=>{if(r instanceof Blob){const o=D(n);return r.type.startsWith(o)}};case"fileSize":return(r)=>{if(r instanceof Blob){const o=v(n);return r.size<=o}};default:return()=>!0}};class w{e;constructor(e){this.data=e}get(e){return this.data[e]}set(e,t){this.data[e]=t}has(e){return this.data[e]!==void 0}toJSON(){return this.data}}class M{rawRequest;headers;cookies;schema={};params;ctx=p.getStore();constructor(e,t){if(!e){const o=p.getStore().req;this.params=o.params,this.rawRequest=o.rawRequest}else this.params=t,this.rawRequest=e;this.headers=this.rawRequest.headers;const n=this.rawRequest.headers.get("Cookie"),r=new Map;if(n){const o=n.split(";");for(let s of o){const[i,a]=s.split("=");r.set(i.trim(),a.trim())}}this.cookies=r}refine(e){return{}}async parseBody(){const e=new w({});if(this.rawRequest.headers.get("Content-Type")==="application/json"){const t=await this.rawRequest.json();for(let[n,r]of Object.entries(t))e.set(n,r)}if(this.rawRequest.headers.get("Content-Type")==="application/x-www-form-urlencoded"){const t=await this.rawRequest.formData();for(let[n,r]of t)e.set(n,r)}if(this.rawRequest.headers.get("Content-Type").startsWith("multipart/form-data")){const t=await this.rawRequest.formData();for(let[n,r]of t)if(e.has(n)){const o=e.get(n);if(Array.isArray(o))o.push(r),e.set(n,o);else e.set(n,[o,r])}else e.set(n,r)}return e}validateInput(e){const t={};for(let[n,r]of Object.entries(this.schema))for(let[o,s]of Object.entries(r)){const i=G(o);let a=s,d=!1;if(typeof s==="function")a=s(e.get(n)),d=typeof a==="undefined";else d=i(e.get(n));if(d)continue;if(!t[n])t[n]=[];if(o==="required"){t[n]=[String(a)];break}else t[n].push(String(a))}for(let[n,r]of Object.entries(this.refine(e.toJSON())??{})){if(!t[n])t[n]=[];t[n]=[...t[n]??[],r]}if(Object.keys(t).length>0)throw new y(t);else return e}async input(){if(this.rawRequest.method==="GET"){const e=new URL(this.rawRequest.url),t=Object.fromEntries(e.searchParams.entries());return this.validateInput(new w(t))}return this.validateInput(await this.parseBody())}async safeInput(){const e=await this.parseBody();try{return this.validateInput(e),{isValid:!0,errors:{},input:e}}catch(t){if(!(t instanceof y))throw t;return{isValid:!1,errors:t.errors,input:e}}}async terminate(e){throw"not implemented"}}class T{async run(e){return{}}}function N(e){const t=e.headers.get("cookie");if(!t)return new Map;const n=new Map,r=t.split(";");for(let o of r){const[s,i]=o.split("=");n.set(s.trim(),i)}return n}class b{aliases={}}import{AsyncLocalStorage as _} from"async_hooks";var q=new _;class C{static getStore=()=>q.getStore()}class E extends l{error;constructor(e="Not authorized"){super("Authentication error");this.name="AuthenticationError",this.error=e,this.payload={api:{status:401,data:{error:this.error}},view:{}}}}class A extends l{error;constructor(e="Insufficient permissions"){super("Authentication error");this.name="AuthenticationError",this.error=e,this.payload={api:{status:401,data:{error:this.error}},view:{}}}}class x extends l{constructor(){super("Authentication error");this.name="AuthenticationError"}payload={api:{status:401,data:{error:"Authentication error"}},view:{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:"/auth/sign-in"}}}}class V extends T{constructor(){super(...arguments)}async run(e){const t=p.getStore(),n=t.req.cookies.get("access_token");if(!n)throw new x;let r=t.user;if(!r){const o=await C.getStore().authenticationServiceProvider.adapter.findSession({token:n,userAgent:t.req.headers.get("User-Agent")});if(!o)throw new x;r=o?.user,t.setUser(r)}return{}}}class ${policiesList={};constructor(){const e=this.register();for(let t of e){const n=new t;this.policiesList[t.name]=n}}register(){return[]}}class k{all(e,t){return!0}}class S{dictionary={};supportedLocales=[];defaultLocale="en-US";async init(){}detectLocale(e){return this.defaultLocale}}export{N as getCookies,c as ViewRouter,y as ValidationError,f as ResourceController,l as RequestBreakerError,$ as PoliciesServiceProvider,k as Policies,b as MiddlewareServiceProvider,T as Middleware,A as InsufficientPermissionsError,S as I18nServiceProvider,M as HttpRequest,P as Controller,E as AuthorizationError,V as AuthenticationMiddleware,x as AuthenticationError,h as ApiRouter};export{P as a,H as b,h as c,c as d,Z as e,l as f,y as g,p as h,M as i,b as j,q as k,C as l,E as m,A as n,$ as o,S as p};
2
+ import"../chunk-7ce930fe69575c87.js";class x{requests={};static kind="controller";constructor(){}}class C extends x{constructor(){super(...arguments)}}function H(e){return typeof e==="function"&&e.prototype!==void 0}var L=function(e){return H(e)};class u{e;t;n;middlewares=[];constructor(e,t,n){this.method=e;this.handler=t;this.methodName=n;this.handler=t,this.methodName=n,this.method=e}run(e){if(L(this.handler)){const t=new this.handler;return t[this.methodName].bind(t)()}else return this.handler(e)}middleware(e){return this.middlewares=e,this}}class K{constructor(...e){return new u(...e)}}class T{routes={};middlewares=[];middleware(e){}get(e,t){return new u("GET",e,t)}post(e,t){return new u("POST",e,t)}put(e,t){return new u("PUT",e,t)}patch(e,t){return new u("PATCH",e,t)}delete(e,t){return new u("DELETE",e,t)}resource(e){class t extends T{constructor(){super(...arguments)}routes={"/":{list:this.get(e,"list"),create:this.post(e,"create")},"/:id":{show:this.get(e,"show"),update:this.put(e,"update"),delete:this.delete(e,"delete")}}}return t}file(e,t){return new K("GET",e,t)}}class g{e;middlewares=[];handler;constructor(e,t){this.viewPath=e;if(!t)this.handler=()=>({});else if(typeof t==="function")this.handler=t;else{const[n,r]=t,s=new n,o=s[r].bind(s);this.handler=(i)=>{return o()}}}async run(e){return{[this.viewPath]:await this.handler(e)}}middleware(e){return this.middlewares=e,this}}class O{e;children;middlewares=[];handler=()=>({});constructor(e,t,n){this.viewPath=e;if(typeof t==="function")this.handler=t,this.children=class extends c{routes=n??{}};else if(Array.isArray(t)){const[r,s]=t,o=new r,i=o[s].bind(o);this.handler=(a)=>{let d=a;return d=o.requests[s]?new o.requests[s](a.rawRequest,a.params):d,i(a)},this.children=class extends c{routes=n??{}}}else this.children=class extends c{routes=t},this.handler=()=>({})}async run(e){return{[this.viewPath]:await this.handler(e)}}middleware(e){return this.middlewares=e,this}}class c{middlewares=[];routes={};view(e,t){return new g(e,t)}layout(e,t,n){return new O(e,t,n)}}var Z="GEMI_REQUEST_BREAKER_ERROR";class l extends Error{constructor(){super(...arguments)}kind="GEMI_REQUEST_BREAKER_ERROR";payload={api:{},view:{}}}class y extends l{errors={};constructor(e){super("Validation error");this.name="ValidationError",this.errors=e,this.payload={api:{status:400,data:{error:{kind:"validation_error",messages:e}},headers:{"Content-Type":"application/json"}},view:{status:400}}}}import{AsyncLocalStorage as U} from"async_hooks";class m{e;t;n;constructor(e,t,n={}){this.name=e;this.value=t;this.options=n}toString(){return[`${this.name}=${this.value}`,this.options.maxAge?`Max-Age=${this.options.maxAge}`:"",this.options.httpOnly?"HttpOnly":"",this.options.secure?"Secure":"",this.options.sameSite?`SameSite=${this.options.sameSite}`:"SameSite=Strict",this.options.path?`Path=${this.options.path}`:"Path=/",this.options.domain?`Domain=${this.options.domain}`:"",this.options.expires?`Expires=${this.options.expires.toUTCString()}`:"",this.options.partitioned?"Partitioned":""].filter((e)=>e!=="").join("; ")}}var R=new U;class I{e;cookies=new Set;headers=new Headers;prefetchedResources=new Map;prefetchPromiseQueue=new Set;user=null;constructor(e){this.req=e}setCookie(e,t,n={}){this.cookies.add(new m(e,t,n))}setHeaders(e,t){this.headers.set(e,t)}setUser(e){this.user=e}setRequest(e){this.req=e}destroy(){delete this.cookies,delete this.headers,delete this.prefetchedResources,delete this.prefetchPromiseQueue,delete this.user}}class p{static getStore(){return R.getStore()}static setRequest(e){R.getStore().req=e}static run(e,t){return R.run(new I(e),t)}}var v=function(e){const[t,n]=e.match(/\d+|\D+/g)??[];if(!t||!n)return 0;const r=parseInt(t);switch(n){case"B":return r;case"KB":return r*1024;case"MB":return r*1024*1024;case"GB":return r*1024*1024*1024;case"TB":return r*1024*1024*1024*1024;default:return 0}},D=function(e){switch(e){case"image":return"image";case"png":return"image/png";case"jpg":return"image/jpeg";case"jpeg":return"image/jpeg";case"ttf":return"font/ttf";case"excel":return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case"csv":return"text/csv";case"word":return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case"pdf":return"application/pdf";case"json":return"application/json";default:return e}},G=function(e){const[t,n]=e.split(":");switch(t){case"required":return(r)=>{if(r instanceof Blob)return r.size>0;return r!==null&&r!==void 0&&r?.length>0};case"password":return(r)=>{return/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{8,}$/.test(r)};case"number":return(r)=>{if(typeof r!=="number")return!1;return!isNaN(r)};case"min":return(r)=>{return r?.length>=parseInt(n)};case"max":return(r)=>{return r?.length<=parseInt(n)};case"email":return(r)=>{return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)};case"file":return(r)=>{return r instanceof Blob};case"fileType":return(r)=>{if(r instanceof Blob){const s=D(n);return r.type.startsWith(s)}};case"fileSize":return(r)=>{if(r instanceof Blob){const s=v(n);return r.size<=s}};default:return()=>!0}};class f{e;constructor(e){this.data=e}get(e){return this.data[e]}set(e,t){this.data[e]=t}has(e){return this.data[e]!==void 0}toJSON(){return this.data}}class M{rawRequest;headers;cookies;search;schema={};params;ctx=p.getStore();constructor(e,t){if(!e){const s=p.getStore().req;this.params=s.params,this.rawRequest=s.rawRequest}else this.params=t,this.rawRequest=e;this.headers=this.rawRequest.headers;const n=this.rawRequest.headers.get("Cookie"),r=new Map;if(n){const s=n.split(";");for(let o of s){const[i,a]=o.split("=");r.set(i.trim(),a.trim())}}if(this.rawRequest.method==="GET"){const s=new URL(this.rawRequest.url),o=Object.fromEntries(s.searchParams.entries());this.search=new f(o)}this.cookies=r}refine(e){return{}}async parseBody(){const e=new f({});if(this.rawRequest.headers.get("Content-Type")==="application/json"){const t=await this.rawRequest.json();for(let[n,r]of Object.entries(t))e.set(n,r)}if(this.rawRequest.headers.get("Content-Type")==="application/x-www-form-urlencoded"){const t=await this.rawRequest.formData();for(let[n,r]of t)e.set(n,r)}if(this.rawRequest.headers.get("Content-Type")?.startsWith("multipart/form-data")){const t=await this.rawRequest.formData();for(let[n,r]of t)if(e.has(n)){const s=e.get(n);if(Array.isArray(s))s.push(r),e.set(n,s);else e.set(n,[s,r])}else e.set(n,r)}return e}validateInput(e){const t={};for(let[n,r]of Object.entries(this.schema))for(let[s,o]of Object.entries(r)){const i=G(s);let a=o,d=!1;if(typeof o==="function")a=o(e.get(n)),d=typeof a==="undefined";else d=i(e.get(n));if(d)continue;if(!t[n])t[n]=[];if(s==="required"){t[n]=[String(a)];break}else t[n].push(String(a))}for(let[n,r]of Object.entries(this.refine(e.toJSON())??{})){if(!t[n])t[n]=[];t[n]=[...t[n]??[],r]}if(Object.keys(t).length>0)throw new y(t);else return e}async input(){return this.validateInput(await this.parseBody())}async safeInput(){const e=await this.parseBody();try{return this.validateInput(e),{isValid:!0,errors:{},input:e}}catch(t){if(!(t instanceof y))throw t;return{isValid:!1,errors:t.errors,input:e}}}async terminate(e){throw"not implemented"}}class P{async run(e){return{}}}function N(e){const t=e.headers.get("cookie");if(!t)return new Map;const n=new Map,r=t.split(";");for(let s of r){const[o,i]=s.split("=");n.set(o.trim(),i)}return n}class b{aliases={}}import{AsyncLocalStorage as _} from"async_hooks";var q=new _;class w{static getStore=()=>q.getStore()}class E extends l{error;constructor(e="Not authorized"){super("Authentication error");this.name="AuthenticationError",this.error=e,this.payload={api:{status:401,data:{error:this.error}},view:{}}}}class A extends l{error;constructor(e="Insufficient permissions"){super("Authentication error");this.name="AuthenticationError",this.error=e,this.payload={api:{status:401,data:{error:this.error}},view:{}}}}class h extends l{constructor(){super("Authentication error");this.name="AuthenticationError"}payload={api:{status:401,data:{error:"Authentication error"}},view:{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:"/auth/sign-in"}}}}class V extends P{constructor(){super(...arguments)}async run(e){const t=p.getStore(),n=t.req.cookies.get("access_token");if(!n)throw new h;let r=t.user;if(!r){const s=await w.getStore().authenticationServiceProvider.adapter.findSession({token:n,userAgent:t.req.headers.get("User-Agent")});if(!s)throw new h;r=s?.user,t.setUser(r)}return{}}}class ${policiesList={};constructor(){const e=this.register();for(let t of e){const n=new t;this.policiesList[t.name]=n}}register(){return[]}}class S{all(e,t){return!0}}class k{dictionary={};supportedLocales=[];defaultLocale="en-US";async init(){}detectLocale(e){return this.defaultLocale}}export{N as getCookies,c as ViewRouter,y as ValidationError,C as ResourceController,l as RequestBreakerError,$ as PoliciesServiceProvider,S as Policies,b as MiddlewareServiceProvider,P as Middleware,A as InsufficientPermissionsError,k as I18nServiceProvider,M as HttpRequest,x as Controller,E as AuthorizationError,V as AuthenticationMiddleware,h as AuthenticationError,T as ApiRouter};export{x as a,H as b,T as c,c as d,Z as e,l as f,y as g,p as h,M as i,b as j,q as k,w as l,E as m,A as n,$ as o,k as p};
@@ -1,20 +1,23 @@
1
1
  import { Cookie, type CreateCookieOptions } from "./Cookie";
2
2
  import { HttpRequest } from "./HttpRequest";
3
3
  declare class Store {
4
+ req: HttpRequest;
4
5
  cookies: Set<Cookie>;
5
6
  headers: Headers;
7
+ prefetchedResources: Map<string, Record<string, any>>;
8
+ prefetchPromiseQueue: Set<() => Promise<any>>;
6
9
  user: any;
7
- req: HttpRequest | null;
8
- constructor();
10
+ constructor(req: HttpRequest);
9
11
  setCookie(name: string, value: string, options?: CreateCookieOptions): void;
10
12
  setHeaders(name: string, value: string): void;
11
13
  setUser(user: any): void;
12
14
  setRequest(req: HttpRequest<any, any>): void;
15
+ destroy(): void;
13
16
  }
14
17
  export declare class RequestContext {
15
18
  static getStore(): Store;
16
19
  static setRequest(req: HttpRequest<any, any>): void;
17
- static run<T>(fn: () => T): Promise<T>;
20
+ static run<T>(httpRequest: HttpRequest, fn: () => T): T;
18
21
  }
19
22
  export {};
20
23
  //# sourceMappingURL=requestContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"requestContext.d.ts","sourceRoot":"","sources":["../../http/requestContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,cAAM,KAAK;IACT,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IACjC,OAAO,EAAE,OAAO,CAAiB;IACjC,IAAI,EAAE,GAAG,CAAQ;IACjB,GAAG,EAAE,WAAW,GAAG,IAAI,CAAQ;;IAM/B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB;IAIxE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAItC,OAAO,CAAC,IAAI,EAAE,GAAG;IAIjB,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;CAGtC;AAED,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ;IAIf,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;WAI/B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAG7C"}
1
+ {"version":3,"file":"requestContext.d.ts","sourceRoot":"","sources":["../../http/requestContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,cAAM,KAAK;IAOU,GAAG,EAAE,WAAW;IANnC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IACjC,OAAO,EAAE,OAAO,CAAiB;IACjC,mBAAmB,mCAA0C;IAC7D,oBAAoB,YAAiB,OAAO,CAAC,GAAG,CAAC,EAAI;IACrD,IAAI,EAAE,GAAG,CAAQ;gBAEE,GAAG,EAAE,WAAW;IAEnC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB;IAIxE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAItC,OAAO,CAAC,IAAI,EAAE,GAAG;IAIjB,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;IAIrC,OAAO;CAOR;AAED,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ;IAIf,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;IAI5C,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;CAGxD"}
@@ -4,25 +4,36 @@ import { MiddlewareServiceProvider } from "../http/MiddlewareServiceProvider";
4
4
  import { PoliciesServiceProvider } from "../http/PoliciesServiceProvider";
5
5
  import { I18nServiceProvider } from "../http/I18nServiceProvider";
6
6
  import { I18nServiceContainer } from "../http/I18nServiceContainer";
7
+ import { FileStorageServiceContainer } from "../services/file-storage/FileStorageServiceContainer";
8
+ import { FileStorageServiceProvider } from "../services/file-storage/FileStorageServiceProvider";
9
+ import { ApiRouterServiceContainer } from "../services/router/ApiRouterServiceContainer";
10
+ import { ApiRouterServiceProvider } from "../services/router/ApiRouterServiceProvider";
11
+ import { MiddlewareServiceContainer } from "../services/middleware/MiddlewareServiceContainer";
7
12
  export declare class Kernel {
8
13
  protected emailServiceProvider: typeof EmailServiceProvider;
9
14
  protected authenticationServiceProvider: typeof AuthenticationServiceProvider;
10
15
  protected middlewareServiceProvider: typeof MiddlewareServiceProvider;
11
16
  protected policiesServiceProvider: typeof PoliciesServiceProvider;
12
17
  protected i18nServiceProvider: typeof I18nServiceProvider;
18
+ protected fileStorageServiceProvider: typeof FileStorageServiceProvider;
19
+ protected apiRouterServiceProvider: typeof ApiRouterServiceProvider;
13
20
  services: {
14
21
  emailServiceProvider: EmailServiceProvider;
15
22
  authenticationServiceProvider: AuthenticationServiceProvider;
16
- middlewareServiceProvider: MiddlewareServiceProvider;
17
23
  policiesServiceProvider: PoliciesServiceProvider;
18
24
  i18nServiceContainer: I18nServiceContainer;
25
+ fileStorageServiceContainer: FileStorageServiceContainer;
26
+ apiRouterServiceContainer: ApiRouterServiceContainer;
27
+ middlewareServiceContainer: MiddlewareServiceContainer;
19
28
  };
20
29
  getServices: () => {
21
30
  emailServiceProvider: EmailServiceProvider;
22
31
  authenticationServiceProvider: AuthenticationServiceProvider;
23
- middlewareServiceProvider: MiddlewareServiceProvider;
24
32
  policiesServiceProvider: PoliciesServiceProvider;
25
33
  i18nServiceContainer: I18nServiceContainer;
34
+ fileStorageServiceContainer: FileStorageServiceContainer;
35
+ apiRouterServiceContainer: ApiRouterServiceContainer;
36
+ middlewareServiceContainer: MiddlewareServiceContainer;
26
37
  };
27
38
  static getContext: () => import("./context").KernelContextValue;
28
39
  run<T>(cb: () => T): T;
@@ -1 +1 @@
1
- {"version":3,"file":"Kernel.d.ts","sourceRoot":"","sources":["../../kernel/Kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,qBAAa,MAAM;IACjB,SAAS,CAAC,oBAAoB,8BAAwB;IACtD,SAAS,CAAC,6BAA6B,uCAAiC;IACxE,SAAS,CAAC,yBAAyB,mCAA6B;IAChE,SAAS,CAAC,uBAAuB,iCAA2B;IAC5D,SAAS,CAAC,mBAAmB,6BAAuB;IAEpD,QAAQ,EAAE;QACR,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,6BAA6B,EAAE,6BAA6B,CAAC;QAC7D,yBAAyB,EAAE,yBAAyB,CAAC;QACrD,uBAAuB,EAAE,uBAAuB,CAAC;QACjD,oBAAoB,EAAE,oBAAoB,CAAC;KAC5C,CAAC;IAEF,WAAW;8BAPa,oBAAoB;uCACX,6BAA6B;mCACjC,yBAAyB;iCAC3B,uBAAuB;8BAC1B,oBAAoB;MAgB1C;IAEF,MAAM,CAAC,UAAU,+CAAkC;IAEnD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC;CAInB"}
1
+ {"version":3,"file":"Kernel.d.ts","sourceRoot":"","sources":["../../kernel/Kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAE/F,qBAAa,MAAM;IACjB,SAAS,CAAC,oBAAoB,8BAAwB;IACtD,SAAS,CAAC,6BAA6B,uCAAiC;IACxE,SAAS,CAAC,yBAAyB,mCAA6B;IAChE,SAAS,CAAC,uBAAuB,iCAA2B;IAC5D,SAAS,CAAC,mBAAmB,6BAAuB;IACpD,SAAS,CAAC,0BAA0B,oCAA8B;IAClE,SAAS,CAAC,wBAAwB,kCAA4B;IAE9D,QAAQ,EAAE;QACR,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,6BAA6B,EAAE,6BAA6B,CAAC;QAC7D,uBAAuB,EAAE,uBAAuB,CAAC;QACjD,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,2BAA2B,EAAE,2BAA2B,CAAC;QACzD,yBAAyB,EAAE,yBAAyB,CAAC;QACrD,0BAA0B,EAAE,0BAA0B,CAAC;KACxD,CAAC;IAEF,WAAW;8BATa,oBAAoB;uCACX,6BAA6B;iCACnC,uBAAuB;8BAC1B,oBAAoB;qCACb,2BAA2B;mCAC7B,yBAAyB;oCACxB,0BAA0B;MAwBtD;IAEF,MAAM,CAAC,UAAU,+CAAkC;IAEnD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC;CAInB"}
@@ -2,14 +2,18 @@ import { AsyncLocalStorage } from "async_hooks";
2
2
  import { EmailServiceProvider } from "../email/EmailServiceProvider";
3
3
  import { AuthenticationServiceProvider } from "../auth/AuthenticationServiceProvider";
4
4
  import { PoliciesServiceProvider } from "../http/PoliciesServiceProvider";
5
- import { MiddlewareServiceProvider } from "../http";
6
5
  import { I18nServiceContainer } from "../http/I18nServiceContainer";
6
+ import { FileStorageServiceContainer } from "../services/file-storage/FileStorageServiceContainer";
7
+ import { ApiRouterServiceContainer } from "../services/router/ApiRouterServiceContainer";
8
+ import { MiddlewareServiceContainer } from "../services/middleware/MiddlewareServiceContainer";
7
9
  export interface KernelContextValue {
8
10
  emailServiceProvider: EmailServiceProvider;
9
11
  authenticationServiceProvider: AuthenticationServiceProvider;
10
- middlewareServiceProvider: MiddlewareServiceProvider;
11
12
  policiesServiceProvider: PoliciesServiceProvider;
12
13
  i18nServiceContainer: I18nServiceContainer;
14
+ fileStorageServiceContainer: FileStorageServiceContainer;
15
+ apiRouterServiceContainer: ApiRouterServiceContainer;
16
+ middlewareServiceContainer: MiddlewareServiceContainer;
13
17
  }
14
18
  export declare const kernelContext: AsyncLocalStorage<KernelContextValue>;
15
19
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../kernel/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,6BAA6B,EAAE,6BAA6B,CAAC;IAC7D,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C;AAED,eAAO,MAAM,aAAa,uCAA8C,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../kernel/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAE/F,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,6BAA6B,EAAE,6BAA6B,CAAC;IAC7D,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,2BAA2B,EAAE,2BAA2B,CAAC;IACzD,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,0BAA0B,EAAE,0BAA0B,CAAC;CACxD;AAED,eAAO,MAAM,aAAa,uCAA8C,CAAC"}