@etohq/framework 1.0.0 → 1.2.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 (132) hide show
  1. package/dist/build-tools/compiler.d.ts.map +1 -1
  2. package/dist/build-tools/compiler.js +38 -32
  3. package/dist/build-tools/compiler.js.map +1 -1
  4. package/dist/config/config.d.ts.map +1 -1
  5. package/dist/config/config.js +1 -0
  6. package/dist/config/config.js.map +1 -1
  7. package/dist/config/loader.d.ts +7 -2
  8. package/dist/config/loader.d.ts.map +1 -1
  9. package/dist/config/loader.js +28 -6
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/types.d.ts +4 -166
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/context/index.d.ts +6 -0
  14. package/dist/context/index.d.ts.map +1 -0
  15. package/dist/context/index.js +50 -0
  16. package/dist/context/index.js.map +1 -0
  17. package/dist/error/index.d.ts +205 -0
  18. package/dist/error/index.d.ts.map +1 -0
  19. package/dist/error/index.js +273 -0
  20. package/dist/error/index.js.map +1 -0
  21. package/dist/eto-app-loader.d.ts +6 -4
  22. package/dist/eto-app-loader.d.ts.map +1 -1
  23. package/dist/eto-app-loader.js +53 -11
  24. package/dist/eto-app-loader.js.map +1 -1
  25. package/dist/eto.d.ts +39 -0
  26. package/dist/eto.d.ts.map +1 -0
  27. package/dist/eto.js +148 -0
  28. package/dist/eto.js.map +1 -0
  29. package/dist/feature-flags/feature-flag-loader.d.ts +4 -3
  30. package/dist/feature-flags/feature-flag-loader.d.ts.map +1 -1
  31. package/dist/feature-flags/feature-flag-loader.js +36 -25
  32. package/dist/feature-flags/feature-flag-loader.js.map +1 -1
  33. package/dist/http/encore.d.ts +191 -0
  34. package/dist/http/encore.d.ts.map +1 -0
  35. package/dist/http/encore.js +3 -0
  36. package/dist/http/encore.js.map +1 -0
  37. package/dist/http/index.d.ts +1 -3
  38. package/dist/http/index.d.ts.map +1 -1
  39. package/dist/http/index.js +1 -3
  40. package/dist/http/index.js.map +1 -1
  41. package/dist/http/middlewares/apply-default-filters.d.ts +2 -2
  42. package/dist/http/middlewares/apply-default-filters.d.ts.map +1 -1
  43. package/dist/http/middlewares/apply-default-filters.js +8 -6
  44. package/dist/http/middlewares/apply-default-filters.js.map +1 -1
  45. package/dist/http/middlewares/apply-params-as-filters.d.ts +2 -2
  46. package/dist/http/middlewares/apply-params-as-filters.d.ts.map +1 -1
  47. package/dist/http/middlewares/apply-params-as-filters.js +7 -4
  48. package/dist/http/middlewares/apply-params-as-filters.js.map +1 -1
  49. package/dist/http/middlewares/authenticate-middleware.d.ts +2 -2
  50. package/dist/http/middlewares/authenticate-middleware.d.ts.map +1 -1
  51. package/dist/http/middlewares/authenticate-middleware.js +25 -22
  52. package/dist/http/middlewares/authenticate-middleware.js.map +1 -1
  53. package/dist/http/middlewares/clear-filters-by-key.d.ts +2 -2
  54. package/dist/http/middlewares/clear-filters-by-key.d.ts.map +1 -1
  55. package/dist/http/middlewares/clear-filters-by-key.js +2 -2
  56. package/dist/http/middlewares/clear-filters-by-key.js.map +1 -1
  57. package/dist/http/middlewares/ensure-publishable-api-key.d.ts +2 -2
  58. package/dist/http/middlewares/ensure-publishable-api-key.d.ts.map +1 -1
  59. package/dist/http/middlewares/ensure-publishable-api-key.js +7 -5
  60. package/dist/http/middlewares/ensure-publishable-api-key.js.map +1 -1
  61. package/dist/http/middlewares/error-handler.d.ts +2 -3
  62. package/dist/http/middlewares/error-handler.d.ts.map +1 -1
  63. package/dist/http/middlewares/error-handler.js +6 -3
  64. package/dist/http/middlewares/error-handler.js.map +1 -1
  65. package/dist/http/middlewares/set-context.d.ts +2 -2
  66. package/dist/http/middlewares/set-context.d.ts.map +1 -1
  67. package/dist/http/middlewares/set-context.js +4 -4
  68. package/dist/http/middlewares/set-context.js.map +1 -1
  69. package/dist/http/types.d.ts +41 -31
  70. package/dist/http/types.d.ts.map +1 -1
  71. package/dist/http/types.js.map +1 -1
  72. package/dist/http/utils/http-compression.d.ts +1 -4
  73. package/dist/http/utils/http-compression.d.ts.map +1 -1
  74. package/dist/http/utils/http-compression.js +35 -30
  75. package/dist/http/utils/http-compression.js.map +1 -1
  76. package/dist/http/utils/maybe-apply-link-filter.d.ts +2 -2
  77. package/dist/http/utils/maybe-apply-link-filter.d.ts.map +1 -1
  78. package/dist/http/utils/maybe-apply-link-filter.js +7 -6
  79. package/dist/http/utils/maybe-apply-link-filter.js.map +1 -1
  80. package/dist/http/utils/refetch-entities.d.ts +2 -2
  81. package/dist/http/utils/refetch-entities.d.ts.map +1 -1
  82. package/dist/http/utils/refetch-entities.js.map +1 -1
  83. package/dist/http/utils/unless-path.d.ts +4 -4
  84. package/dist/http/utils/unless-path.d.ts.map +1 -1
  85. package/dist/http/utils/unless-path.js +20 -11
  86. package/dist/http/utils/unless-path.js.map +1 -1
  87. package/dist/http/utils/validate-body.d.ts +1 -4
  88. package/dist/http/utils/validate-body.d.ts.map +1 -1
  89. package/dist/http/utils/validate-body.js +31 -20
  90. package/dist/http/utils/validate-body.js.map +1 -1
  91. package/dist/http/utils/validate-query.d.ts +9 -4
  92. package/dist/http/utils/validate-query.d.ts.map +1 -1
  93. package/dist/http/utils/validate-query.js +63 -20
  94. package/dist/http/utils/validate-query.js.map +1 -1
  95. package/dist/index.d.ts +4 -0
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +4 -0
  98. package/dist/index.js.map +1 -1
  99. package/dist/jobs/job-loader.d.ts +12 -4
  100. package/dist/jobs/job-loader.d.ts.map +1 -1
  101. package/dist/jobs/job-loader.js +56 -38
  102. package/dist/jobs/job-loader.js.map +1 -1
  103. package/dist/link-modules-sdk/index.d.ts +2 -0
  104. package/dist/link-modules-sdk/index.d.ts.map +1 -0
  105. package/dist/link-modules-sdk/index.js +18 -0
  106. package/dist/link-modules-sdk/index.js.map +1 -0
  107. package/dist/loader.d.ts +24 -0
  108. package/dist/loader.d.ts.map +1 -0
  109. package/dist/loader.js +104 -0
  110. package/dist/loader.js.map +1 -0
  111. package/dist/mikro-orm-cli/bin.js +0 -0
  112. package/dist/subscribers/subscriber-loader.d.ts +15 -1
  113. package/dist/subscribers/subscriber-loader.d.ts.map +1 -1
  114. package/dist/subscribers/subscriber-loader.js +44 -17
  115. package/dist/subscribers/subscriber-loader.js.map +1 -1
  116. package/dist/types/container.d.ts +2 -23
  117. package/dist/types/container.d.ts.map +1 -1
  118. package/dist/zod/zod-helpers.js +1 -1
  119. package/dist/zod/zod-helpers.js.map +1 -1
  120. package/package.json +12 -9
  121. package/dist/http/express-loader.d.ts +0 -8
  122. package/dist/http/express-loader.d.ts.map +0 -1
  123. package/dist/http/express-loader.js +0 -85
  124. package/dist/http/express-loader.js.map +0 -1
  125. package/dist/http/router.d.ts +0 -100
  126. package/dist/http/router.d.ts.map +0 -1
  127. package/dist/http/router.js +0 -764
  128. package/dist/http/router.js.map +0 -1
  129. package/dist/http/utils/define-middlewares.d.ts +0 -18
  130. package/dist/http/utils/define-middlewares.d.ts.map +0 -1
  131. package/dist/http/utils/define-middlewares.js +0 -40
  132. package/dist/http/utils/define-middlewares.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"eto-app-loader.js","sourceRoot":"","sources":["../src/eto-app-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eto-app-loader.js","sourceRoot":"","sources":["../src/eto-app-loader.ts"],"names":[],"mappings":"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"}
