@dismissible/nestjs-api 2.0.2-alpha.f50def9.0 → 2.0.2-canary.2913ba8.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.
@@ -19,6 +19,9 @@ cors:
19
19
  storage:
20
20
  # postgres | dynamodb | memory
21
21
  type: ${DISMISSIBLE_STORAGE_TYPE:-memory}
22
+ memory:
23
+ maxItems: ${DISMISSIBLE_STORAGE_MEMORY_MAX_ITEMS:-5000}
24
+ ttlMs: ${DISMISSIBLE_STORAGE_MEMORY_TTL_MS:-21600000}
22
25
  postgres:
23
26
  connectionString: postgresql://postgres:postgres@localhost:5432/dismissible
24
27
  dynamodb:
package/config/.env.yaml CHANGED
@@ -24,6 +24,9 @@ cors:
24
24
  storage:
25
25
  # postgres | dynamodb | memory
26
26
  type: ${DISMISSIBLE_STORAGE_TYPE:-memory}
27
+ memory:
28
+ maxItems: ${DISMISSIBLE_STORAGE_MEMORY_MAX_ITEMS:-5000}
29
+ ttlMs: ${DISMISSIBLE_STORAGE_MEMORY_TTL_MS:-21600000}
27
30
  postgres:
28
31
  connectionString: ${DISMISSIBLE_STORAGE_POSTGRES_CONNECTION_STRING:-}
29
32
  dynamodb:
@@ -51,11 +54,11 @@ jwtAuth:
51
54
  rateLimiter:
52
55
  enabled: ${DISMISSIBLE_RATE_LIMITER_ENABLED:-false}
53
56
  # Number of requests allowed per duration window
54
- points: ${DISMISSIBLE_RATE_LIMITER_POINTS:-10000}
57
+ points: ${DISMISSIBLE_RATE_LIMITER_POINTS:-1000}
55
58
  # Time window in seconds for rate limiting
56
59
  duration: ${DISMISSIBLE_RATE_LIMITER_DURATION:-1}
57
60
  # Optional: Duration in seconds to block requests after limit is exceeded (if not set, requests are allowed again after the duration window resets)
58
- blockDuration: ${DISMISSIBLE_RATE_LIMITER_BLOCK_DURATION:-}
61
+ blockDuration: ${DISMISSIBLE_RATE_LIMITER_BLOCK_DURATION:-60}
59
62
  # Key type(s) for rate limiting: 'ip' (by IP address), 'origin' (by Origin header), 'referrer' (by Referer header). Can be comma-separated to combine types (e.g., 'ip,origin')
60
63
  keyType: ${DISMISSIBLE_RATE_LIMITER_KEY_TYPE:-ip,origin,referrer}
61
64
  # Mode for combining key types: 'and' (combine all), 'or' (use first available), 'any' (check all independently)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dismissible/nestjs-api",
3
- "version": "2.0.2-alpha.f50def9.0",
3
+ "version": "2.0.2-canary.2913ba8.0",
4
4
  "description": "Dismissible API application",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
@@ -30,14 +30,14 @@
30
30
  "storage:setup:dynamodb": "npx dismissible-dynamodb-setup"
31
31
  },
