silgi 0.41.16 → 0.41.18

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.
@@ -1953,15 +1953,30 @@ async function prepareSchema(silgi) {
1953
1953
  generateTypes(
1954
1954
  await resolveSchema(
1955
1955
  {
1956
- ...silgi.options.storages?.reduce((acc, key) => ({ ...acc, [key]: "" }), {}) || {},
1957
- // 'redis': {} -> 'redis': string
1958
- ...Object.entries(silgi.options.storage).map(([key]) => ({
1959
- [key]: ""
1960
- })).reduce((acc, obj) => ({ ...acc, ...obj }), {})
1956
+ ...Object.fromEntries(
1957
+ Object.entries(silgi.options.runtimeConfig).filter(
1958
+ ([key]) => !["app", "nitro", "nuxt"].includes(key)
1959
+ )
1960
+ )
1961
+ }
1962
+ ),
1963
+ {
1964
+ interfaceName: "SilgiRuntimeConfigExtends",
1965
+ addExport: false,
1966
+ addDefaults: false,
1967
+ allowExtraKeys: false,
1968
+ indentation: 0
1969
+ }
1970
+ ),
1971
+ "",
1972
+ generateTypes(
1973
+ await resolveSchema(
1974
+ {
1975
+ ...silgi.services ? Object.keys(silgi.services).reduce((acc, key) => ({ ...acc, [key]: "" }), {}) : {}
1961
1976
  }
1962
1977
  ),
1963
1978
  {
1964
- interfaceName: "SilgiStorageBaseExtends",
1979
+ interfaceName: "RoutersExtend",
1965
1980
  addExport: false,
1966
1981
  addDefaults: false,
1967
1982
  allowExtraKeys: false,
@@ -1977,7 +1992,6 @@ async function prepareSchema(silgi) {
1977
1992
  SilgiSchema: [{}, { extends: ["SchemaExtends"] }],
1978
1993
  ServicesObject: [{}, { extends: ["BaseServices"] }],
1979
1994
  SilgiStorageBase: [{}, { extends: ["SilgiStorageBaseExtends"] }],
1980
- SilgiURIs: [{}, { extends: ["SilgiURIsMerge"] }],
1981
1995
  SilgiRuntimeContext: [{}, { extends: ["SilgiModuleContextExtends"] }],
1982
1996
  SilgiEvent: [{}, { extends: ["SilgiModuleEventsExtends"] }],
1983
1997
  SilgiRuntimeSharedsExtend: [{}, { extends: ["SilgiModuleSharedExtends"] }],
@@ -1991,7 +2005,8 @@ async function prepareSchema(silgi) {
1991
2005
  SilgiModuleOptions: [{}, { extends: ["SilgiModuleOptionExtend"] }],
1992
2006
  // TODO: bunu kontrol et.
1993
2007
  RouteRules: [{}, { extends: ["RouteRulesExtend"] }],
1994
- MetaData: [{}, { extends: ["MetaDataExtend"] }]
2008
+ MetaData: [{}, { extends: ["MetaDataExtend"] }],
2009
+ Routers: [{}, { extends: ["RoutersExtend"] }]
1995
2010
  }).replace(/,\s*/g, "\n"),
1996
2011
  "",
1997
2012
  "export {}"
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { defineCommand, runMain } from 'citty';
3
3
 
4
- const version = "0.41.16";
4
+ const version = "0.41.18";
5
5
  const packageJson = {
6
6
  version: version};
7
7
 
@@ -1,4 +1,4 @@
1
- import { SilgiConfig, Silgi, SilgiEvent, HTTPMethod, SilgiSchema, RouteEntry, CustomRequestInit, SilgiRuntimeContext, BaseMethodSchema, MergeAll, ServiceSetup, ServicesObject, MiddlewareSetup, SilgiRuntimeShareds, Resolvers, SilgiURL, StorageConfig, SilgiCLI, SilgiStorageBase, SilgiRuntimeConfig } from 'silgi/types';
1
+ import { SilgiConfig, Silgi, SilgiEvent, HTTPMethod, SilgiSchema, RouteEntry, CustomRequestInit, SilgiRuntimeContext, BaseMethodSchema, MergeAll, Routers, ServiceSetup, MiddlewareSetup, SilgiRuntimeShareds, Resolvers, SilgiURL, StorageConfig, SilgiCLI, SilgiStorageBase, SilgiRuntimeConfig } from 'silgi/types';
2
2
  import { StandardSchemaV1 } from '@standard-schema/spec';
3
3
  import { Storage, StorageValue } from 'unstorage';
4
4
  import { UseContext } from 'unctx';
@@ -159,8 +159,8 @@ declare function deepMergeObjects<T extends readonly Record<string, any>[]>(sche
159
159
  * Tip güvenliğini artırmak için ServiceSetup objesini doğrudan döndürür.
160
160
  */
161
161
  type SlashCount<S extends string, Count extends any[] = []> = S extends `${infer _Prefix}/${infer Rest}` ? SlashCount<Rest, [any, ...Count]> : Count['length'];
162
- type Max4Slashes<S extends string> = SlashCount<S> extends 0 | 1 | 2 | 3 | 4 ? S : never;
163
- declare function createService<Path extends string = string, Input extends StandardSchemaV1 = StandardSchemaV1, Output extends StandardSchemaV1 = StandardSchemaV1, PathParams extends StandardSchemaV1 | never | undefined = never, QueryParams extends StandardSchemaV1 | never | undefined = never, Resolved extends boolean = false, HiddenParameters extends boolean = false>(params: {
162
+ type Max4Slashes<S extends keyof Routers> = SlashCount<S> extends 0 | 1 | 2 | 3 | 4 ? S : never;
163
+ declare function createService<Path extends keyof Routers = keyof Routers, Input extends StandardSchemaV1 = StandardSchemaV1, Output extends StandardSchemaV1 = StandardSchemaV1, PathParams extends StandardSchemaV1 | never | undefined = never, QueryParams extends StandardSchemaV1 | never | undefined = never, Resolved extends boolean = false, HiddenParameters extends boolean = false>(params: {
164
164
  path: Max4Slashes<Path>;
165
165
  methods: HTTPMethod[];
166
166
  input?: Input;
@@ -184,8 +184,8 @@ declare function createService<Path extends string = string, Input extends Stand
184
184
  };
185
185
 
186
186
  type WildcardVariants<Path extends string, Acc extends string = ''> = Path extends `${infer Head}/${infer Tail}` ? Tail extends '' ? `${Acc}${Head}` : `${Acc}${Head}/${Tail}` | `${Acc}${Head}/*` | `${Acc}${Head}/**` | WildcardVariants<Tail, `${Acc}${Head}/`> : `${Acc}${Path}`;
187
- type MiddlewarePath<S extends WildcardVariants<keyof ServicesObject>> = S | 'global';
188
- interface CreateMiddlewareParams<S extends WildcardVariants<keyof ServicesObject>, UsedMethod extends readonly HTTPMethod[] = readonly HTTPMethod[], Key extends string = string> {
187
+ type MiddlewarePath<S extends WildcardVariants<keyof Routers>> = S | 'global';
188
+ interface CreateMiddlewareParams<S extends WildcardVariants<keyof Routers>, UsedMethod extends readonly HTTPMethod[] = readonly HTTPMethod[], Key extends string = string> {
189
189
  path: MiddlewarePath<S>;
190
190
  methods?: UsedMethod;
191
191
  setup: MiddlewareSetup;
@@ -199,7 +199,7 @@ type CreateMiddlewareResult<Path extends string, UsedMethod extends readonly HTT
199
199
  path: Path;
200
200
  };
201
201
  };
202
- declare function createMiddleware<S extends WildcardVariants<keyof ServicesObject>, UsedMethod extends readonly HTTPMethod[] = readonly HTTPMethod[], Path extends MiddlewarePath<S> = MiddlewarePath<S>, Key extends string = string>(params: CreateMiddlewareParams<S, UsedMethod, Key> & {
202
+ declare function createMiddleware<S extends WildcardVariants<keyof Routers>, UsedMethod extends readonly HTTPMethod[] = readonly HTTPMethod[], Path extends MiddlewarePath<S> = MiddlewarePath<S>, Key extends string = string>(params: CreateMiddlewareParams<S, UsedMethod, Key> & {
203
203
  path: Path;
204
204
  }): CreateMiddlewareResult<Path, UsedMethod, Key>;
205
205
 
@@ -961,7 +961,7 @@ async function middleware(event, url) {
961
961
  cause: error
962
962
  });
963
963
  }
964
- return m.middleware.handler(event, silgiContext);
964
+ return m.middleware.handler?.(event, silgiContext);
965
965
  });
966
966
  }
967
967
  }
@@ -995,7 +995,7 @@ async function middleware(event, url) {
995
995
  cause: error
996
996
  });
997
997
  }
998
- return match.data.middleware.handler(event, silgiContext);
998
+ return match.data.middleware.handler?.(event, silgiContext);
999
999
  });