package/dist/eto.d.ts ADDED
@@ -0,0 +1,39 @@
1
+ import { ConfigModule, DefaultModulesDefinition, InputConfig, InputConfigModules, LoadedModule } from "@etohq/types";
2
+ import { GraphQLSchema } from "@etohq/utils";
3
+ import { EtoContainer } from "./container";
4
+ export interface EtoConfig<TKey extends string = string> {
5
+ directory: string;
6
+ inlineConfig?: ConfigModule<TKey>;
7
+ }
8
+ export interface Eto {
9
+ directory: string;
10
+ container: EtoContainer;
11
+ modules: Record<string, LoadedModule | LoadedModule[]>;
12
+ shutdown: () => Promise<void>;
13
+ gqlSchema?: GraphQLSchema;
14
+ }
15
+ export type EtoLoader<TKey extends string> = {
16
+ loadEto: (inlineConfig?: ConfigModule<TKey>) => Promise<Eto>;
17
+ modulesDefinition: DefaultModulesDefinition<TKey>;
18
+ defaultModules: InputConfigModules<TKey>;
19
+ };
20
+ export interface EtoOptions<TKey extends string = string> {
21
+ loader: EtoLoader<TKey>;
22
+ generateTypes?: boolean;
23
+ inlineConfig?: ConfigModule;
24
+ env: Record<string, string | string[]>;
25
+ }
26
+ export declare class EtoBuilder<TKey extends string = string> {
27
+ private _generateTypes;
28
+ private _loaders;
29
+ private _env;
30
+ private _etoActivity;
31
+ constructor(options: EtoOptions<TKey>);
32
+ private defineConfig;
33
+ build(inlineConfig?: Partial<InputConfig<TKey>>): Promise<Eto>;
34
+ private generateTypeDefinitions;
35
+ private registerShutdownHandlers;
36
+ private handleInitializationError;
37
+ }
38
+ export default Eto;
39
+ //# sourceMappingURL=eto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eto.d.ts","sourceRoot":"","sources":["../src/eto.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACb,MAAM,cAAc,CAAA;AACrB,OAAO,EAML,aAAa,EAEd,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM1C,MAAM,WAAW,SAAS,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,GAAG;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC,CAAA;IACtD,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,SAAS,CAAC,EAAE,aAAa,CAAA;CAC1B;AAED,MAAM,MAAM,SAAS,CAAC,IAAI,SAAS,MAAM,IAAI;IAC3C,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC5D,iBAAiB,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAA;IACjD,cAAc,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAA;CACzC,CAAA;AAED,MAAM,WAAW,UAAU,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IACtD,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;CACvC;AAED,qBAAa,UAAU,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IAClD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,IAAI,CAAmC;IAC/C,OAAO,CAAC,YAAY,CAA2B;gBAEnC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;IAMrC,OAAO,CAAC,YAAY;IA0FP,KAAK,CAChB,YAAY,GAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAM,GAC5C,OAAO,CAAC,GAAG,CAAC;YA8BD,uBAAuB;IAwBrC,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,yBAAyB;CAOlC;AAED,eAAe,GAAG,CAAA"}
package/dist/eto.js ADDED
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EtoBuilder = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const utils_1 = require("@etohq/utils");
9
+ const modules_sdk_1 = require("@etohq/modules-sdk");
10
+ const lodash_1 = require("lodash");
11
+ const logger_1 = require("./logger");
12
+ class EtoBuilder {
13
+ constructor(options) {
14
+ this._etoActivity = logger_1.logger.activity("Eto -");
15
+ this._generateTypes = options.generateTypes ?? false;
16
+ this._loaders = options.loader;
17
+ this._env = options.env;
18
+ }
19
+ defineConfig(config = {}) {
20
+ const { http, redisOptions, ...restOfProjectConfig } = config.projectConfig || {};
21
+ /**
22
+ * The defaults to use for the project config. They are shallow merged
23
+ * with the user defined config. However,
24
+ */
25
+ const projectConfig = {
26
+ databaseUrl: process.env.DATABASE_URL ||
27
+ this._env.DEFAULT_DATABASE_URL ||
28
+ "postgres://localhost/eto-starter-default",
29
+ http: {
30
+ authCors: process.env.AUTH_CORS || this._env.DEFAULT_ADMIN_CORS,
31
+ jwtSecret: process.env.JWT_SECRET ||
32
+ this._env.DEFAULT_SECRET ||
33
+ "supersecret",
34
+ cookieSecret: process.env.COOKIE_SECRET ||
35
+ this._env.DEFAULT_SECRET ||
36
+ "supersecret",
37
+ restrictedFields: {
38
+ store: (0, lodash_1.isArray)(this._env.DEFAULT_STORE_RESTRICTED_FIELDS)
39
+ ? this._env.DEFAULT_STORE_RESTRICTED_FIELDS
40
+ : [this._env.DEFAULT_STORE_RESTRICTED_FIELDS],
41
+ },
42
+ ...http,
43
+ },
44
+ redisOptions: {
45
+ retryStrategy(retries) {
46
+ /**
47
+ * Exponentially increase delay with every retry
48
+ * attempt. Max to 4s
49
+ */
50
+ const delay = Math.min(Math.pow(2, retries) * 50, 4000);
51
+ /**
52
+ * Add a random jitter to not choke the server when multiple
53
+ * clients are retrying at the same time
54
+ */
55
+ const jitter = Math.floor(Math.random() * 200);
56
+ return delay + jitter;
57
+ },
58
+ ...redisOptions,
59
+ },
60
+ ...restOfProjectConfig,
61
+ };
62
+ /**
63
+ * The defaults to use for the admin config. They are shallow merged
64
+ * with the user defined config
65
+ */
66
+ const admin = {
67
+ backendUrl: process.env.ETO_BACKEND_URL || this._env.DEFAULT_ADMIN_URL,
68
+ path: "/app",
69
+ ...config.admin,
70
+ };
71
+ /**
72
+ * The defaults to use for the feature flags config. They are shallow merged
73
+ * with the user defined config
74
+ */
75
+ const featureFlags = {
76
+ ...config.featureFlags,
77
+ };
78
+ const moduleMap = (0, utils_1.createModuleMap)(this._loaders.defaultModules);
79
+ const reversedModuleMap = (0, utils_1.createReversedModuleMap)(moduleMap);
80
+ return {
81
+ projectConfig,
82
+ featureFlags,
83
+ plugins: config.plugins || [],
84
+ admin,
85
+ modules: config.modules
86
+ ? (0, utils_1.transformModules)({
87
+ modules: config.modules,
88
+ moduleMap,
89
+ reversedModuleMap,
90
+ })
91
+ : undefined,
92
+ modulesDefinition: this._loaders.modulesDefinition
93
+ };
94
+ }
95
+ async build(inlineConfig = {}) {
96
+ const setupEto = async (loader, shouldGenerateTypes, config) => {
97
+ try {
98
+ const loaded = await loader.loadEto(config);
99
+ if (shouldGenerateTypes) {
100
+ await this.generateTypeDefinitions(loaded, loaded.directory);
101
+ }
102
+ logger_1.logger.success(this._etoActivity, "Eto is ready");
103
+ this.registerShutdownHandlers(loaded.shutdown);
104
+ return loaded;
105
+ }
106
+ catch (err) {
107
+ this.handleInitializationError(err);
108
+ process.exit(1);
109
+ }
110
+ };
111
+ return setupEto(this._loaders, this._generateTypes, inlineConfig ? this.defineConfig(inlineConfig) : undefined);
112
+ }
113
+ async generateTypeDefinitions(eto, baseDir) {
114
+ const typesDirectory = path_1.default.join(baseDir, ".eto/types");
115
+ await new utils_1.FileSystem(typesDirectory).cleanup({ recursive: true });
116
+ await (0, utils_1.generateContainerTypes)(eto.modules, {
117
+ outputDir: typesDirectory,
118
+ interfaceName: "ModuleImplementations",
119
+ });
120
+ if (eto.gqlSchema) {
121
+ await (0, utils_1.gqlSchemaToTypes)({
122
+ outputDir: typesDirectory,
123
+ filename: "query-entry-points",
124
+ interfaceName: "RemoteQueryEntryPoints",
125
+ schema: eto.gqlSchema,
126
+ joinerConfigs: modules_sdk_1.EtoModule.getAllJoinerConfigs(),
127
+ });
128
+ }
129
+ }
130
+ registerShutdownHandlers(shutdownFn) {
131
+ const gracefulShutdown = async () => {
132
+ logger_1.logger.info("Gracefully tearing down Eto Eto");
133
+ await shutdownFn();
134
+ };
135
+ process.on("SIGTERM", gracefulShutdown);
136
+ process.on("SIGINT", gracefulShutdown);
137
+ }
138
+ handleInitializationError(err) {
139
+ if (err instanceof Error) {
140
+ logger_1.logger.error("Error initializing Eto", err);
141
+ }
142
+ else {
143
+ logger_1.logger.error("Error initializing Eto", new Error(String(err)));
144
+ }
145
+ }
146
+ }
147
+ exports.EtoBuilder = EtoBuilder;
148
+ //# sourceMappingURL=eto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eto.js","sourceRoot":"","sources":["../src/eto.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { FlagRouter } from "@etohq/utils";
2
+ import { FlagSettings } from "./types";
2
3
  export declare const featureFlagRouter: FlagRouter;