32
32
  "dependencies": {
33
- "@dismissible/nestjs-core": "2.0.2-alpha.f50def9.0",
34
- "@dismissible/nestjs-item": "2.0.2-alpha.f50def9.0",
35
- "@dismissible/nestjs-jwt-auth-hook": "2.0.2-alpha.f50def9.0",
36
- "@dismissible/nestjs-storage": "2.0.2-alpha.f50def9.0",
37
- "@dismissible/nestjs-postgres-storage": "2.0.2-alpha.f50def9.0",
38
- "@dismissible/nestjs-dynamodb-storage": "2.0.2-alpha.f50def9.0",
39
- "@dismissible/nestjs-logger": "2.0.2-alpha.f50def9.0",
40
- "@dismissible/nestjs-rate-limiter-hook": "2.0.2-alpha.f50def9.0",
33
+ "@dismissible/nestjs-core": "2.0.2-canary.2913ba8.0",
34
+ "@dismissible/nestjs-item": "2.0.2-canary.2913ba8.0",
35
+ "@dismissible/nestjs-jwt-auth-hook": "2.0.2-canary.2913ba8.0",
36
+ "@dismissible/nestjs-storage": "2.0.2-canary.2913ba8.0",
37
+ "@dismissible/nestjs-postgres-storage": "2.0.2-canary.2913ba8.0",
38
+ "@dismissible/nestjs-dynamodb-storage": "2.0.2-canary.2913ba8.0",
39
+ "@dismissible/nestjs-logger": "2.0.2-canary.2913ba8.0",
40
+ "@dismissible/nestjs-rate-limiter-hook": "2.0.2-canary.2913ba8.0",
41
41
  "@nestjs/common": "11.1.11",
42
42
  "@nestjs/core": "11.1.11",
43
43
  "@nestjs/platform-fastify": "11.1.11",
@@ -1,9 +1,7 @@
1
1
  import { SwaggerConfig } from '../swagger';
2
2
  import { DefaultAppConfig } from './default-app.config';
3
3
  import { JwtAuthHookConfig } from '@dismissible/nestjs-jwt-auth-hook';
4
- import { StorageConfig } from '../storage/storage.config';
5
4
  export declare class AppConfig extends DefaultAppConfig {
6
5
  readonly swagger: SwaggerConfig;
7
- readonly storage: StorageConfig;
8
6
  readonly jwtAuth: JwtAuthHookConfig;
9
7
  }
@@ -7,7 +7,6 @@ const class_transformer_1 = require("class-transformer");
7
7
  const swagger_1 = require("../swagger");
8
8
  const default_app_config_1 = require("./default-app.config");
9
9
  const nestjs_jwt_auth_hook_1 = require("@dismissible/nestjs-jwt-auth-hook");
10
- const storage_config_1 = require("../storage/storage.config");
11
10
  class AppConfig extends default_app_config_1.DefaultAppConfig {
12
11
  }
13
12
  exports.AppConfig = AppConfig;
@@ -17,12 +16,6 @@ tslib_1.__decorate([
17
16
  (0, class_transformer_1.Type)(() => swagger_1.SwaggerConfig),
18
17
  tslib_1.__metadata("design:type", swagger_1.SwaggerConfig)
19
18
  ], AppConfig.prototype, "swagger", void 0);
20
- tslib_1.__decorate([
21
- (0, class_validator_1.ValidateNested)(),
22
- (0, class_validator_1.IsDefined)(),
23
- (0, class_transformer_1.Type)(() => storage_config_1.StorageConfig),
24
- tslib_1.__metadata("design:type", storage_config_1.StorageConfig)
25
- ], AppConfig.prototype, "storage", void 0);
26
19
  tslib_1.__decorate([
27
20
  (0, class_validator_1.ValidateNested)(),
28
21
  (0, class_validator_1.IsDefined)(),
@@ -1 +1 @@
1
- {"version":3,"file":"app.config.js","sourceRoot":"","sources":["../../../../api/src/config/app.config.ts"],"names":[],"mappings":";;;;AAAA,qDAA4D;AAC5D,yDAAyC;AACzC,wCAA2C;AAC3C,6DAAwD;AACxD,4EAAsE;AACtE,8DAA0D;AAE1D,MAAa,SAAU,SAAQ,qCAAgB;CAe9C;AAfD,8BAeC;AAXiB;IAHf,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,uBAAa,CAAC;sCACA,uBAAa;0CAAC;AAKxB;IAHf,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC;sCACA,8BAAa;0CAAC;AAKxB;IAHf,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,wCAAiB,CAAC;sCACJ,wCAAiB;0CAAC"}
1
+ {"version":3,"file":"app.config.js","sourceRoot":"","sources":["../../../../api/src/config/app.config.ts"],"names":[],"mappings":";;;;AAAA,qDAA4D;AAC5D,yDAAyC;AACzC,wCAA2C;AAC3C,6DAAwD;AACxD,4EAAsE;AAEtE,MAAa,SAAU,SAAQ,qCAAgB;CAU9C;AAVD,8BAUC;AANiB;IAHf,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,uBAAa,CAAC;sCACA,uBAAa;0CAAC;AAKxB;IAHf,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,wCAAiB,CAAC;sCACJ,wCAAiB;0CAAC"}
@@ -3,10 +3,12 @@ import { CorsConfig } from '../cors';
3
3
  import { HelmetConfig } from '../helmet';
4
4
  import { ValidationConfig } from '../validation';
5
5
  import { RateLimiterHookConfig } from '@dismissible/nestjs-rate-limiter-hook';
6
+ import { StorageConfig } from '../storage/storage.config';
6
7
  export declare class DefaultAppConfig {
7
8
  readonly server: ServerConfig;
8
9
  readonly rateLimiter?: RateLimiterHookConfig;
9
10
  readonly cors: CorsConfig;
10
11
  readonly helmet: HelmetConfig;
12
+ readonly storage: StorageConfig;
11
13
  readonly validation: ValidationConfig;
12
14
  }
@@ -9,11 +9,13 @@ const cors_1 = require("../cors");
9
9
  const helmet_1 = require("../helmet");
10
10
  const validation_1 = require("../validation");
11
11
  const nestjs_rate_limiter_hook_1 = require("@dismissible/nestjs-rate-limiter-hook");
12
+ const storage_config_1 = require("../storage/storage.config");
12
13
  class DefaultAppConfig {
13
14
  }
14
15
  exports.DefaultAppConfig = DefaultAppConfig;
15
16
  tslib_1.__decorate([
16
17
  (0, class_validator_1.ValidateNested)(),
18
+ (0, class_validator_1.IsDefined)(),
17
19
  (0, class_transformer_1.Type)(() => server_config_1.ServerConfig),
18
20
  tslib_1.__metadata("design:type", server_config_1.ServerConfig)
19
21
  ], DefaultAppConfig.prototype, "server", void 0);
@@ -25,16 +27,25 @@ tslib_1.__decorate([
25
27
  ], DefaultAppConfig.prototype, "rateLimiter", void 0);
26
28
  tslib_1.__decorate([
27
29
  (0, class_validator_1.ValidateNested)(),
30
+ (0, class_validator_1.IsDefined)(),
28
31
  (0, class_transformer_1.Type)(() => cors_1.CorsConfig),
29
32
  tslib_1.__metadata("design:type", cors_1.CorsConfig)
30
33
  ], DefaultAppConfig.prototype, "cors", void 0);
31
34
  tslib_1.__decorate([
32
35
  (0, class_validator_1.ValidateNested)(),
36
+ (0, class_validator_1.IsDefined)(),
33
37
  (0, class_transformer_1.Type)(() => helmet_1.HelmetConfig),
34
38
  tslib_1.__metadata("design:type", helmet_1.HelmetConfig)
35
39
  ], DefaultAppConfig.prototype, "helmet", void 0);
36
40
  tslib_1.__decorate([
37
41
  (0, class_validator_1.ValidateNested)(),
42
+ (0, class_validator_1.IsDefined)(),
43
+ (0, class_transformer_1.Type)(() => storage_config_1.StorageConfig),
44
+ tslib_1.__metadata("design:type", storage_config_1.StorageConfig)
45
+ ], DefaultAppConfig.prototype, "storage", void 0);
46
+ tslib_1.__decorate([
47
+ (0, class_validator_1.ValidateNested)(),
48
+ (0, class_validator_1.IsDefined)(),
38
49
  (0, class_transformer_1.Type)(() => validation_1.ValidationConfig),
39
50
  tslib_1.__metadata("design:type", validation_1.ValidationConfig)
40
51
  ], DefaultAppConfig.prototype, "validation", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"default-app.config.js","sourceRoot":"","sources":["../../../../api/src/config/default-app.config.ts"],"names":[],"mappings":";;;;AAAA,qDAA6D;AAC7D,yDAAyC;AACzC,2DAAuD;AACvD,kCAAqC;AACrC,sCAAyC;AACzC,8CAAiD;AACjD,oFAA8E;AAE9E,MAAa,gBAAgB;CAqB5B;AArBD,4CAqBC;AAlBiB;IAFf,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,4BAAY,CAAC;sCACA,4BAAY;gDAAC;AAKtB;IAHf,IAAA,4BAAU,GAAE;IACZ,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,gDAAqB,CAAC;sCACJ,gDAAqB;qDAAC;AAIpC;IAFf,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,iBAAU,CAAC;sCACA,iBAAU;8CAAC;AAIlB;IAFf,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,qBAAY,CAAC;sCACA,qBAAY;gDAAC;AAItB;IAFf,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,6BAAgB,CAAC;sCACA,6BAAgB;oDAAC"}
1
+ {"version":3,"file":"default-app.config.js","sourceRoot":"","sources":["../../../../api/src/config/default-app.config.ts"],"names":[],"mappings":";;;;AAAA,qDAAwE;AACxE,yDAAyC;AACzC,2DAAuD;AACvD,kCAAqC;AACrC,sCAAyC;AACzC,8CAAiD;AACjD,oFAA8E;AAC9E,8DAA0D;AAE1D,MAAa,gBAAgB;CA8B5B;AA9BD,4CA8BC;AA1BiB;IAHf,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,4BAAY,CAAC;sCACA,4BAAY;gDAAC;AAKtB;IAHf,IAAA,4BAAU,GAAE;IACZ,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,gDAAqB,CAAC;sCACJ,gDAAqB;qDAAC;AAKpC;IAHf,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,iBAAU,CAAC;sCACA,iBAAU;8CAAC;AAKlB;IAHf,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,qBAAY,CAAC;sCACA,qBAAY;gDAAC;AAKtB;IAHf,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC;sCACA,8BAAa;iDAAC;AAKxB;IAHf,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,6BAAgB,CAAC;sCACA,6BAAgB;oDAAC"}
@@ -22,7 +22,10 @@ let DynamicStorageModule = class DynamicStorageModule {
22
22
  });
23
23
  case storage_config_1.StorageType.MEMORY:
24
24
  default:
25
- return nestjs_storage_1.MemoryStorageModule.forRoot();
25
+ return nestjs_storage_1.MemoryStorageModule.forRootAsync({
26
+ useFactory: (config) => config?.memory || {},
27
+ inject: [storage_config_1.StorageConfig],
28
+ });
26
29
  }
27
30
  }