1000
1000
  }
1001
1001
  }
@@ -1091,7 +1091,7 @@ function deepMergeObjects(schemas) {
1091
1091
  }
1092
1092
 
1093
1093
  function createService(params) {
1094
- const slashCount = (params.path.match(/\//g) || []).length;
1094
+ const slashCount = (String(params.path).match(/\//g) || []).length;
1095
1095
  if (slashCount > 4) {
1096
1096
  throw new Error(
1097
1097
  `Path '${params.path}' is invalid: maximum 4 '/' allowed (found ${slashCount})`
@@ -134,8 +134,13 @@ interface SilgiEvent extends Record<string, unknown> {
134
134
  */
135
135
  interface Resolvers {
136
136
  }
137
+ interface Routers {
138
+ }
137
139
  interface RouteRules extends Record<string, unknown> {
138
140
  }
141
+ type MergeRouteRules = Partial<RouteRules> & {
142
+ readBeforeBody?: boolean;
143
+ };
139
144
  /**
140
145
  * Extracts the prefix (first segment) from a URL, including the leading slash.
141
146
  * @example ExtractPrefix<'/api/blueSpace/basket'> // '/api'
@@ -155,7 +160,7 @@ type ExtractRoute<URL extends string> = URL extends `/${string}/${string}/${infe
155
160
  * Gets all route keys from Routers as strings.
156
161
  * All keys should start with a leading slash.
157
162
  */
158
- type RouterKeys = keyof ServicesObject & string;
163
+ type RouterKeys = (keyof ServicesObject extends string ? keyof ServicesObject : never) & (keyof Routers extends string ? keyof Routers : never);
159
164
  /**
160
165
  * Extracts all prefixes (first segment) in the system, including the leading slash.
161
166
  * @example AllPrefixes // '/api' | ...
@@ -267,9 +272,7 @@ type ServiceHandler<Input extends StandardSchemaV1, Output extends StandardSchem
267
272
  */
268
273
  interface ServiceSetup<Input extends StandardSchemaV1 = StandardSchemaV1, Output extends StandardSchemaV1 = StandardSchemaV1, PathParams extends StandardSchemaV1 | never | undefined = never, QueryParams extends StandardSchemaV1 | never | undefined = never, Resolved extends boolean = false, HiddenParameters extends boolean = false> {
269
274
  handler?: ServiceHandler<Input, Output, PathParams, QueryParams, Resolved, HiddenParameters>;
270
- rules?: RouteRules & {
271
- readBeforeBody?: boolean;
272
- };
275
+ rules?: MergeRouteRules;
273
276
  modules?: Partial<SetupModuleOption>;
274
277
  storage?: StorageConfig<ServiceHandlerInput<Input, PathParams, QueryParams, HiddenParameters>>;
275
278
  }
@@ -508,8 +511,8 @@ type MiddlewareHandler<Response extends EventHandlerResponse = EventHandlerRespo
508
511
  * Middleware Setup tipi
509
512
  */
510
513
  interface MiddlewareSetup {
511
- handler: MiddlewareHandler;
512
- rules?: RouteRules;
514
+ handler?: MiddlewareHandler;
515
+ rules?: MergeRouteRules;
513
516
  modules?: Partial<SetupModuleOption>;
514
517
  storage?: StorageConfig;
515
518
  }
@@ -1221,4 +1224,4 @@ interface LoadConfigOptions {
1221
1224
  consola?: ConsolaInstance;
1222
1225
  }
1223
1226
 
1224
- export type { AllPaths, AllPrefixes, AppConfig, Awaitable, BaseMethodSchema, BuildSilgi, CaptureError, CapturedErrorContext, CommandType, Commands, CustomRequestInit, DeepPartial, DeepRequired, DefaultHooks, DefineFrameworkOptions, DotenvOptions, EnvOptions, EventHandlerResponse, ExtendContext, ExtendShared, ExtractNamespace, ExtractPathParamKeys, ExtractPathParams, ExtractPrefix, ExtractRoute, GenImport, GenerateAppOptions, HTTPMethod, HasPathParams, HookResult, LoadConfigOptions, MergeAll, MergedSilgiSchema, MetaData, MethodSchemas, MiddlewareHandler, MiddlewareSetup, ModuleDefinition, ModuleHookContext, ModuleMeta, ModuleOptionsCustom, ModuleSetupInstallResult, ModuleSetupReturn, NamespacesForPrefix, NitroBuildInfo, RequiredServiceType, ResolvedMiddlewareDefinition, ResolvedModuleMeta, ResolvedModuleOptions, ResolvedSchema, ResolvedSchemaDefinition, ResolvedServiceDefinition, ResolvedSilgiTemplate, Resolvers, RouteEntry, RouteRules, RouterParams, RoutesForPrefixAndNamespace, ScanFile, Schema, ServiceHandler, ServiceHandlerInput, ServiceSetup, ServicesObject, SetupModuleOption, Silgi, SilgiAppPlugin, SilgiCLI, SilgiCLIConfig, SilgiCLIHooks, SilgiCLIOptions, SilgiCommands, SilgiCompatibility, SilgiCompatibilityIssue, SilgiCompatibilityIssues, SilgiConfig, SilgiEvent, SilgiFetchClient, SilgiFetchOptions, SilgiFrameworkInfo, SilgiHooks, SilgiModule, SilgiModuleInput, SilgiModuleOptions, SilgiOptions, SilgiPreset, SilgiPresetMeta, SilgiRoute, SilgiRouterTypes, SilgiRuntimeConfig, SilgiRuntimeContext, SilgiRuntimeDefaultConfig, SilgiRuntimeHooks, SilgiRuntimeMethods, SilgiRuntimeOptions, SilgiRuntimeShareds, SilgiRuntimeSharedsExtend, SilgiSchema, SilgiStorageBase, SilgiTemplate, SilgiURL, StandardHTTPMethod, StorageConfig, StorageKeyGenerator, StorageKeyParams, StorageMounts, TSReference, TrimAfterFourSlashes, WithPathParams };
1227
+ export type { AllPaths, AllPrefixes, AppConfig, Awaitable, BaseMethodSchema, BuildSilgi, CaptureError, CapturedErrorContext, CommandType, Commands, CustomRequestInit, DeepPartial, DeepRequired, DefaultHooks, DefineFrameworkOptions, DotenvOptions, EnvOptions, EventHandlerResponse, ExtendContext, ExtendShared, ExtractNamespace, ExtractPathParamKeys, ExtractPathParams, ExtractPrefix, ExtractRoute, GenImport, GenerateAppOptions, HTTPMethod, HasPathParams, HookResult, LoadConfigOptions, MergeAll, MergeRouteRules, MergedSilgiSchema, MetaData, MethodSchemas, MiddlewareHandler, MiddlewareSetup, ModuleDefinition, ModuleHookContext, ModuleMeta, ModuleOptionsCustom, ModuleSetupInstallResult, ModuleSetupReturn, NamespacesForPrefix, NitroBuildInfo, RequiredServiceType, ResolvedMiddlewareDefinition, ResolvedModuleMeta, ResolvedModuleOptions, ResolvedSchema, ResolvedSchemaDefinition, ResolvedServiceDefinition, ResolvedSilgiTemplate, Resolvers, RouteEntry, RouteRules, RouterParams, Routers, RoutesForPrefixAndNamespace, ScanFile, Schema, ServiceHandler, ServiceHandlerInput, ServiceSetup, ServicesObject, SetupModuleOption, Silgi, SilgiAppPlugin, SilgiCLI, SilgiCLIConfig, SilgiCLIHooks, SilgiCLIOptions, SilgiCommands, SilgiCompatibility, SilgiCompatibilityIssue, SilgiCompatibilityIssues, SilgiConfig, SilgiEvent, SilgiFetchClient, SilgiFetchOptions, SilgiFrameworkInfo, SilgiHooks, SilgiModule, SilgiModuleInput, SilgiModuleOptions, SilgiOptions, SilgiPreset, SilgiPresetMeta, SilgiRoute, SilgiRouterTypes, SilgiRuntimeConfig, SilgiRuntimeContext, SilgiRuntimeDefaultConfig, SilgiRuntimeHooks, SilgiRuntimeMethods, SilgiRuntimeOptions, SilgiRuntimeShareds, SilgiRuntimeSharedsExtend, SilgiSchema, SilgiStorageBase, SilgiTemplate, SilgiURL, StandardHTTPMethod, StorageConfig, StorageKeyGenerator, StorageKeyParams, StorageMounts, TSReference, TrimAfterFourSlashes, WithPathParams };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "silgi",
3
3
  "type": "module",
4
- "version": "0.41.16",
4
+ "version": "0.41.18",
5
5
  "private": false,
6
6
  "sideEffects": false,
7
7
  "exports": {