3
4
  /**
4
- * Load feature flags from a directory and from the already loaded config under the hood
5
- * @param sourcePath
5
+ * Load feature flags from one or multiple directories or objects
6
+ * @param sources - Array of paths or objects to load feature flags from
6
7
  */
7
- export declare function featureFlagsLoader(sourcePath?: string): Promise<FlagRouter>;
8
+ export declare function featureFlagsLoader(sources?: (string | Record<string, FlagSettings>)[]): Promise<FlagRouter>;
8
9
  //# sourceMappingURL=feature-flag-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature-flag-loader.d.ts","sourceRoot":"","sources":["../../src/feature-flags/feature-flag-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,UAAU,EAOX,MAAM,cAAc,CAAA;AAQrB,eAAO,MAAM,iBAAiB,YAAqB,CAAA;AA+DnD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,CAAC,CAuCrB"}
1
+ {"version":3,"file":"feature-flag-loader.d.ts","sourceRoot":"","sources":["../../src/feature-flags/feature-flag-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,UAAU,EAOX,MAAM,cAAc,CAAA;AAMrB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,eAAO,MAAM,iBAAiB,YAAqB,CAAA;AAgEnD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,GAClD,OAAO,CAAC,UAAU,CAAC,CAiDrB"}
@@ -46,36 +46,47 @@ function registerFlag(flag, projectConfigFlags) {
46
46
  exports.featureFlagRouter.setFlag(flag.key, flagConfig[flag.key]);
47
47
  }
48
48
  /**
49
- * Load feature flags from a directory and from the already loaded config under the hood
50
- * @param sourcePath
49
+ * Load feature flags from one or multiple directories or objects
50
+ * @param sources - Array of paths or objects to load feature flags from
51
51
  */
52
- async function featureFlagsLoader(sourcePath) {
52
+ async function featureFlagsLoader(sources) {
53
53
  const { featureFlags: projectConfigFlags = {} } = config_1.configManager.config;
54
- if (!sourcePath) {
54
+ if (!sources || sources.length === 0) {
55
55
  return exports.featureFlagRouter;
56
56
  }
57
- const flagDir = (0, path_1.normalize)(sourcePath);
58
- await (0, utils_1.readDirRecursive)(flagDir).then(async (files) => {
59
- if (!files?.length) {
60
- return;
57
+ for (const source of sources) {
58
+ if (typeof source === "string") {
59
+ const flagDir = (0, path_1.normalize)(source);
60
+ await (0, utils_1.readDirRecursive)(flagDir).then(async (files) => {
61
+ if (!files?.length) {
62
+ return;
63
+ }
64
+ for (const file of files) {
65
+ if (file.isDirectory()) {
66
+ await featureFlagsLoader([(0, path_1.join)(flagDir, file.name)]);
67
+ continue;
68
+ }
69
+ if (excludedExtensions.some((ext) => file.name.endsWith(ext)) ||
70
+ excludedFiles.includes(file.name)) {
71
+ continue;
72
+ }
73
+ const fileExports = await (0, utils_1.dynamicImport)((0, path_1.join)(flagDir, file.name));
74
+ const featureFlag = fileExports.default;
75
+ if (!featureFlag) {
76
+ continue;
77
+ }
78
+ registerFlag(featureFlag, projectConfigFlags);
79
+ }
80
+ });
61
81
  }
62
- files.map(async (file) => {
63
- if (file.isDirectory()) {
64
- return await featureFlagsLoader((0, path_1.join)(flagDir, file.name));
65
- }
66
- if (excludedExtensions.some((ext) => file.name.endsWith(ext)) ||
67
- excludedFiles.includes(file.name)) {
68
- return;
69
- }
70
- const fileExports = await (0, utils_1.dynamicImport)((0, path_1.join)(flagDir, file.name));
71
- const featureFlag = fileExports.default;
72
- if (!featureFlag) {
73
- return;
74
- }
75
- registerFlag(featureFlag, projectConfigFlags);
76
- return;
77
- });
78
- });
82
+ else if (typeof source === "object" && source !== null) {
83
+ Object.values(source).forEach((value) => {
84
+ if (typeof value === "object" && value !== null) {
85
+ registerFlag(value, projectConfigFlags);
86
+ }
87
+ });
88
+ }
89
+ }
79
90
  return exports.featureFlagRouter;
80
91
  }
81
92
  //# sourceMappingURL=feature-flag-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature-flag-loader.js","sourceRoot":"","sources":["../../src/feature-flags/feature-flag-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-flag-loader.js","sourceRoot":"","sources":["../../src/feature-flags/feature-flag-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,191 @@
1
+ /** Describes an API endpoint. */
2
+ export interface APIDesc {
3
+ /** The name of the service that the endpoint belongs to. */
4
+ service: string;
5
+ /** The name of the endpoint itself. */
6
+ endpoint: string;
7
+ /** Whether the endpoint is a raw endpoint. */
8
+ raw: boolean;
9
+ /** Whether the endpoint requires auth. */
10
+ auth: boolean;
11
+ }
12
+ export type Method = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS" | "CONNECT" | "TRACE";
13
+ /** Describes an API call being processed. */
14
+ export interface APICallMeta {
15
+ /** Specifies that the request is an API call. */
16
+ type: "api-call";
17
+ /** Describes the API Endpoint being called. */
18
+ api: APIDesc;
19
+ /** The HTTP method used in the API call. */
20
+ method: Method;
21
+ /**
22
+ * The request URL path used in the API call,
23
+ * excluding any query string parameters.
24
+ * For example "/path/to/endpoint".
25
+ */
26
+ path: string;
27
+ /**
28
+ * The request URL path used in the API call,
29
+ * including any query string parameters.
30
+ * For example "/path/to/endpoint?with=querystring".
31
+ */
32
+ pathAndQuery: string;
33
+ /**
34
+ * The parsed path parameters for the API endpoint.
35
+ * The keys are the names of the path parameters,
36
+ * from the API definition.
37
+ *
38
+ * For example {id: 5}.
39
+ */
40
+ pathParams: Record<string, any>;
41
+ /**
42
+ * The request headers from the HTTP request.
43
+ * The values are arrays if the header contains multiple values,
44
+ * either separated by ";" or when the header key appears more than once.
45
+ */
46
+ headers: Record<string, string | string[]>;
47
+ /**
48
+ * The parsed request payload, as expected by the application code.
49
+ * Not provided for raw endpoints or when the API endpoint expects no
50
+ * request data.
51
+ */
52
+ parsedPayload?: Record<string, any>;
53
+ /**
54
+ * Contains values set in middlewares via `MiddlewareRequest.data`.
55
+ */
56
+ middlewareData?: Record<string, any>;
57
+ }
58
+ /** Describes a Pub/Sub message being processed. */
59
+ export interface PubSubMessageMeta {
60
+ /** Specifies that the request is a Pub/Sub message. */
61
+ type: "pubsub-message";
62
+ /** The service processing the message. */
63
+ service: string;
64
+ /** The name of the Pub/Sub topic. */
65
+ topic: string;
66
+ /** The name of the Pub/Sub subscription. */
67
+ subscription: string;
68
+ /**
69
+ * The unique id of the Pub/Sub message.
70
+ * It is the same id returned by `topic.publish()`.
71
+ * The message id stays the same across delivery attempts.
72
+ */
73
+ messageId: string;
74
+ /**
75
+ * The delivery attempt. The first attempt starts at 1,
76
+ * and increases by 1 for each retry.
77
+ */
78
+ deliveryAttempt: number;
79
+ /**
80
+ * The parsed request payload, as expected by the application code.
81
+ */
82
+ parsedPayload?: Record<string, any>;
83
+ }
84
+ /** Provides information about the active trace. */
85
+ export interface TraceData {
86
+ /** The trace id. */
87
+ traceId: string;
88
+ /** The current span id. */
89
+ spanId: string;
90
+ /**
91
+ * The trace id that initiated this trace, if any.
92
+ */
93
+ parentTraceId?: string;
94
+ /**
95
+ * The span that initiated this span, if any.
96
+ */
97
+ parentSpanId?: string;
98
+ /**
99
+ * The external correlation id provided when the trace
100
+ * was created, if any.
101
+ * For example via the `Request-Id` or `X-Correlation-Id` headers.
102
+ */
103
+ extCorrelationId?: string;
104
+ }
105
+ interface BaseRequestMeta {
106
+ /** Information about the trace, if the request is being traced */
107
+ trace?: TraceData;
108
+ }
109
+ /** Describes an API call or Pub/Sub message being processed. */
110
+ export type RequestMeta = (APICallMeta | PubSubMessageMeta) & BaseRequestMeta;
111
+ /**
112
+ * Returns information about the running Encore request,
113
+ * such as API calls and Pub/Sub messages being processed.
114
+ *
115
+ * Returns undefined only if no request is being processed,
116
+ * such as during system initialization.
117
+ */
118
+ export declare function currentRequest(): RequestMeta | undefined;
119
+ export {};
120
+ export interface MiddlewareOptions {
121
+ /**
122
+ * Configuration for what endpoints that should be targeted by the middleware
123
+ */
124
+ target?: {
125
+ /**
126
+ * If set, only run middleware on endpoints that are either exposed or not
127
+ * exposed.
128
+ */
129
+ expose?: boolean;
130
+ /**
131
+ * If set, only run middleware on endpoints that either require or not
132
+ * requires auth.
133
+ */
134
+ auth?: boolean;
135
+ /**
136
+ * If set, only run middleware on endpoints that are raw endpoints.
137
+ */
138
+ isRaw?: boolean;
139
+ /**
140
+ * If set, only run middleware on endpoints that are stream endpoints.
141
+ */
142
+ isStream?: boolean;
143
+ /**
144
+ * If set, only run middleware on endpoints that have specific tags.
145
+ * These tags are evaluated with OR, meaning the middleware applies to an
146
+ * API if the API has at least one of those tags.
147
+ */
148
+ tags?: string[];
149
+ };
150
+ }
151
+ export type MiddlewareRequest = {
152
+ requestMeta: RequestMeta | undefined;
153
+ stream: any | undefined;
154
+ rawRequest: any | undefined;
155
+ rawResponse: any | undefined;
156
+ data: Record<string, any>;
157
+ };
158
+ export type ResponseHeader = {
159
+ headers: Record<string, string | string[]>;
160
+ set(key: string, value: string | string[]): void;
161
+ add(key: string, value: string | string[]): void;
162
+ };
163
+ export type HandlerResponse = {
164
+ /**
165
+ * The payload returned by the handler when the handler is either
166
+ * a typed handler or stream handler.
167
+ */
168
+ payload: any;
169
+ /**
170
+ * header can be used by middlewares to set headers to the
171
+ * response. This only works for typed handler. For raw handlers
172
+ * see MiddlewareRequest.rawResponse.
173
+ */
174
+ header: ResponseHeader;
175
+ /**
176
+ * Override the http status code for successful requests for typed endpoints.
177
+ */
178
+ status: number;
179
+ /**
180
+ * __internalToResponse converts a response to the internal representation
181
+ */
182
+ __internalToResponse(): any;
183
+ };
184
+ export type Next = (req: MiddlewareRequest) => Promise<HandlerResponse>;
185
+ export type MiddlewareFn = (req: MiddlewareRequest, next: Next) => Promise<HandlerResponse>;
186
+ export interface Middleware extends MiddlewareFn {
187
+ options?: MiddlewareOptions;
188
+ }
189
+ export declare function middleware(m: MiddlewareFn): Middleware;
190
+ export declare function middleware(options: MiddlewareOptions, fn: MiddlewareFn): Middleware;
191
+ //# sourceMappingURL=encore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encore.d.ts","sourceRoot":"","sources":["../../src/http/encore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=encore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encore.js","sourceRoot":"","sources":["../../src/http/encore.ts"],"names":[],"mappings":""}
@@ -1,13 +1,11 @@
1
1
  import "../types/container";
2
- export * from "./express-loader";
3
- export * from "./router";
2
+ export * from "./encore";
4
3
  export * from "./types";
5
4
  export * from "./middlewares";
6
5
  export * from "./utils/http-compression";
7
6
  export * from "./utils/validate-body";
8
7
  export * from "./utils/validate-query";
9
8
  export * from "./utils/get-query-config";
10
- export * from "./utils/define-middlewares";
11
9
  export * from "./utils/maybe-apply-link-filter";
12
10
  export * from "./utils/refetch-entities";
13
11
  export * from "./utils/unless-path";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAA;AAE3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAA;AAE3B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA"}
@@ -15,15 +15,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  require("../types/container");
18
- __exportStar(require("./express-loader"), exports);
19
- __exportStar(require("./router"), exports);
18
+ __exportStar(require("./encore"), exports);
20
19
  __exportStar(require("./types"), exports);
21
20
  __exportStar(require("./middlewares"), exports);
22
21
  __exportStar(require("./utils/http-compression"), exports);
23
22
  __exportStar(require("./utils/validate-body"), exports);
24
23
  __exportStar(require("./utils/validate-query"), exports);
25
24
  __exportStar(require("./utils/get-query-config"), exports);
26
- __exportStar(require("./utils/define-middlewares"), exports);
27
25
  __exportStar(require("./utils/maybe-apply-link-filter"), exports);
28
26
  __exportStar(require("./utils/refetch-entities"), exports);
29
27
  __exportStar(require("./utils/unless-path"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8BAA2B;AAE3B,mDAAgC;AAChC,2CAAwB;AACxB,0CAAuB;AACvB,gDAA6B;AAC7B,2DAAwC;AACxC,wDAAqC;AACrC,yDAAsC;AACtC,2DAAwC;AACxC,6DAA0C;AAC1C,kEAA+C;AAC/C,2DAAwC;AACxC,sDAAmC;AACnC,4DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8BAA2B;AAE3B,2CAAwB;AACxB,0CAAuB;AACvB,gDAA6B;AAC7B,2DAAwC;AACxC,wDAAqC;AACrC,yDAAsC;AACtC,2DAAwC;AACxC,kEAA+C;AAC/C,2DAAwC;AACxC,sDAAmC;AACnC,4DAAyC"}
@@ -1,3 +1,3 @@
1
- import { EtoNextFunction, EtoRequest } from "../types";
2
- export declare function applyDefaultFilters<TFilter extends object>(filtersToApply: TFilter): (req: EtoRequest, _: any, next: EtoNextFunction) => Promise<void>;
1
+ import { EtoMiddlewareNext, EtoMiddlewareRequest } from "../types";
2
+ export declare function applyDefaultFilters<TFilter extends object>(filtersToApply: TFilter): (req: EtoMiddlewareRequest, next: EtoMiddlewareNext) => Promise<import("..").HandlerResponse>;
3
3
  //# sourceMappingURL=apply-default-filters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply-default-filters.d.ts","sourceRoot":"","sources":["../../../src/http/middlewares/apply-default-filters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAEtD,wBAAgB,mBAAmB,CAAC,OAAO,SAAS,MAAM,EACxD,cAAc,EAAE,OAAO,SAEJ,UAAU,gBAAW,eAAe,mBA2BxD"}
1
+ {"version":3,"file":"apply-default-filters.d.ts","sourceRoot":"","sources":["../../../src/http/middlewares/apply-default-filters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAGlE,wBAAgB,mBAAmB,CAAC,OAAO,SAAS,MAAM,EACxD,cAAc,EAAE,OAAO,SAEJ,oBAAoB,QAAQ,iBAAiB,2CAgCjE"}