28
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-storage.module.js","sourceRoot":"","sources":["../../../../api/src/storage/dynamic-storage.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAuD;AACvD,kFAA6E;AAC7E,qDAA8D;AAC9D,kFAA6E;AAC7E,gEAAkE;AAO3D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAA+B;QAC1D,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,4BAAW,CAAC,QAAQ;gBACvB,OAAO,+CAAqB,CAAC,YAAY,CAAC;oBACxC,UAAU,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ;oBACtD,MAAM,EAAE,CAAC,8BAAa,CAAC;iBACxB,CAAC,CAAC;YACL,KAAK,4BAAW,CAAC,QAAQ;gBACvB,OAAO,+CAAqB,CAAC,YAAY,CAAC;oBACxC,UAAU,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ;oBACtD,MAAM,EAAE,CAAC,8BAAa,CAAC;iBACxB,CAAC,CAAC;YACL,KAAK,4BAAW,CAAC,MAAM,CAAC;YACxB;gBACE,OAAO,oCAAmB,CAAC,OAAO,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;CACF,CAAA;AAlBY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,oBAAoB,CAkBhC"}
1
+ {"version":3,"file":"dynamic-storage.module.js","sourceRoot":"","sources":["../../../../api/src/storage/dynamic-storage.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAuD;AACvD,kFAA6E;AAC7E,qDAA8D;AAC9D,kFAA6E;AAC7E,gEAAkE;AAO3D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAA+B;QAC1D,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,4BAAW,CAAC,QAAQ;gBACvB,OAAO,+CAAqB,CAAC,YAAY,CAAC;oBACxC,UAAU,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ;oBACtD,MAAM,EAAE,CAAC,8BAAa,CAAC;iBACxB,CAAC,CAAC;YACL,KAAK,4BAAW,CAAC,QAAQ;gBACvB,OAAO,+CAAqB,CAAC,YAAY,CAAC;oBACxC,UAAU,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ;oBACtD,MAAM,EAAE,CAAC,8BAAa,CAAC;iBACxB,CAAC,CAAC;YACL,KAAK,4BAAW,CAAC,MAAM,CAAC;YACxB;gBACE,OAAO,oCAAmB,CAAC,YAAY,CAAC;oBACtC,UAAU,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE;oBAC3D,MAAM,EAAE,CAAC,8BAAa,CAAC;iBACxB,CAAC,CAAC;QACP,CAAC;IACH,CAAC;CACF,CAAA;AArBY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,oBAAoB,CAqBhC"}
@@ -1,5 +1,6 @@
1
1
  import { PostgresStorageConfig } from '@dismissible/nestjs-postgres-storage';
2
2
  import { DynamoDBStorageConfig } from '@dismissible/nestjs-dynamodb-storage';
3
+ import { MemoryStorageConfig } from '@dismissible/nestjs-storage';
3
4
  export declare enum StorageType {
4
5
  MEMORY = "memory",
5
6
  POSTGRES = "postgres",
@@ -9,4 +10,5 @@ export declare class StorageConfig {
9
10
  readonly type: StorageType;
10
11
  readonly postgres: PostgresStorageConfig;
11
12
  readonly dynamodb: DynamoDBStorageConfig;
13
+ readonly memory?: MemoryStorageConfig;
12
14
  }
@@ -6,6 +6,7 @@ const class_validator_1 = require("class-validator");
6
6
  const class_transformer_1 = require("class-transformer");
7
7
  const nestjs_postgres_storage_1 = require("@dismissible/nestjs-postgres-storage");
8
8
  const nestjs_dynamodb_storage_1 = require("@dismissible/nestjs-dynamodb-storage");
9
+ const nestjs_storage_1 = require("@dismissible/nestjs-storage");
9
10
  var StorageType;
10
11
  (function (StorageType) {
11
12
  StorageType["MEMORY"] = "memory";
@@ -34,4 +35,11 @@ tslib_1.__decorate([
34
35
  (0, class_transformer_1.Type)(() => nestjs_dynamodb_storage_1.DynamoDBStorageConfig),
35
36
  tslib_1.__metadata("design:type", nestjs_dynamodb_storage_1.DynamoDBStorageConfig)
36
37
  ], StorageConfig.prototype, "dynamodb", void 0);
38
+ tslib_1.__decorate([
39
+ (0, class_validator_1.IsOptional)(),
40
+ (0, class_validator_1.IsDefined)(),
41
+ (0, class_validator_1.ValidateNested)(),
42
+ (0, class_transformer_1.Type)(() => nestjs_storage_1.MemoryStorageConfig),
43
+ tslib_1.__metadata("design:type", nestjs_storage_1.MemoryStorageConfig)
44
+ ], StorageConfig.prototype, "memory", void 0);
37
45
  //# sourceMappingURL=storage.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.config.js","sourceRoot":"","sources":["../../../../api/src/storage/storage.config.ts"],"names":[],"mappings":";;;;AAAA,qDAAgF;AAChF,yDAAyC;AACzC,kFAA6E;AAC7E,kFAA6E;AAE7E,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,oCAAqB,CAAA;AACvB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,MAAa,aAAa;CAgBzB;AAhBD,sCAgBC;AAbiB;IAFf,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAM,EAAC,WAAW,CAAC;;2CACe;AAMnB;IAJf,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;IAClD,IAAA,2BAAS,GAAE;IACX,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,+CAAqB,CAAC;sCACP,+CAAqB;+CAAC;AAMjC;IAJf,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;IAClD,IAAA,2BAAS,GAAE;IACX,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,+CAAqB,CAAC;sCACP,+CAAqB;+CAAC"}
1
+ {"version":3,"file":"storage.config.js","sourceRoot":"","sources":["../../../../api/src/storage/storage.config.ts"],"names":[],"mappings":";;;;AAAA,qDAA4F;AAC5F,yDAAyC;AACzC,kFAA6E;AAC7E,kFAA6E;AAC7E,gEAAkE;AAElE,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,oCAAqB,CAAA;AACvB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,MAAa,aAAa;CAsBzB;AAtBD,sCAsBC;AAnBiB;IAFf,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAM,EAAC,WAAW,CAAC;;2CACe;AAMnB;IAJf,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;IAClD,IAAA,2BAAS,GAAE;IACX,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,+CAAqB,CAAC;sCACP,+CAAqB;+CAAC;AAMjC;IAJf,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;IAClD,IAAA,2BAAS,GAAE;IACX,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,+CAAqB,CAAC;sCACP,+CAAqB;+CAAC;AAMjC;IAJf,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;IACX,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,oCAAmB,CAAC;sCACP,oCAAmB;6CAAC"}