@acmekit/utils 2.13.36 → 2.13.38

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 (36) hide show
  1. package/dist/common/container.d.ts +1 -0
  2. package/dist/common/container.d.ts.map +1 -1
  3. package/dist/common/container.js +1 -0
  4. package/dist/common/container.js.map +1 -1
  5. package/dist/common/define-plugin.d.ts +114 -0
  6. package/dist/common/define-plugin.d.ts.map +1 -0
  7. package/dist/common/define-plugin.js +53 -0
  8. package/dist/common/define-plugin.js.map +1 -0
  9. package/dist/common/get-resolved-plugins.d.ts.map +1 -1
  10. package/dist/common/get-resolved-plugins.js +43 -0
  11. package/dist/common/get-resolved-plugins.js.map +1 -1
  12. package/dist/common/index.d.ts +2 -0
  13. package/dist/common/index.d.ts.map +1 -1
  14. package/dist/common/index.js +2 -0
  15. package/dist/common/index.js.map +1 -1
  16. package/dist/common/merge-plugin-modules.d.ts.map +1 -1
  17. package/dist/common/merge-plugin-modules.js +15 -0
  18. package/dist/common/merge-plugin-modules.js.map +1 -1
  19. package/dist/common/plugin-dependency-graph.d.ts +18 -0
  20. package/dist/common/plugin-dependency-graph.d.ts.map +1 -0
  21. package/dist/common/plugin-dependency-graph.js +62 -0
  22. package/dist/common/plugin-dependency-graph.js.map +1 -0
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/routes/index.d.ts +2 -0
  28. package/dist/routes/index.d.ts.map +1 -0
  29. package/dist/routes/index.js +18 -0
  30. package/dist/routes/index.js.map +1 -0
  31. package/dist/routes/routes-to-types.d.ts +19 -0
  32. package/dist/routes/routes-to-types.d.ts.map +1 -0
  33. package/dist/routes/routes-to-types.js +442 -0
  34. package/dist/routes/routes-to-types.js.map +1 -0
  35. package/dist/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +5 -4
@@ -14,5 +14,6 @@ export declare const ContainerRegistrationKeys: {
14
14
  */
15
15
  readonly LINK: "link";
16
16
  readonly FEATURE_FLAG_ROUTER: "featureFlagRouter";
17
+ readonly PLUGIN_OPTIONS: "plugin_options";
17
18
  };
18
19
  //# sourceMappingURL=container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/common/container.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB;;;;;;;IAOpC;;OAEG;;IAEH;;OAEG;;;CAGK,CAAA"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/common/container.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB;;;;;;;IAOpC;;OAEG;;IAEH;;OAEG;;;;CAIK,CAAA"}
@@ -17,5 +17,6 @@ exports.ContainerRegistrationKeys = {
17
17
  */
18
18
  LINK: "link",
19
19
  FEATURE_FLAG_ROUTER: "featureFlagRouter",
20
+ PLUGIN_OPTIONS: "plugin_options",
20
21
  };
21
22
  //# sourceMappingURL=container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/common/container.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GAAG;IACvC,aAAa,EAAE,mBAAmB;IAClC,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,cAAc;IAC7B,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,aAAa;IAC3B,KAAK,EAAE,OAAO;IACd;;OAEG;IACH,WAAW,EAAE,YAAY;IACzB;;OAEG;IACH,IAAI,EAAE,MAAM;IACZ,mBAAmB,EAAE,mBAAmB;CAChC,CAAA"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/common/container.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GAAG;IACvC,aAAa,EAAE,mBAAmB;IAClC,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,cAAc;IAC7B,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,aAAa;IAC3B,KAAK,EAAE,OAAO;IACd;;OAEG;IACH,WAAW,EAAE,YAAY;IACzB;;OAEG;IACH,IAAI,EAAE,MAAM;IACZ,mBAAmB,EAAE,mBAAmB;IACxC,cAAc,EAAE,gBAAgB;CACxB,CAAA"}
@@ -0,0 +1,114 @@
1
+ import type { ZodType } from "zod";
2
+ /**
3
+ * Represents the manifest for an AcmeKit plugin.
4
+ * Defines metadata, dependencies, options validation,
5
+ * and lifecycle hooks.
6
+ */
7
+ export interface PluginManifest {
8
+ /**
9
+ * Unique name of the plugin. Should match the package name
10
+ * in package.json.
11
+ */
12
+ name: string;
13
+ /**
14
+ * Human-readable description of what the plugin does.
15
+ */
16
+ description?: string;
17
+ /**
18
+ * Plugin version (semver). If not provided, the version
19
+ * from package.json is used.
20
+ */
21
+ version?: string;
22
+ /**
23
+ * Plugin dependencies — other plugins that must be loaded
24
+ * before this one. Each entry is a plugin package name.
25
+ *
26
+ * @example
27
+ * dependencies: ["@acmekit/some-plugin", "@myorg/other-plugin"]
28
+ */
29
+ dependencies?: string[];
30
+ /**
31
+ * Zod schema for validating plugin options at startup.
32
+ * When provided, options passed via acmekit-config.ts are
33
+ * validated during plugin resolution — invalid options
34
+ * throw immediately with a descriptive error.
35
+ */
36
+ optionsSchema?: ZodType<any>;
37
+ /**
38
+ * Lifecycle hook called after all modules are loaded and
39
+ * the application has started. Use this for initialization
40
+ * logic like seeding data, connecting to external services,
41
+ * or registering custom container entries.
42
+ */
43
+ onPluginStart?: (container: any) => Promise<void>;
44
+ /**
45
+ * Lifecycle hook called during graceful shutdown. Plugins
46
+ * are shut down in reverse dependency order. Use this for
47
+ * cleanup logic like closing connections or flushing buffers.
48
+ *
49
+ * Errors thrown in this hook are logged but don't prevent
50
+ * other plugins from shutting down.
51
+ */
52
+ onPluginShutdown?: (container: any) => Promise<void>;
53
+ }
54
+ /**
55
+ * The resolved plugin manifest returned by `definePlugin()`.
56
+ * Includes the original manifest fields plus a `resolveOptions`
57
+ * method bound to the plugin's name.
58
+ */
59
+ export type ResolvedPluginManifest = PluginManifest & {
60
+ /**
61
+ * Resolve this plugin's options from the container.
62
+ * Works in any context that has access to the container:
63
+ * API routes, subscribers, jobs, workflows, modules.
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * import plugin from "../plugin"
68
+ *
69
+ * export default async function handler({ container }) {
70
+ * const options = plugin.resolveOptions(container)
71
+ * }
72
+ * ```
73
+ */
74
+ resolveOptions: <T extends Record<string, unknown> = Record<string, unknown>>(container: any) => T;
75
+ };
76
+ /**
77
+ * Resolve a plugin's options from the container by plugin name.
78
+ * Works in any context that has access to the container.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * import { resolvePluginOptions } from "@acmekit/framework/utils"
83
+ *
84
+ * const options = resolvePluginOptions(container, "@myorg/analytics")
85
+ * ```
86
+ */
87
+ export declare function resolvePluginOptions<T extends Record<string, unknown> = Record<string, unknown>>(container: any, pluginName: string): T;
88
+ /**
89
+ * Defines a plugin manifest. Provides type checking, a known
90
+ * export shape for the plugin resolver, and a bound
91
+ * `resolveOptions(container)` method.
92
+ *
93
+ * Create a `src/plugin.ts` file in your plugin project and
94
+ * export the result as the default export.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * import { definePlugin } from "@acmekit/framework/utils"
99
+ * import { z } from "zod"
100
+ *
101
+ * export default definePlugin({
102
+ * name: "@myorg/reviews-plugin",
103
+ * dependencies: ["@acmekit/product-plugin"],
104
+ * optionsSchema: z.object({
105
+ * apiKey: z.string().min(1),
106
+ * }),
107
+ * onPluginStart: async (container) => {
108
+ * const options = plugin.resolveOptions(container)
109
+ * },
110
+ * })
111
+ * ```
112
+ */
113
+ export declare function definePlugin(manifest: PluginManifest): ResolvedPluginManifest;
114
+ //# sourceMappingURL=define-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-plugin.d.ts","sourceRoot":"","sources":["../../src/common/define-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAGlC;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IAEvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAE5B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjD;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACrD;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG;IACpD;;;;;;;;;;;;;OAaG;IACH,cAAc,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1E,SAAS,EAAE,GAAG,KACX,CAAC,CAAA;CACP,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,CAIvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,sBAAsB,CAS7E"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolvePluginOptions = resolvePluginOptions;
4
+ exports.definePlugin = definePlugin;
5
+ const container_1 = require("./container");
6
+ /**
7
+ * Resolve a plugin's options from the container by plugin name.
8
+ * Works in any context that has access to the container.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import { resolvePluginOptions } from "@acmekit/framework/utils"
13
+ *
14
+ * const options = resolvePluginOptions(container, "@myorg/analytics")
15
+ * ```
16
+ */
17
+ function resolvePluginOptions(container, pluginName) {
18
+ return container.resolve(`${container_1.ContainerRegistrationKeys.PLUGIN_OPTIONS}_${pluginName}`);
19
+ }
20
+ /**
21
+ * Defines a plugin manifest. Provides type checking, a known
22
+ * export shape for the plugin resolver, and a bound
23
+ * `resolveOptions(container)` method.
24
+ *
25
+ * Create a `src/plugin.ts` file in your plugin project and
26
+ * export the result as the default export.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * import { definePlugin } from "@acmekit/framework/utils"
31
+ * import { z } from "zod"
32
+ *
33
+ * export default definePlugin({
34
+ * name: "@myorg/reviews-plugin",
35
+ * dependencies: ["@acmekit/product-plugin"],
36
+ * optionsSchema: z.object({
37
+ * apiKey: z.string().min(1),
38
+ * }),
39
+ * onPluginStart: async (container) => {
40
+ * const options = plugin.resolveOptions(container)
41
+ * },
42
+ * })
43
+ * ```
44
+ */
45
+ function definePlugin(manifest) {
46
+ return {
47
+ ...manifest,
48
+ resolveOptions(container) {
49
+ return resolvePluginOptions(container, manifest.name);
50
+ },
51
+ };
52
+ }
53
+ //# sourceMappingURL=define-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-plugin.js","sourceRoot":"","sources":["../../src/common/define-plugin.ts"],"names":[],"mappings":";;AAkGA,oDAMC;AA2BD,oCASC;AA3ID,2CAAuD;AAsFvD;;;;;;;;;;GAUG;AACH,SAAgB,oBAAoB,CAElC,SAAc,EAAE,UAAkB;IAClC,OAAO,SAAS,CAAC,OAAO,CACtB,GAAG,qCAAyB,CAAC,cAAc,IAAI,UAAU,EAAE,CAC5D,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,YAAY,CAAC,QAAwB;IACnD,OAAO;QACL,GAAG,QAAQ;QACX,cAAc,CAEZ,SAAc;YACd,OAAO,oBAAoB,CAAI,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC1D,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-resolved-plugins.d.ts","sourceRoot":"","sources":["../../src/common/get-resolved-plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAU5D,eAAO,MAAM,oBAAoB,mBAAmB,CAAA;AAoHpD,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,YAAY,EAC1B,gBAAgB,UAAQ,GACvB,OAAO,CAAC,aAAa,EAAE,CAAC,CA0B1B"}
1
+ {"version":3,"file":"get-resolved-plugins.d.ts","sourceRoot":"","sources":["../../src/common/get-resolved-plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAY5D,eAAO,MAAM,oBAAoB,mBAAmB,CAAA;AAuJpD,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,YAAY,EAC1B,gBAAgB,UAAQ,GACvB,OAAO,CAAC,aAAa,EAAE,CAAC,CA0C1B"}
@@ -8,6 +8,7 @@ exports.getResolvedPlugins = getResolvedPlugins;
8
8
  const promises_1 = __importDefault(require("fs/promises"));
9
9
  const path_1 = __importDefault(require("path"));
10
10
  const is_string_1 = require("./is-string");
11
+ const plugin_dependency_graph_1 = require("./plugin-dependency-graph");
11
12
  const read_dir_recursive_1 = require("./read-dir-recursive");
12
13
  const ACMEKIT_APP_SOURCE_PATH = "src";
13
14
  const ACMEKIT_PLUGIN_SOURCE_PATH = ".acmekit/server/src";
@@ -54,6 +55,20 @@ async function resolvePluginOptions(pluginRootDir) {
54
55
  throw error;
55
56
  }
56
57
  }
58
+ /**
59
+ * Attempts to load a plugin manifest from the plugin's built
60
+ * output directory. Returns undefined if no manifest exists.
61
+ */
62
+ async function loadPluginManifest(pluginRootDir) {
63
+ try {
64
+ const manifestPath = require.resolve(path_1.default.join(pluginRootDir, ACMEKIT_PLUGIN_SOURCE_PATH, "plugin"));
65
+ const mod = require(manifestPath);
66
+ return mod.default || mod;
67
+ }
68
+ catch {
69
+ return undefined;
70
+ }
71
+ }
57
72
  /**
58
73
  * Finds the correct path for the plugin. If it is a local plugin it will be
59
74
  * found in the plugins folder. Otherwise we will look for the plugin in the
@@ -72,6 +87,15 @@ async function resolvePlugin(rootDirectory, pluginPath, options) {
72
87
  ignoreMissing: true,
73
88
  });
74
89
  const pluginOptions = options ?? {};
90
+ // Load plugin manifest if it exists
91
+ const manifest = await loadPluginManifest(resolvedPath);
92
+ // Validate options against manifest schema if provided
93
+ if (manifest?.optionsSchema && Object.keys(pluginOptions).length > 0) {
94
+ const result = manifest.optionsSchema.safeParse(pluginOptions);
95
+ if (!result.success) {
96
+ throw new Error(`Invalid options for plugin "${name}": ${result.error.message}`);
97
+ }
98
+ }
75
99
  const hasAdmin = !!pkgJSON.contents.exports?.["./admin"] || !!pluginStaticOptions.srcDir;
76
100
  const pluginAdminSrcDir = path_1.default.join(resolvedPath, "src", "admin");
77
101
  const hasLocalAdminSrc = hasAdmin &&
@@ -99,6 +123,10 @@ async function resolvePlugin(rootDirectory, pluginPath, options) {
99
123
  options: pluginOptions,
100
124
  };
101
125
  }),
126
+ dependencies: manifest?.dependencies,
127
+ manifest: manifest,
128
+ onPluginStart: manifest?.onPluginStart,
129
+ onPluginShutdown: manifest?.onPluginShutdown,
102
130
  };
103
131
  }
104
132
  async function getResolvedPlugins(rootDirectory, configModule, isAcmeKitProject = false) {
@@ -108,6 +136,21 @@ async function getResolvedPlugins(rootDirectory, configModule, isAcmeKitProject
108
136
  }
109
137
  return resolvePlugin(rootDirectory, plugin.resolve, plugin.options);
110
138
  }));
139
+ // Sort plugins by dependency order if any plugin declares dependencies
140
+ const hasDeps = resolved.some((p) => p.dependencies?.length);
141
+ if (hasDeps) {
142
+ const nodes = resolved.map((p) => ({
143
+ name: p.name,
144
+ dependencies: p.dependencies ?? [],
145
+ }));
146
+ const { sorted } = (0, plugin_dependency_graph_1.resolvePluginDependencies)(nodes);
147
+ const byName = new Map(resolved.map((p) => [p.name, p]));
148
+ const sortedPlugins = sorted
149
+ .map((name) => byName.get(name))
150
+ .filter(Boolean);
151
+ resolved.length = 0;
152
+ resolved.push(...sortedPlugins);
153
+ }
111
154
  if (isAcmeKitProject) {
112
155
  const extensionDirectory = path_1.default.join(rootDirectory, ACMEKIT_APP_SOURCE_PATH);
113
156
  resolved.push({
@@ -1 +1 @@
1
- {"version":3,"file":"get-resolved-plugins.js","sourceRoot":"","sources":["../../src/common/get-resolved-plugins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-resolved-plugins.js","sourceRoot":"","sources":["../../src/common/get-resolved-plugins.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ export * from "./deep-equal-obj";
15
15
  export * from "./deep-flat-map";
16
16
  export * from "./deep-merge";
17
17
  export * from "./define-config";
18
+ export * from "./define-plugin";
19
+ export * from "./plugin-dependency-graph";
18
20
  export * from "./define-file-config";
19
21
  export * from "./dynamic-import";
20
22
  export * from "./env-editor";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,8 @@ __exportStar(require("./deep-equal-obj"), exports);
31
31
  __exportStar(require("./deep-flat-map"), exports);
32
32
  __exportStar(require("./deep-merge"), exports);
33
33
  __exportStar(require("./define-config"), exports);
34
+ __exportStar(require("./define-plugin"), exports);
35
+ __exportStar(require("./plugin-dependency-graph"), exports);
34
36
  __exportStar(require("./define-file-config"), exports);
35
37
  __exportStar(require("./dynamic-import"), exports);
36
38
  __exportStar(require("./env-editor"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAsC;AACtC,qDAAkC;AAClC,uDAAoC;AACpC,gDAA6B;AAC7B,0DAAuC;AACvC,wDAAqC;AACrC,kDAA+B;AAC/B,8CAA2B;AAC3B,4EAAyD;AACzD,0DAAuC;AACvC,6DAA0C;AAC1C,gDAA6B;AAC7B,8CAA2B;AAC3B,mDAAgC;AAChC,kDAA+B;AAC/B,+CAA4B;AAC5B,kDAA+B;AAC/B,uDAAoC;AACpC,mDAAgC;AAChC,+CAA4B;AAC5B,2CAAwB;AACxB,6DAA0C;AAC1C,gDAA6B;AAC7B,0DAAuC;AACvC,wDAAqC;AACrC,sEAAmD;AACnD,uDAAoC;AACpC,yDAAsC;AACtC,oDAAiC;AACjC,mDAAgC;AAChC,6DAA0C;AAC1C,qDAAkC;AAClC,yDAAsC;AACtC,gFAA6D;AAC7D,uDAAoC;AACpC,6DAA0C;AAC1C,6CAA0B;AAC1B,mEAAgD;AAChD,kDAA+B;AAC/B,+CAA4B;AAC5B,4CAAyB;AACzB,+CAA4B;AAC5B,6CAA0B;AAC1B,kDAA+B;AAC/B,8CAA2B;AAC3B,+CAA4B;AAC5B,8CAA2B;AAC3B,8CAA2B;AAC3B,6CAA0B;AAC1B,qDAAkC;AAClC,kDAA+B;AAC/B,sDAAmC;AACnC,mDAAgC;AAChC,yDAAsC;AACtC,wDAAqC;AACrC,sEAAmD;AACnD,qDAAkC;AAClC,4DAAyC;AACzC,0DAAuC;AACvC,8CAA2B;AAC3B,gEAA6C;AAC7C,uDAAoC;AACpC,iEAA8C;AAC9C,oDAAiC;AACjC,8CAA2B;AAC3B,2DAAwC;AACxC,8CAA2B;AAC3B,uDAAoC;AACpC,gDAA6B;AAC7B,uDAAoC;AACpC,oEAAiD;AACjD,kEAA+C;AAC/C,oDAAiC;AACjC,qDAAkC;AAClC,gEAA6C;AAC7C,oDAAiC;AACjC,oDAAiC;AACjC,0CAAuB;AACvB,mEAAgD;AAChD,oDAAiC;AACjC,gDAA6B;AAC7B,qEAAkD;AAClD,uDAAoC;AACpC,kDAA+B;AAC/B,8CAA2B;AAC3B,kDAA+B;AAC/B,mDAAgC;AAChC,kDAA+B;AAC/B,kDAA+B;AAC/B,+CAA4B;AAC5B,2DAAwC;AACxC,0DAAuC;AACvC,0DAAuC;AACvC,qDAAkC;AAClC,oDAAiC;AACjC,yDAAsC;AACtC,iDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAsC;AACtC,qDAAkC;AAClC,uDAAoC;AACpC,gDAA6B;AAC7B,0DAAuC;AACvC,wDAAqC;AACrC,kDAA+B;AAC/B,8CAA2B;AAC3B,4EAAyD;AACzD,0DAAuC;AACvC,6DAA0C;AAC1C,gDAA6B;AAC7B,8CAA2B;AAC3B,mDAAgC;AAChC,kDAA+B;AAC/B,+CAA4B;AAC5B,kDAA+B;AAC/B,kDAA+B;AAC/B,4DAAyC;AACzC,uDAAoC;AACpC,mDAAgC;AAChC,+CAA4B;AAC5B,2CAAwB;AACxB,6DAA0C;AAC1C,gDAA6B;AAC7B,0DAAuC;AACvC,wDAAqC;AACrC,sEAAmD;AACnD,uDAAoC;AACpC,yDAAsC;AACtC,oDAAiC;AACjC,mDAAgC;AAChC,6DAA0C;AAC1C,qDAAkC;AAClC,yDAAsC;AACtC,gFAA6D;AAC7D,uDAAoC;AACpC,6DAA0C;AAC1C,6CAA0B;AAC1B,mEAAgD;AAChD,kDAA+B;AAC/B,+CAA4B;AAC5B,4CAAyB;AACzB,+CAA4B;AAC5B,6CAA0B;AAC1B,kDAA+B;AAC/B,8CAA2B;AAC3B,+CAA4B;AAC5B,8CAA2B;AAC3B,8CAA2B;AAC3B,6CAA0B;AAC1B,qDAAkC;AAClC,kDAA+B;AAC/B,sDAAmC;AACnC,mDAAgC;AAChC,yDAAsC;AACtC,wDAAqC;AACrC,sEAAmD;AACnD,qDAAkC;AAClC,4DAAyC;AACzC,0DAAuC;AACvC,8CAA2B;AAC3B,gEAA6C;AAC7C,uDAAoC;AACpC,iEAA8C;AAC9C,oDAAiC;AACjC,8CAA2B;AAC3B,2DAAwC;AACxC,8CAA2B;AAC3B,uDAAoC;AACpC,gDAA6B;AAC7B,uDAAoC;AACpC,oEAAiD;AACjD,kEAA+C;AAC/C,oDAAiC;AACjC,qDAAkC;AAClC,gEAA6C;AAC7C,oDAAiC;AACjC,oDAAiC;AACjC,0CAAuB;AACvB,mEAAgD;AAChD,oDAAiC;AACjC,gDAA6B;AAC7B,qEAAkD;AAClD,uDAAoC;AACpC,kDAA+B;AAC/B,8CAA2B;AAC3B,kDAA+B;AAC/B,mDAAgC;AAChC,kDAA+B;AAC/B,kDAA+B;AAC/B,+CAA4B;AAC5B,2DAAwC;AACxC,0DAAuC;AACvC,0DAAuC;AACvC,qDAAkC;AAClC,oDAAiC;AACjC,yDAAsC;AACtC,iDAA8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"merge-plugin-modules.d.ts","sourceRoot":"","sources":["../../src/common/merge-plugin-modules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EAEb,MAAM,gBAAgB,CAAA;AAGvB;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,aAAa,EAAE,QAqBzB"}
1
+ {"version":3,"file":"merge-plugin-modules.d.ts","sourceRoot":"","sources":["../../src/common/merge-plugin-modules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EAEb,MAAM,gBAAgB,CAAA;AAGvB;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,aAAa,EAAE,QAuCzB"}
@@ -7,12 +7,27 @@ const define_config_1 = require("./define-config");
7
7
  * the modules defined inside the user-config file
8
8
  */
9
9
  function mergePluginModules(configModule, plugins) {
10
+ /**
11
+ * Track which plugin provides which module to detect conflicts
12
+ */
13
+ const moduleOwnership = new Map();
10
14
  /**
11
15
  * Create a flat array of all the modules exposed by the registered
12
16
  * plugins
13
17
  */
14
18
  const pluginsModules = plugins.reduce((result, plugin) => {
15
19
  if (plugin.modules) {
20
+ for (const mod of plugin.modules) {
21
+ const key = mod.resolve ?? "";
22
+ if (key && moduleOwnership.has(key)) {
23
+ console.warn(`[acmekit] Module "${key}" is provided by both ` +
24
+ `"${moduleOwnership.get(key)}" and "${plugin.name}". ` +
25
+ `The last one takes precedence.`);
26
+ }
27
+ if (key) {
28
+ moduleOwnership.set(key, plugin.name);
29
+ }
30
+ }
16
31
  result = result.concat(plugin.modules);
17
32
  }
18
33
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"merge-plugin-modules.js","sourceRoot":"","sources":["../../src/common/merge-plugin-modules.ts"],"names":[],"mappings":";;AAWA,gDAuBC;AA7BD,mDAAkD;AAElD;;;GAGG;AACH,SAAgB,kBAAkB,CAChC,YAA0B,EAC1B,OAAwB;IAExB;;;OAGG;IACH,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACvD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,EAAwB,CAAC,CAAA;IAE5B;;;OAGG;IACH,YAAY,CAAC,OAAO,GAAG;QACrB,GAAG,IAAA,gCAAgB,EAAC,cAAc,CAAC;QACnC,GAAG,YAAY,CAAC,OAAO;KACxB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"merge-plugin-modules.js","sourceRoot":"","sources":["../../src/common/merge-plugin-modules.ts"],"names":[],"mappings":";;AAWA,gDAyCC;AA/CD,mDAAkD;AAElD;;;GAGG;AACH,SAAgB,kBAAkB,CAChC,YAA0B,EAC1B,OAAwB;IAExB;;OAEG;IACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEjD;;;OAGG;IACH,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACvD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAgB,EAAE,CAAC;gBAC1C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAA;gBAC7B,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CACV,qBAAqB,GAAG,wBAAwB;wBAC9C,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,IAAI,KAAK;wBACtD,gCAAgC,CACnC,CAAA;gBACH,CAAC;gBACD,IAAI,GAAG,EAAE,CAAC;oBACR,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;gBACvC,CAAC;YACH,CAAC;YACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,EAAwB,CAAC,CAAA;IAE5B;;;OAGG;IACH,YAAY,CAAC,OAAO,GAAG;QACrB,GAAG,IAAA,gCAAgB,EAAC,cAAc,CAAC;QACnC,GAAG,YAAY,CAAC,OAAO;KACxB,CAAA;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface PluginNode {
2
+ name: string;
3
+ dependencies: string[];
4
+ }
5
+ export interface DependencyResolutionResult {
6
+ /** Plugins sorted in dependency order (dependencies first) */
7
+ sorted: string[];
8
+ }
9
+ /**
10
+ * Resolves plugin load order using topological sort (Kahn's algorithm).
11
+ * Returns plugins in dependency-first order so that when a plugin loads,
12
+ * all its dependencies have already been loaded.
13
+ *
14
+ * @throws {AcmeKitError} If a plugin depends on a plugin that isn't installed
15
+ * @throws {AcmeKitError} If a circular dependency is detected
16
+ */
17
+ export declare function resolvePluginDependencies(plugins: PluginNode[]): DependencyResolutionResult;
18
+ //# sourceMappingURL=plugin-dependency-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-dependency-graph.d.ts","sourceRoot":"","sources":["../../src/common/plugin-dependency-graph.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,8DAA8D;IAC9D,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,UAAU,EAAE,GACpB,0BAA0B,CA8D5B"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolvePluginDependencies = resolvePluginDependencies;
4
+ const errors_1 = require("./errors");
5
+ /**
6
+ * Resolves plugin load order using topological sort (Kahn's algorithm).
7
+ * Returns plugins in dependency-first order so that when a plugin loads,
8
+ * all its dependencies have already been loaded.
9
+ *
10
+ * @throws {AcmeKitError} If a plugin depends on a plugin that isn't installed
11
+ * @throws {AcmeKitError} If a circular dependency is detected
12
+ */
13
+ function resolvePluginDependencies(plugins) {
14
+ const nameSet = new Set(plugins.map((p) => p.name));
15
+ const adjacency = new Map();
16
+ const inDegree = new Map();
17
+ // Initialize
18
+ for (const plugin of plugins) {
19
+ adjacency.set(plugin.name, new Set());
20
+ inDegree.set(plugin.name, 0);
21
+ }
22
+ // Build edges: dependency -> dependent
23
+ for (const plugin of plugins) {
24
+ const deps = plugin.dependencies ?? [];
25
+ for (const dep of deps) {
26
+ if (!nameSet.has(dep)) {
27
+ throw new errors_1.AcmeKitError(errors_1.AcmeKitError.Types.INVALID_DATA, `Plugin "${plugin.name}" depends on "${dep}" which is not installed. ` +
28
+ `Add it to your plugins array in acmekit-config.ts.`);
29
+ }
30
+ adjacency.get(dep).add(plugin.name);
31
+ inDegree.set(plugin.name, (inDegree.get(plugin.name) ?? 0) + 1);
32
+ }
33
+ }
34
+ // Kahn's algorithm — find all nodes with no incoming edges
35
+ const queue = [];
36
+ for (const [name, degree] of inDegree) {
37
+ if (degree === 0) {
38
+ queue.push(name);
39
+ }
40
+ }
41
+ const sorted = [];
42
+ while (queue.length > 0) {
43
+ const current = queue.shift();
44
+ sorted.push(current);
45
+ for (const dependent of adjacency.get(current) ?? []) {
46
+ const newDegree = inDegree.get(dependent) - 1;
47
+ inDegree.set(dependent, newDegree);
48
+ if (newDegree === 0) {
49
+ queue.push(dependent);
50
+ }
51
+ }
52
+ }
53
+ if (sorted.length !== plugins.length) {
54
+ const remaining = plugins
55
+ .filter((p) => !sorted.includes(p.name))
56
+ .map((p) => p.name);
57
+ throw new errors_1.AcmeKitError(errors_1.AcmeKitError.Types.INVALID_DATA, `Circular plugin dependency detected involving: ${remaining.join(", ")}. ` +
58
+ `Review your plugin dependencies and remove the cycle.`);
59
+ }
60
+ return { sorted };
61
+ }
62
+ //# sourceMappingURL=plugin-dependency-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-dependency-graph.js","sourceRoot":"","sources":["../../src/common/plugin-dependency-graph.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -20,6 +20,7 @@ export * from "./notification";
20
20
  export * from "./orchestration";
21
21
  export * from "./pg";
22
22
  export * from "./policies";
23
+ export * from "./routes";
23
24
  export * from "./search";
24
25
  export * from "./math";
25
26
  export * from "./translations";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,OAAO,CAAA;AACrB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,MAAM,CAAA;AACpB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AAEtB,eAAO,MAAM,iBAAiB,eAA8B,CAAA;AAC5D,eAAO,MAAM,yBAAyB,eAAsC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,OAAO,CAAA;AACrB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,MAAM,CAAA;AACpB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AAEtB,eAAO,MAAM,iBAAiB,eAA8B,CAAA;AAC5D,eAAO,MAAM,yBAAyB,eAAsC,CAAA"}
package/dist/index.js CHANGED
@@ -37,6 +37,7 @@ __exportStar(require("./notification"), exports);
37
37
  __exportStar(require("./orchestration"), exports);
38
38
  __exportStar(require("./pg"), exports);
39
39
  __exportStar(require("./policies"), exports);
40
+ __exportStar(require("./routes"), exports);
40
41
  __exportStar(require("./search"), exports);
41
42
  __exportStar(require("./math"), exports);
42
43
  __exportStar(require("./translations"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,4CAAyB;AACzB,yCAAsB;AACtB,4CAAyB;AACzB,4CAAyB;AACzB,2CAAwB;AACxB,+CAA4B;AAC5B,wCAAqB;AACrB,6CAA0B;AAC1B,+CAA4B;AAC5B,wCAAqB;AACrB,8CAA2B;AAC3B,+CAA4B;AAC5B,kDAA+B;AAC/B,yCAAsB;AACtB,4CAAyB;AACzB,yCAAsB;AACtB,gDAA6B;AAC7B,iDAA8B;AAC9B,kDAA+B;AAC/B,uCAAoB;AACpB,6CAA0B;AAC1B,2CAAwB;AACxB,yCAAsB;AACtB,iDAA8B;AAC9B,yCAAsB;AAET,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAC/C,QAAA,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,4CAAyB;AACzB,yCAAsB;AACtB,4CAAyB;AACzB,4CAAyB;AACzB,2CAAwB;AACxB,+CAA4B;AAC5B,wCAAqB;AACrB,6CAA0B;AAC1B,+CAA4B;AAC5B,wCAAqB;AACrB,8CAA2B;AAC3B,+CAA4B;AAC5B,kDAA+B;AAC/B,yCAAsB;AACtB,4CAAyB;AACzB,yCAAsB;AACtB,gDAA6B;AAC7B,iDAA8B;AAC9B,kDAA+B;AAC/B,uCAAoB;AACpB,6CAA0B;AAC1B,2CAAwB;AACxB,2CAAwB;AACxB,yCAAsB;AACtB,iDAA8B;AAC9B,yCAAsB;AAET,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAC/C,QAAA,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./routes-to-types";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./routes-to-types"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAiC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Scan route files in the given source directories, extract handler type
3
+ * annotations, and generate a `route-types.d.ts` declaration file that
4
+ * augments `@acmekit/js-sdk`'s `RouteRegistry`, `AdminPaths`, and
5
+ * `StorePaths` interfaces.
6
+ *
7
+ * Type extraction strategy:
8
+ * - Routes using `defineRouteConfig` → TypeScript compiler API extracts
9
+ * concrete output types from Zod schemas and emits them inline.
10
+ * - Routes using explicit `AcmeKitResponse<HttpTypes.X>` annotations →
11
+ * regex extracts the `HttpTypes.*` identifier.
12
+ *
13
+ * @param sourcePaths - Directories containing API route files
14
+ * @param options - Output configuration
15
+ */
16
+ export declare function generateRouteTypes(sourcePaths: string[], { outputDir }: {
17
+ outputDir: string;
18
+ }): Promise<void>;
19
+ //# sourceMappingURL=routes-to-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes-to-types.d.ts","sourceRoot":"","sources":["../../src/routes/routes-to-types.ts"],"names":[],"mappings":"AA2WA;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EAAE,EACrB,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACnC,OAAO,CAAC,IAAI,CAAC,CAqLf"}
@@ -0,0 +1,442 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateRouteTypes = generateRouteTypes;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const file_system_1 = require("../common/file-system");
7
+ const read_dir_recursive_1 = require("../common/read-dir-recursive");
8
+ const HTTP_METHODS = ["GET", "POST", "PUT", "PATCH", "DELETE"];
9
+ // ---------------------------------------------------------------------------
10
+ // TypeScript Compiler API — lazy, optional
11
+ // ---------------------------------------------------------------------------
12
+ /**
13
+ * Lazily-resolved TypeScript compiler module.
14
+ * Using require() instead of a top-level import so that the module loads even
15
+ * when TypeScript is not installed (unlikely in a TS project, but safe).
16
+ */
17
+ function loadTs() {
18
+ try {
19
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
20
+ return require("typescript");
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ }
26
+ /**
27
+ * Create a TypeScript `Program` rooted at the nearest tsconfig.json found
28
+ * by walking up from `startDir`. Returns null if TypeScript is unavailable
29
+ * or no tsconfig is found.
30
+ */
31
+ function createTsProgram(startDir) {
32
+ const tsModule = loadTs();
33
+ if (!tsModule)
34
+ return null;
35
+ try {
36
+ const tsconfigPath = tsModule.findConfigFile(startDir, tsModule.sys.fileExists, "tsconfig.json");
37
+ if (!tsconfigPath)
38
+ return null;
39
+ const configFile = tsModule.readConfigFile(tsconfigPath, tsModule.sys.readFile);
40
+ if (configFile.error)
41
+ return null;
42
+ const parsed = tsModule.parseJsonConfigFileContent(configFile.config, tsModule.sys, (0, path_1.dirname)(tsconfigPath));
43
+ const program = tsModule.createProgram(parsed.fileNames, {
44
+ ...parsed.options,
45
+ noEmit: true,
46
+ });
47
+ const checker = program.getTypeChecker();
48
+ return { program, checker, ts: tsModule };
49
+ }
50
+ catch {
51
+ return null;
52
+ }
53
+ }
54
+ /**
55
+ * Traverse a chain of property accesses on a TypeScript `Type` object.
56
+ * Returns `null` if any property in the chain is missing.
57
+ */
58
+ function getNestedType(checker, type, keys) {
59
+ let current = type;
60
+ for (const key of keys) {
61
+ const prop = current.getProperty(key);
62
+ if (!prop)
63
+ return null;
64
+ current = checker.getTypeOfSymbol(prop);
65
+ }
66
+ return current;
67
+ }
68
+ /**
69
+ * Use the TypeScript compiler API to extract concrete output types for the
70
+ * `body`, `query`, and `response` fields of `config[method]` in a route file.
71
+ *
72
+ * Returns a map of field → TypeScript type string (e.g. `{ ok: true }`), or
73
+ * `null` when extraction is not possible.
74
+ */
75
+ function extractConfigTypes(ctx, filePath, method) {
76
+ const { program, checker, ts: tsModule } = ctx;
77
+ const sourceFile = program.getSourceFile(filePath);
78
+ if (!sourceFile)
79
+ return null;
80
+ for (const node of sourceFile.statements) {
81
+ if (!tsModule.isVariableStatement(node))
82
+ continue;
83
+ const isExported = node.modifiers?.some((m) => m.kind === tsModule.SyntaxKind.ExportKeyword);
84
+ if (!isExported)
85
+ continue;
86
+ for (const decl of node.declarationList.declarations) {
87
+ if (!tsModule.isIdentifier(decl.name) ||
88
+ decl.name.text !== "config")
89
+ continue;
90
+ const configType = checker.getTypeAtLocation(decl);
91
+ const result = {};
92
+ for (const field of ["body", "query", "response"]) {
93
+ const outputType = getNestedType(checker, configType, [
94
+ method,
95
+ field,
96
+ "_output",
97
+ ]);
98
+ if (outputType) {
99
+ result[field] = checker.typeToString(outputType, undefined,
100
+ // Prevent TypeScript from truncating long types to "..."
101
+ tsModule.TypeFormatFlags.NoTruncation);
102
+ }
103
+ }
104
+ // Only return if we extracted at least one field
105
+ if (Object.keys(result).length > 0)
106
+ return result;
107
+ }
108
+ }
109
+ return null;
110
+ }
111
+ // ---------------------------------------------------------------------------
112
+ // File path utilities
113
+ // ---------------------------------------------------------------------------
114
+ /**
115
+ * Convert a filesystem route path to an Express-style route path.
116
+ *
117
+ * - `admin/users/route.ts` → `/admin/users`
118
+ * - `admin/users/[id]/route.ts` → `/admin/users/:id`
119
+ * - `admin/api-keys/[id]/revoke/route.ts` → `/admin/api-keys/:id/revoke`
120
+ */
121
+ function filePathToRoutePath(filePath) {
122
+ let routePath = filePath
123
+ .replace(/[/\\]route\.(d\.)?ts$/, "")
124
+ .replace(/\\/g, "/");
125
+ routePath = routePath.replace(/\[([^\]]+)\]/g, ":$1");
126
+ if (!routePath.startsWith("/")) {
127
+ routePath = "/" + routePath;
128
+ }
129
+ routePath = routePath.replace(/\/$/, "");
130
+ return routePath || "/";
131
+ }
132
+ // ---------------------------------------------------------------------------
133
+ // Handler extraction (regex-based)
134
+ // ---------------------------------------------------------------------------
135
+ /**
136
+ * Extract handler type annotations from a route file's source text.
137
+ *
138
+ * Two extraction strategies:
139
+ * 1. **Config-driven** — handler uses `AcmeKitTypedResponse<typeof config, …>`.
140
+ * `usesConfigTypes = true`; concrete types come from the TS compiler API later.
141
+ * 2. **Annotation-driven** — handler uses explicit `AcmeKitResponse<HttpTypes.X>`.
142
+ * Types are extracted via regex now.
143
+ */
144
+ function extractHandlers(source, absoluteFilePath) {
145
+ const handlers = [];
146
+ // Collapse multi-line generic brackets into a single line for easier matching
147
+ const normalized = source.replace(/<([^>]*)>/g, (_, inner) => "<" + inner.replace(/\s+/g, " ").trim() + ">");
148
+ const handlerPattern = /export\s+(?:declare\s+)?(?:async\s+)?(?:const|function)\s+(GET|POST|PUT|PATCH|DELETE)\b/g;
149
+ let match;
150
+ while ((match = handlerPattern.exec(normalized)) !== null) {
151
+ const method = match[1];
152
+ const window = normalized.slice(match.index, match.index + 1000);
153
+ // Detect config-driven pattern
154
+ const usesConfigTypes = /AcmeKitTypedR(?:esponse|equest)<\s*typeof\s+config/.test(window) ||
155
+ /AuthenticatedAcmeKitTypedR(?:esponse|equest)<\s*typeof\s+config/.test(window);
156
+ if (usesConfigTypes) {
157
+ handlers.push({
158
+ method,
159
+ responseType: null,
160
+ inputType1: null,
161
+ inputType2: null,
162
+ usesConfigTypes: true,
163
+ absoluteFilePath,
164
+ });
165
+ }
166
+ else {
167
+ const responseType = extractResponseType(window);
168
+ const { type1, type2 } = extractRequestTypes(window);
169
+ handlers.push({
170
+ method,
171
+ responseType,
172
+ inputType1: type1,
173
+ inputType2: type2,
174
+ usesConfigTypes: false,
175
+ absoluteFilePath,
176
+ });
177
+ }
178
+ }
179
+ return handlers;
180
+ }
181
+ function extractResponseType(text) {
182
+ const pattern = /AcmeKitResponse<(HttpTypes\.\w+)>/;
183
+ const match = text.match(pattern);
184
+ return match ? match[1] : null;
185
+ }
186
+ function extractRequestTypes(text) {
187
+ const pattern = /(?:Authenticated)?AcmeKit(?:Request|ClientKeyRequest)<([\w.]+)(?:, ([\w.]+))?>/;
188
+ const match = text.match(pattern);
189
+ if (!match)
190
+ return { type1: null, type2: null };
191
+ const raw1 = match[1];
192
+ const raw2 = match[2] ?? null;
193
+ return {
194
+ type1: raw1?.startsWith("HttpTypes.") ? raw1 : null,
195
+ type2: raw2?.startsWith("HttpTypes.") ? raw2 : null,
196
+ };
197
+ }
198
+ // ---------------------------------------------------------------------------
199
+ // Method entry builder
200
+ // ---------------------------------------------------------------------------
201
+ /**
202
+ * Build the method entry string for a single handler.
203
+ *
204
+ * When `handler.usesConfigTypes` is true, `resolvedTypes` must be provided
205
+ * with the concrete TypeScript type strings extracted by the compiler API.
206
+ * These are emitted inline — no import references — so they resolve correctly
207
+ * in any TypeScript compilation context (frontend, backend, etc.).
208
+ *
209
+ * Falls back to `unknown` / `Record<string, any>` when resolution fails.
210
+ */
211
+ function buildMethodEntry(handler, resolvedTypes) {
212
+ const { method } = handler;
213
+ const fields = [];
214
+ if (handler.usesConfigTypes && resolvedTypes) {
215
+ if (method === "GET" || method === "DELETE") {
216
+ if (resolvedTypes.query) {
217
+ fields.push(`query: ${resolvedTypes.query}`);
218
+ }
219
+ }
220
+ else {
221
+ fields.push(`body: ${resolvedTypes.body ?? "Record<string, any>"}`);
222
+ if (resolvedTypes.query) {
223
+ fields.push(`query: ${resolvedTypes.query}`);
224
+ }
225
+ }
226
+ fields.push(`response: ${resolvedTypes.response ?? "unknown"}`);
227
+ }
228
+ else {
229
+ // Annotation-driven (or config-driven fallback when compiler API unavailable)
230
+ const { responseType, inputType1, inputType2 } = handler;
231
+ if (method === "GET" || method === "DELETE") {
232
+ if (inputType1)
233
+ fields.push(`query: ${inputType1}`);
234
+ }
235
+ else {
236
+ fields.push(`body: ${inputType1 ?? "Record<string, any>"}`);
237
+ if (inputType2)
238
+ fields.push(`query: ${inputType2}`);
239
+ }
240
+ fields.push(`response: ${responseType ?? "unknown"}`);
241
+ }
242
+ return `${method}: { ${fields.join("; ")} }`;
243
+ }
244
+ // ---------------------------------------------------------------------------
245
+ // Route file discovery
246
+ // ---------------------------------------------------------------------------
247
+ async function findRouteFiles(sourceDir) {
248
+ let entries;
249
+ try {
250
+ entries = await (0, read_dir_recursive_1.readDirRecursive)(sourceDir, { ignoreMissing: true });
251
+ }
252
+ catch {
253
+ return [];
254
+ }
255
+ const routeFiles = new Map();
256
+ for (const entry of entries) {
257
+ if (!entry.isFile())
258
+ continue;
259
+ const name = entry.name;
260
+ if (name !== "route.ts" && name !== "route.d.ts")
261
+ continue;
262
+ const dir = entry.path;
263
+ const fullPath = (0, path_1.join)(dir, name);
264
+ const relDir = (0, path_1.relative)(sourceDir, dir);
265
+ if (name === "route.ts") {
266
+ routeFiles.set(relDir, fullPath);
267
+ }
268
+ else if (!routeFiles.has(relDir)) {
269
+ routeFiles.set(relDir, fullPath);
270
+ }
271
+ }
272
+ return Array.from(routeFiles.values());
273
+ }
274
+ // ---------------------------------------------------------------------------
275
+ // Public API
276
+ // ---------------------------------------------------------------------------
277
+ /**
278
+ * Scan route files in the given source directories, extract handler type
279
+ * annotations, and generate a `route-types.d.ts` declaration file that
280
+ * augments `@acmekit/js-sdk`'s `RouteRegistry`, `AdminPaths`, and
281
+ * `StorePaths` interfaces.
282
+ *
283
+ * Type extraction strategy:
284
+ * - Routes using `defineRouteConfig` → TypeScript compiler API extracts
285
+ * concrete output types from Zod schemas and emits them inline.
286
+ * - Routes using explicit `AcmeKitResponse<HttpTypes.X>` annotations →
287
+ * regex extracts the `HttpTypes.*` identifier.
288
+ *
289
+ * @param sourcePaths - Directories containing API route files
290
+ * @param options - Output configuration
291
+ */
292
+ async function generateRouteTypes(sourcePaths, { outputDir }) {
293
+ const allRoutes = [];
294
+ for (const sourceDir of sourcePaths) {
295
+ const routeFiles = await findRouteFiles(sourceDir);
296
+ for (const filePath of routeFiles) {
297
+ const relPath = (0, path_1.relative)(sourceDir, filePath);
298
+ const routePath = filePathToRoutePath(relPath);
299
+ let source;
300
+ try {
301
+ source = await fs_1.promises.readFile(filePath, "utf-8");
302
+ }
303
+ catch {
304
+ continue;
305
+ }
306
+ const handlers = extractHandlers(source, filePath);
307
+ if (handlers.length === 0)
308
+ continue;
309
+ allRoutes.push({ path: routePath, handlers });
310
+ }
311
+ }
312
+ allRoutes.sort((a, b) => a.path.localeCompare(b.path));
313
+ // Deduplicate: later source dirs override earlier ones per-method.
314
+ // Each handler carries its own absoluteFilePath for per-method accuracy.
315
+ const routeMap = new Map();
316
+ for (const route of allRoutes) {
317
+ const existing = routeMap.get(route.path);
318
+ if (existing) {
319
+ const methodMap = new Map(existing.handlers.map((h) => [h.method, h]));
320
+ for (const handler of route.handlers) {
321
+ methodMap.set(handler.method, handler);
322
+ }
323
+ routeMap.set(route.path, {
324
+ path: route.path,
325
+ handlers: Array.from(methodMap.values()),
326
+ });
327
+ }
328
+ else {
329
+ routeMap.set(route.path, route);
330
+ }
331
+ }
332
+ const routes = Array.from(routeMap.values()).sort((a, b) => a.path.localeCompare(b.path));
333
+ if (routes.length === 0)
334
+ return;
335
+ // Create one TypeScript program for the whole project.
336
+ // Detect which source directories contain config-driven routes and search
337
+ // for the nearest tsconfig.json from there.
338
+ const hasConfigDrivenRoutes = routes.some((r) => r.handlers.some((h) => h.usesConfigTypes));
339
+ let tsCtx = null;
340
+ if (hasConfigDrivenRoutes && sourcePaths.length > 0) {
341
+ // Walk up from the first source dir to find the project tsconfig
342
+ tsCtx = createTsProgram(sourcePaths[0]);
343
+ }
344
+ // Pre-resolve config-driven types using the TypeScript compiler API.
345
+ // Key: `${absoluteFilePath}::${method}` → resolved field types
346
+ const resolvedConfigTypes = new Map();
347
+ if (tsCtx) {
348
+ for (const route of routes) {
349
+ for (const handler of route.handlers) {
350
+ if (!handler.usesConfigTypes)
351
+ continue;
352
+ const cacheKey = `${handler.absoluteFilePath}::${handler.method}`;
353
+ if (resolvedConfigTypes.has(cacheKey))
354
+ continue;
355
+ const extracted = extractConfigTypes(tsCtx, handler.absoluteFilePath, handler.method);
356
+ resolvedConfigTypes.set(cacheKey, extracted);
357
+ }
358
+ }
359
+ }
360
+ // Helper to retrieve pre-resolved types for a handler
361
+ const getResolved = (h) => resolvedConfigTypes.get(`${h.absoluteFilePath}::${h.method}`) ?? null;
362
+ // Build RouteRegistry entries
363
+ const routeEntries = routes.map((route) => {
364
+ const methods = route.handlers
365
+ .map((h) => ` ${buildMethodEntry(h, getResolved(h))}`)
366
+ .join("\n");
367
+ return ` "${route.path}": {\n${methods}\n }`;
368
+ });
369
+ // Build RoutePaths entries (path unions per prefix + method)
370
+ const prefixMap = new Map();
371
+ for (const route of routes) {
372
+ const parts = route.path.split("/").filter(Boolean);
373
+ if (parts.length === 0)
374
+ continue;
375
+ const prefix = "/" + parts[0];
376
+ const suffix = route.path.slice(prefix.length) || "/";
377
+ if (!prefixMap.has(prefix))
378
+ prefixMap.set(prefix, new Map());
379
+ const methodPaths = prefixMap.get(prefix);
380
+ for (const handler of route.handlers) {
381
+ const method = handler.method;
382
+ if (!methodPaths.has(method))
383
+ methodPaths.set(method, []);
384
+ methodPaths.get(method).push(suffix);
385
+ }
386
+ }
387
+ const routePathEntries = [];
388
+ for (const [prefix, methodPaths] of Array.from(prefixMap.entries()).sort((a, b) => a[0].localeCompare(b[0]))) {
389
+ const methods = [];
390
+ for (const [method, paths] of Array.from(methodPaths.entries()).sort((a, b) => a[0].localeCompare(b[0]))) {
391
+ const union = paths
392
+ .sort()
393
+ .map((p) => `"${p}"`)
394
+ .join(" | ");
395
+ methods.push(` ${method}: ${union}`);
396
+ }
397
+ routePathEntries.push(` "${prefix}": {\n${methods.join("\n")}\n }`);
398
+ }
399
+ // Build AdminPaths entries (without "/admin" prefix)
400
+ const adminPathEntries = [];
401
+ for (const route of routes) {
402
+ if (!route.path.startsWith("/admin/") && route.path !== "/admin")
403
+ continue;
404
+ const suffix = route.path.slice("/admin".length) || "/";
405
+ const methods = route.handlers
406
+ .map((h) => ` ${buildMethodEntry(h, getResolved(h))}`)
407
+ .join("\n");
408
+ adminPathEntries.push(` "${suffix}": {\n${methods}\n }`);
409
+ }
410
+ const adminPathsBlock = adminPathEntries.length > 0
411
+ ? `\n\n interface AdminPaths {\n${adminPathEntries.join("\n")}\n }`
412
+ : "";
413
+ // Build StorePaths entries (without "/client" prefix)
414
+ const storePathEntries = [];
415
+ for (const route of routes) {
416
+ if (!route.path.startsWith("/client/") && route.path !== "/client")
417
+ continue;
418
+ const suffix = route.path.slice("/client".length) || "/";
419
+ const methods = route.handlers
420
+ .map((h) => ` ${buildMethodEntry(h, getResolved(h))}`)
421
+ .join("\n");
422
+ storePathEntries.push(` "${suffix}": {\n${methods}\n }`);
423
+ }
424
+ const storePathsBlock = storePathEntries.length > 0
425
+ ? `\n\n interface StorePaths {\n${storePathEntries.join("\n")}\n }`
426
+ : "";
427
+ const fileContents = `import type { HttpTypes } from "@acmekit/framework/types"
428
+ import type {} from "@acmekit/js-sdk"
429
+
430
+ declare module "@acmekit/js-sdk" {
431
+ interface RouteRegistry {
432
+ ${routeEntries.join("\n")}
433
+ }
434
+
435
+ interface RoutePaths {
436
+ ${routePathEntries.join("\n")}
437
+ }${adminPathsBlock}${storePathsBlock}
438
+ }`;
439
+ const fileSystem = new file_system_1.FileSystem(outputDir);
440
+ await fileSystem.create("route-types.d.ts", fileContents);
441
+ }
442
+ //# sourceMappingURL=routes-to-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes-to-types.js","sourceRoot":"","sources":["../../src/routes/routes-to-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"root":["../src/bundles.ts","../src/index.ts","../src/analytics/abstract-analytics-provider.ts","../src/analytics/index.ts","../src/api-key/api-key-type.ts","../src/api-key/index.ts","../src/auth/abstract-auth-provider.ts","../src/auth/index.ts","../src/auth/token.ts","../src/caching/index.ts","../src/common/acmekit-container.ts","../src/common/alter-columns-helper.ts","../src/common/array-difference.ts","../src/common/array-intersection.ts","../src/common/build-query.ts","../src/common/build-regexp-if-valid.ts","../src/common/camel-to-snake-case.ts","../src/common/compress-name.ts","../src/common/container.ts","../src/common/convert-item-response-to-update-request.ts","../src/common/create-container-like.ts","../src/common/create-psql-index-helper.ts","../src/common/deduplicate.ts","../src/common/deep-copy.ts","../src/common/deep-equal-obj.ts","../src/common/deep-flat-map.ts","../src/common/deep-merge.ts","../src/common/define-config.ts","../src/common/define-file-config.ts","../src/common/dynamic-import.ts","../src/common/env-editor.ts","../src/common/errors.ts","../src/common/execute-with-concurrency.ts","../src/common/file-system.ts","../src/common/filter-object-by-keys.ts","../src/common/filter-operator-map.ts","../src/common/flatten-object-to-key-value-pairs.ts","../src/common/generate-entity-id.ts","../src/common/get-caller-file-path.ts","../src/common/get-config-file.ts","../src/common/get-duplicates.ts","../src/common/get-iso-string-from-date.ts","../src/common/get-node-version.ts","../src/common/get-resolved-plugins.ts","../src/common/get-selects-and-relations-from-object-array.ts","../src/common/get-set-difference.ts","../src/common/graceful-shutdown-server.ts","../src/common/group-by.ts","../src/common/handle-postgres-database-error.ts","../src/common/index.ts","../src/common/is-big-number.ts","../src/common/is-boolean.ts","../src/common/is-date.ts","../src/common/is-defined.ts","../src/common/is-email.ts","../src/common/is-error-like.ts","../src/common/is-object.ts","../src/common/is-present.ts","../src/common/is-string.ts","../src/common/is-truthy.ts","../src/common/load-env.ts","../src/common/lower-case-first.ts","../src/common/map-object-to.ts","../src/common/merge-metadata.ts","../src/common/merge-plugin-modules.ts","../src/common/normalize-csv-value.ts","../src/common/normalize-import-path-with-source.ts","../src/common/normalize-locale.ts","../src/common/object-from-string-path.ts","../src/common/object-to-string-path.ts","../src/common/omit-deep.ts","../src/common/optional-numeric-serializer.ts","../src/common/parse-cors-origins.ts","../src/common/parse-stringify-if-necessary.ts","../src/common/partition-array.ts","../src/common/pick-deep.ts","../src/common/pick-value-from-object.ts","../src/common/plurailze.ts","../src/common/prefix-array-items.ts","../src/common/promise-all.ts","../src/common/read-dir-recursive.ts","../src/common/remote-query-object-from-string.ts","../src/common/remote-query-object-to-string.ts","../src/common/remove-nullisih.ts","../src/common/remove-undefined-properties.ts","../src/common/remove-undefined.ts","../src/common/resolve-exports.ts","../src/common/retry-execution.ts","../src/common/rules.ts","../src/common/selector-constraints-to-string.ts","../src/common/serialize-error.ts","../src/common/simple-hash.ts","../src/common/string-to-select-relation-object.ts","../src/common/stringify-circular.ts","../src/common/to-camel-case.ts","../src/common/to-handle.ts","../src/common/to-kebab-case.ts","../src/common/to-pascal-case.ts","../src/common/to-snake-case.ts","../src/common/to-unix-slash.ts","../src/common/trim-zeros.ts","../src/common/try-convert-to-boolean.ts","../src/common/try-convert-to-number.ts","../src/common/unflatten-object-keys.ts","../src/common/upper-case-first.ts","../src/common/validate-handle.ts","../src/common/validate-module-name.ts","../src/common/wrap-handler.ts","../src/common/__fixtures__/define-config/github/index.ts","../src/common/__tests__/array-intersection.spec.ts","../src/common/__tests__/build-query.spec.ts","../src/common/__tests__/build-regexp-if-valid.spec.ts","../src/common/__tests__/compress-name.spec.ts","../src/common/__tests__/convert-item-response-to-update-request.ts","../src/common/__tests__/create-psql-index-helper.spec.ts","../src/common/__tests__/deep-copy.spec.ts","../src/common/__tests__/deep-equal-obj.spec.ts","../src/common/__tests__/deep-flat-map.ts","../src/common/__tests__/deep-merge.ts","../src/common/__tests__/define-config.spec.ts","../src/common/__tests__/env-editor.spec.ts","../src/common/__tests__/filter-object-by-keys.spec.ts","../src/common/__tests__/flatten-object-to-key-value-pairs.spec.ts","../src/common/__tests__/get-duplicates.spec.ts","../src/common/__tests__/get-resolved-plugins.spec.ts","../src/common/__tests__/get-selects-and-relations-from-object-array.spec.ts","../src/common/__tests__/graceful-shutdown-server.ts","../src/common/__tests__/group-by.spec.ts","../src/common/__tests__/handle-postgres-database-error.spec.ts","../src/common/__tests__/is-email.spec.ts","../src/common/__tests__/is-present.spec.ts","../src/common/__tests__/is-valid-handle.spec.ts","../src/common/__tests__/load-env.spec.ts","../src/common/__tests__/map-object-to.ts","../src/common/__tests__/merge-metadata.spec.ts","../src/common/__tests__/normalize-locale.spec.ts","../src/common/__tests__/object-to-string-path.spec.ts","../src/common/__tests__/omit-deep.spec.ts","../src/common/__tests__/parse-cors-origins.spec.ts","../src/common/__tests__/partition-array.spec.ts","../src/common/__tests__/pick-value-from-object.spec.ts","../src/common/__tests__/pluralize.spec.ts","../src/common/__tests__/promise-all.spec.ts","../src/common/__tests__/read-dir-recursive.spec.ts","../src/common/__tests__/remote-query-object-from-string.spec.ts","../src/common/__tests__/remote-query-object-to-string.spec.ts","../src/common/__tests__/remove-undefined-properties.spec.ts","../src/common/__tests__/remove-undefined.spec.ts","../src/common/__tests__/retry-execution.spec.ts","../src/common/__tests__/string-to-select-relation-object.ts","../src/common/__tests__/to-camel-case.spec.ts","../src/common/__tests__/to-handle.spec.ts","../src/common/__tests__/transform-modules.spec.ts","../src/common/__tests__/unflatten-object-keys.spec.ts","../src/common/__tests__/upper-case-first.spec.ts","../src/common/__tests__/validate-module-name.spec.ts","../src/core-flows/events.ts","../src/core-flows/index.ts","../src/dal/index.ts","../src/dal/utils.ts","../src/dal/mikro-orm/base-entity.ts","../src/dal/mikro-orm/big-number-field.ts","../src/dal/mikro-orm/custom-db-migrator.ts","../src/dal/mikro-orm/db-error-mapper.ts","../src/dal/mikro-orm/mikro-orm-create-connection.ts","../src/dal/mikro-orm/mikro-orm-free-text-search-filter.ts","../src/dal/mikro-orm/mikro-orm-repository.ts","../src/dal/mikro-orm/mikro-orm-serializer-old.ts","../src/dal/mikro-orm/mikro-orm-serializer.ts","../src/dal/mikro-orm/mikro-orm-soft-deletable-filter.ts","../src/dal/mikro-orm/utils.ts","../src/dal/mikro-orm/__fixtures__/utils.ts","../src/dal/mikro-orm/__tests__/base-entity.spec.ts","../src/dal/mikro-orm/__tests__/big-number-field.spec.ts","../src/dal/mikro-orm/__tests__/mikro-orm-free-text-search-filter.spec.ts","../src/dal/mikro-orm/__tests__/mikro-orm-serializer.spec.ts","../src/dal/mikro-orm/__tests__/ts-migration-generator.spec.ts","../src/dal/mikro-orm/decorators/foreign-key.ts","../src/dal/mikro-orm/decorators/searchable.ts","../src/dal/mikro-orm/integration-tests/__fixtures__/database.ts","../src/dal/mikro-orm/integration-tests/__fixtures__/utils.ts","../src/dal/mikro-orm/integration-tests/__tests__/mikro-orm-repository.spec.ts","../src/dal/mikro-orm/integration-tests/__tests__/utils.spec.ts","../src/defaults/countries.ts","../src/defaults/currencies.ts","../src/defaults/index.ts","../src/dev-server/index.ts","../src/dev-server/registry-helpers.ts","../src/dev-server/types.ts","../src/dev-server/handlers/job-handler.ts","../src/dev-server/handlers/step-handler.ts","../src/dev-server/handlers/subscriber-handler.ts","../src/dev-server/handlers/workflow-handler.ts","../src/dml/entity-builder.ts","../src/dml/entity.ts","../src/dml/errors.ts","../src/dml/index.ts","../src/dml/__tests__/array-property.spec.ts","../src/dml/__tests__/autoincrement-property.spec.ts","../src/dml/__tests__/base-property.spec.ts","../src/dml/__tests__/base-relationship.spec.ts","../src/dml/__tests__/big-number-property.spec.ts","../src/dml/__tests__/boolean-property.spec.ts","../src/dml/__tests__/create-graphql.spec.ts","../src/dml/__tests__/date-time-property.spec.ts","../src/dml/__tests__/entity-builder.spec.ts","../src/dml/__tests__/enum-schema.spec.ts","../src/dml/__tests__/float-property.spec.ts","../src/dml/__tests__/has-many-relationship.spec.ts","../src/dml/__tests__/has-one-relationship.spec.ts","../src/dml/__tests__/id-property.spec.ts","../src/dml/__tests__/json-property.spec.ts","../src/dml/__tests__/many-to-many.spec.ts","../src/dml/__tests__/number-property.spec.ts","../src/dml/__tests__/text-property.spec.ts","../src/dml/helpers/create-graphql.ts","../src/dml/helpers/create-mikro-orm-entity.ts","../src/dml/helpers/entity-builder/apply-searchable.ts","../src/dml/helpers/entity-builder/build-indexes.ts","../src/dml/helpers/entity-builder/create-big-number-properties.ts","../src/dml/helpers/entity-builder/create-default-properties.ts","../src/dml/helpers/entity-builder/define-property.ts","../src/dml/helpers/entity-builder/define-relationship.ts","../src/dml/helpers/entity-builder/index.ts","../src/dml/helpers/entity-builder/parse-entity-name.ts","../src/dml/helpers/entity-builder/query-builder.ts","../src/dml/helpers/entity-builder/relationship-helpers.ts","../src/dml/helpers/graphql-builder/get-attribute.ts","../src/dml/helpers/graphql-builder/set-relationship.ts","../src/dml/helpers/mikro-orm/apply-checks.ts","../src/dml/helpers/mikro-orm/apply-indexes.ts","../src/dml/helpers/mikro-orm/build-indexes.ts","../src/dml/integration-tests/utils.ts","../src/dml/integration-tests/__tests__/entity.spec.ts","../src/dml/integration-tests/__tests__/enum.spec.ts","../src/dml/integration-tests/__tests__/has-one-belongs-to.spec.ts","../src/dml/integration-tests/__tests__/many-to-many.spec.ts","../src/dml/integration-tests/__tests__/many-to-one.spec.ts","../src/dml/integration-tests/__tests__/translatable.spec.ts","../src/dml/properties/array.ts","../src/dml/properties/autoincrement.ts","../src/dml/properties/base.ts","../src/dml/properties/big-number.ts","../src/dml/properties/boolean.ts","../src/dml/properties/computed.ts","../src/dml/properties/date-time.ts","../src/dml/properties/enum.ts","../src/dml/properties/float.ts","../src/dml/properties/id.ts","../src/dml/properties/index.ts","../src/dml/properties/json.ts","../src/dml/properties/nullable.ts","../src/dml/properties/number.ts","../src/dml/properties/primary-key.ts","../src/dml/properties/text.ts","../src/dml/relations/base.ts","../src/dml/relations/belongs-to.ts","../src/dml/relations/has-many.ts","../src/dml/relations/has-one-fk.ts","../src/dml/relations/has-one.ts","../src/dml/relations/index.ts","../src/dml/relations/many-to-many.ts","../src/dml/relations/nullable.ts","../src/event-bus/build-event-messages.ts","../src/event-bus/common-events.ts","../src/event-bus/index.ts","../src/event-bus/message-aggregator.ts","../src/event-bus/utils.ts","../src/event-bus/__tests__/abstract-event-bus-module.spec.ts","../src/event-bus/__tests__/build-event-names-from-entity-name.spec.ts","../src/event-bus/__tests__/message-aggregator.spec.ts","../src/exceptions/index.ts","../src/exceptions/is-duplicate-error.ts","../src/exceptions/postgres-error.ts","../src/feature-flags/discover-and-register-feature-flags.ts","../src/feature-flags/discover-feature-flags.ts","../src/feature-flags/flag-router.ts","../src/feature-flags/index.ts","../src/feature-flags/register-flag.ts","../src/file/abstract-file-provider.ts","../src/file/index.ts","../src/graphql/clean-graphql.ts","../src/graphql/extract-relations-from-graphql.ts","../src/graphql/get-fields-and-relations.ts","../src/graphql/graphql-parser.ts","../src/graphql/graphql-to-fields.ts","../src/graphql/graphql-to-ts-types.ts","../src/graphql/index.ts","../src/graphql/__tests__/clean-graphql-schema.spec.ts","../src/graphql/__tests__/gql-schema-to-types.spec.ts","../src/graphql/__tests__/graphql-ast.ts","../src/graphql/__tests__/utils/gql-get-fields-and-relations.spec.ts","../src/graphql/__tests__/utils/graphql-schema-to-fields.ts","../src/link/compose-link-name.ts","../src/link/index.ts","../src/link/links.ts","../src/math/big-number.ts","../src/math/index.ts","../src/migrations/index.ts","../src/migrations/integration-tests/__tests__/migrations-generate.spec.ts","../src/migrations/integration-tests/__tests__/migrations-revert.spec.ts","../src/migrations/integration-tests/__tests__/migrations-run.spec.ts","../src/modules-sdk/acmekit-internal-service.ts","../src/modules-sdk/acmekit-service.ts","../src/modules-sdk/build-query.ts","../src/modules-sdk/create-acmekit-mikro-orm-event-subscriber.ts","../src/modules-sdk/create-pg-connection.ts","../src/modules-sdk/define-link.ts","../src/modules-sdk/define-policies.ts","../src/modules-sdk/definition.ts","../src/modules-sdk/event-builder-factory.ts","../src/modules-sdk/index.ts","../src/modules-sdk/joiner-config-builder.ts","../src/modules-sdk/load-module-database-config.ts","../src/modules-sdk/mikro-orm-cli-config-builder.ts","../src/modules-sdk/module-provider-registration-key.ts","../src/modules-sdk/module-provider.ts","../src/modules-sdk/module.ts","../src/modules-sdk/modules-to-container-types.ts","../src/modules-sdk/policy-to-types.ts","../src/modules-sdk/query-context.ts","../src/modules-sdk/__fixtures__/joiner-config/entities.ts","../src/modules-sdk/__tests__/acmekit-internal-service.ts","../src/modules-sdk/__tests__/acmekit-service-typings.spec.ts","../src/modules-sdk/__tests__/acmekit-service.spec.ts","../src/modules-sdk/__tests__/build-query.spec.ts","../src/modules-sdk/__tests__/joiner-config-builder.spec.ts","../src/modules-sdk/__tests__/load-database-config.spec.ts","../src/modules-sdk/__tests__/mikro-orm-cli-config-builder.spec.ts","../src/modules-sdk/__tests__/modules-to-container-types.spec.ts","../src/modules-sdk/decorators/context-parameter.ts","../src/modules-sdk/decorators/emit-events.ts","../src/modules-sdk/decorators/index.ts","../src/modules-sdk/decorators/inject-into-context.ts","../src/modules-sdk/decorators/inject-manager.ts","../src/modules-sdk/decorators/inject-shared-context.ts","../src/modules-sdk/decorators/inject-transaction-manager.ts","../src/modules-sdk/decorators/module.ts","../src/modules-sdk/decorators/__tests__/emit-events.ts","../src/modules-sdk/loaders/container-loader-factory.ts","../src/modules-sdk/loaders/load-models.ts","../src/modules-sdk/loaders/mikro-orm-connection-loader-factory.ts","../src/modules-sdk/loaders/mikro-orm-connection-loader.ts","../src/modules-sdk/migration-scripts/index.ts","../src/modules-sdk/migration-scripts/migration-down.ts","../src/modules-sdk/migration-scripts/migration-generate.ts","../src/modules-sdk/migration-scripts/migration-up.ts","../src/modules-sdk/migration-scripts/seed.ts","../src/modules-sdk/types/acmekit-service.ts","../src/modules-sdk/types/links-config.ts","../src/notification/abstract-notification-provider.ts","../src/notification/common.ts","../src/notification/events.ts","../src/notification/index.ts","../src/orchestration/index.ts","../src/orchestration/symbol.ts","../src/orchestration/types.ts","../src/pg/index.ts","../src/pg/integration-tests/__tests__/pg_utils.spec.ts","../src/policies/discover-policies.ts","../src/policies/index.ts","../src/search/abstract-service.ts","../src/search/index-types.ts","../src/search/index.ts","../src/search/search-relations.ts","../src/search/variant-keys.ts","../src/translations/apply-translations.ts","../src/translations/index.ts","../src/translations/__tests__/apply-translations.spec.ts","../src/user/events.ts","../src/user/index.ts"],"version":"5.9.3"}
1
+ {"root":["../src/bundles.ts","../src/index.ts","../src/analytics/abstract-analytics-provider.ts","../src/analytics/index.ts","../src/api-key/api-key-type.ts","../src/api-key/index.ts","../src/auth/abstract-auth-provider.ts","../src/auth/index.ts","../src/auth/token.ts","../src/caching/index.ts","../src/common/acmekit-container.ts","../src/common/alter-columns-helper.ts","../src/common/array-difference.ts","../src/common/array-intersection.ts","../src/common/build-query.ts","../src/common/build-regexp-if-valid.ts","../src/common/camel-to-snake-case.ts","../src/common/compress-name.ts","../src/common/container.ts","../src/common/convert-item-response-to-update-request.ts","../src/common/create-container-like.ts","../src/common/create-psql-index-helper.ts","../src/common/deduplicate.ts","../src/common/deep-copy.ts","../src/common/deep-equal-obj.ts","../src/common/deep-flat-map.ts","../src/common/deep-merge.ts","../src/common/define-config.ts","../src/common/define-file-config.ts","../src/common/define-plugin.ts","../src/common/dynamic-import.ts","../src/common/env-editor.ts","../src/common/errors.ts","../src/common/execute-with-concurrency.ts","../src/common/file-system.ts","../src/common/filter-object-by-keys.ts","../src/common/filter-operator-map.ts","../src/common/flatten-object-to-key-value-pairs.ts","../src/common/generate-entity-id.ts","../src/common/get-caller-file-path.ts","../src/common/get-config-file.ts","../src/common/get-duplicates.ts","../src/common/get-iso-string-from-date.ts","../src/common/get-node-version.ts","../src/common/get-resolved-plugins.ts","../src/common/get-selects-and-relations-from-object-array.ts","../src/common/get-set-difference.ts","../src/common/graceful-shutdown-server.ts","../src/common/group-by.ts","../src/common/handle-postgres-database-error.ts","../src/common/index.ts","../src/common/is-big-number.ts","../src/common/is-boolean.ts","../src/common/is-date.ts","../src/common/is-defined.ts","../src/common/is-email.ts","../src/common/is-error-like.ts","../src/common/is-object.ts","../src/common/is-present.ts","../src/common/is-string.ts","../src/common/is-truthy.ts","../src/common/load-env.ts","../src/common/lower-case-first.ts","../src/common/map-object-to.ts","../src/common/merge-metadata.ts","../src/common/merge-plugin-modules.ts","../src/common/normalize-csv-value.ts","../src/common/normalize-import-path-with-source.ts","../src/common/normalize-locale.ts","../src/common/object-from-string-path.ts","../src/common/object-to-string-path.ts","../src/common/omit-deep.ts","../src/common/optional-numeric-serializer.ts","../src/common/parse-cors-origins.ts","../src/common/parse-stringify-if-necessary.ts","../src/common/partition-array.ts","../src/common/pick-deep.ts","../src/common/pick-value-from-object.ts","../src/common/plugin-dependency-graph.ts","../src/common/plurailze.ts","../src/common/prefix-array-items.ts","../src/common/promise-all.ts","../src/common/read-dir-recursive.ts","../src/common/remote-query-object-from-string.ts","../src/common/remote-query-object-to-string.ts","../src/common/remove-nullisih.ts","../src/common/remove-undefined-properties.ts","../src/common/remove-undefined.ts","../src/common/resolve-exports.ts","../src/common/retry-execution.ts","../src/common/rules.ts","../src/common/selector-constraints-to-string.ts","../src/common/serialize-error.ts","../src/common/simple-hash.ts","../src/common/string-to-select-relation-object.ts","../src/common/stringify-circular.ts","../src/common/to-camel-case.ts","../src/common/to-handle.ts","../src/common/to-kebab-case.ts","../src/common/to-pascal-case.ts","../src/common/to-snake-case.ts","../src/common/to-unix-slash.ts","../src/common/trim-zeros.ts","../src/common/try-convert-to-boolean.ts","../src/common/try-convert-to-number.ts","../src/common/unflatten-object-keys.ts","../src/common/upper-case-first.ts","../src/common/validate-handle.ts","../src/common/validate-module-name.ts","../src/common/wrap-handler.ts","../src/common/__fixtures__/define-config/github/index.ts","../src/common/__tests__/array-intersection.spec.ts","../src/common/__tests__/build-query.spec.ts","../src/common/__tests__/build-regexp-if-valid.spec.ts","../src/common/__tests__/compress-name.spec.ts","../src/common/__tests__/convert-item-response-to-update-request.ts","../src/common/__tests__/create-psql-index-helper.spec.ts","../src/common/__tests__/deep-copy.spec.ts","../src/common/__tests__/deep-equal-obj.spec.ts","../src/common/__tests__/deep-flat-map.ts","../src/common/__tests__/deep-merge.ts","../src/common/__tests__/define-config.spec.ts","../src/common/__tests__/define-plugin.spec.ts","../src/common/__tests__/env-editor.spec.ts","../src/common/__tests__/filter-object-by-keys.spec.ts","../src/common/__tests__/flatten-object-to-key-value-pairs.spec.ts","../src/common/__tests__/get-duplicates.spec.ts","../src/common/__tests__/get-resolved-plugins.spec.ts","../src/common/__tests__/get-selects-and-relations-from-object-array.spec.ts","../src/common/__tests__/graceful-shutdown-server.ts","../src/common/__tests__/group-by.spec.ts","../src/common/__tests__/handle-postgres-database-error.spec.ts","../src/common/__tests__/is-email.spec.ts","../src/common/__tests__/is-present.spec.ts","../src/common/__tests__/is-valid-handle.spec.ts","../src/common/__tests__/load-env.spec.ts","../src/common/__tests__/map-object-to.ts","../src/common/__tests__/merge-metadata.spec.ts","../src/common/__tests__/normalize-locale.spec.ts","../src/common/__tests__/object-to-string-path.spec.ts","../src/common/__tests__/omit-deep.spec.ts","../src/common/__tests__/parse-cors-origins.spec.ts","../src/common/__tests__/partition-array.spec.ts","../src/common/__tests__/pick-value-from-object.spec.ts","../src/common/__tests__/plugin-dependency-graph.spec.ts","../src/common/__tests__/pluralize.spec.ts","../src/common/__tests__/promise-all.spec.ts","../src/common/__tests__/read-dir-recursive.spec.ts","../src/common/__tests__/remote-query-object-from-string.spec.ts","../src/common/__tests__/remote-query-object-to-string.spec.ts","../src/common/__tests__/remove-undefined-properties.spec.ts","../src/common/__tests__/remove-undefined.spec.ts","../src/common/__tests__/retry-execution.spec.ts","../src/common/__tests__/string-to-select-relation-object.ts","../src/common/__tests__/to-camel-case.spec.ts","../src/common/__tests__/to-handle.spec.ts","../src/common/__tests__/transform-modules.spec.ts","../src/common/__tests__/unflatten-object-keys.spec.ts","../src/common/__tests__/upper-case-first.spec.ts","../src/common/__tests__/validate-module-name.spec.ts","../src/core-flows/events.ts","../src/core-flows/index.ts","../src/dal/index.ts","../src/dal/utils.ts","../src/dal/mikro-orm/base-entity.ts","../src/dal/mikro-orm/big-number-field.ts","../src/dal/mikro-orm/custom-db-migrator.ts","../src/dal/mikro-orm/db-error-mapper.ts","../src/dal/mikro-orm/mikro-orm-create-connection.ts","../src/dal/mikro-orm/mikro-orm-free-text-search-filter.ts","../src/dal/mikro-orm/mikro-orm-repository.ts","../src/dal/mikro-orm/mikro-orm-serializer-old.ts","../src/dal/mikro-orm/mikro-orm-serializer.ts","../src/dal/mikro-orm/mikro-orm-soft-deletable-filter.ts","../src/dal/mikro-orm/utils.ts","../src/dal/mikro-orm/__fixtures__/utils.ts","../src/dal/mikro-orm/__tests__/base-entity.spec.ts","../src/dal/mikro-orm/__tests__/big-number-field.spec.ts","../src/dal/mikro-orm/__tests__/mikro-orm-free-text-search-filter.spec.ts","../src/dal/mikro-orm/__tests__/mikro-orm-serializer.spec.ts","../src/dal/mikro-orm/__tests__/ts-migration-generator.spec.ts","../src/dal/mikro-orm/decorators/foreign-key.ts","../src/dal/mikro-orm/decorators/searchable.ts","../src/dal/mikro-orm/integration-tests/__fixtures__/database.ts","../src/dal/mikro-orm/integration-tests/__fixtures__/utils.ts","../src/dal/mikro-orm/integration-tests/__tests__/mikro-orm-repository.spec.ts","../src/dal/mikro-orm/integration-tests/__tests__/utils.spec.ts","../src/defaults/countries.ts","../src/defaults/currencies.ts","../src/defaults/index.ts","../src/dev-server/index.ts","../src/dev-server/registry-helpers.ts","../src/dev-server/types.ts","../src/dev-server/handlers/job-handler.ts","../src/dev-server/handlers/step-handler.ts","../src/dev-server/handlers/subscriber-handler.ts","../src/dev-server/handlers/workflow-handler.ts","../src/dml/entity-builder.ts","../src/dml/entity.ts","../src/dml/errors.ts","../src/dml/index.ts","../src/dml/__tests__/array-property.spec.ts","../src/dml/__tests__/autoincrement-property.spec.ts","../src/dml/__tests__/base-property.spec.ts","../src/dml/__tests__/base-relationship.spec.ts","../src/dml/__tests__/big-number-property.spec.ts","../src/dml/__tests__/boolean-property.spec.ts","../src/dml/__tests__/create-graphql.spec.ts","../src/dml/__tests__/date-time-property.spec.ts","../src/dml/__tests__/entity-builder.spec.ts","../src/dml/__tests__/enum-schema.spec.ts","../src/dml/__tests__/float-property.spec.ts","../src/dml/__tests__/has-many-relationship.spec.ts","../src/dml/__tests__/has-one-relationship.spec.ts","../src/dml/__tests__/id-property.spec.ts","../src/dml/__tests__/json-property.spec.ts","../src/dml/__tests__/many-to-many.spec.ts","../src/dml/__tests__/number-property.spec.ts","../src/dml/__tests__/text-property.spec.ts","../src/dml/helpers/create-graphql.ts","../src/dml/helpers/create-mikro-orm-entity.ts","../src/dml/helpers/entity-builder/apply-searchable.ts","../src/dml/helpers/entity-builder/build-indexes.ts","../src/dml/helpers/entity-builder/create-big-number-properties.ts","../src/dml/helpers/entity-builder/create-default-properties.ts","../src/dml/helpers/entity-builder/define-property.ts","../src/dml/helpers/entity-builder/define-relationship.ts","../src/dml/helpers/entity-builder/index.ts","../src/dml/helpers/entity-builder/parse-entity-name.ts","../src/dml/helpers/entity-builder/query-builder.ts","../src/dml/helpers/entity-builder/relationship-helpers.ts","../src/dml/helpers/graphql-builder/get-attribute.ts","../src/dml/helpers/graphql-builder/set-relationship.ts","../src/dml/helpers/mikro-orm/apply-checks.ts","../src/dml/helpers/mikro-orm/apply-indexes.ts","../src/dml/helpers/mikro-orm/build-indexes.ts","../src/dml/integration-tests/utils.ts","../src/dml/integration-tests/__tests__/entity.spec.ts","../src/dml/integration-tests/__tests__/enum.spec.ts","../src/dml/integration-tests/__tests__/has-one-belongs-to.spec.ts","../src/dml/integration-tests/__tests__/many-to-many.spec.ts","../src/dml/integration-tests/__tests__/many-to-one.spec.ts","../src/dml/integration-tests/__tests__/translatable.spec.ts","../src/dml/properties/array.ts","../src/dml/properties/autoincrement.ts","../src/dml/properties/base.ts","../src/dml/properties/big-number.ts","../src/dml/properties/boolean.ts","../src/dml/properties/computed.ts","../src/dml/properties/date-time.ts","../src/dml/properties/enum.ts","../src/dml/properties/float.ts","../src/dml/properties/id.ts","../src/dml/properties/index.ts","../src/dml/properties/json.ts","../src/dml/properties/nullable.ts","../src/dml/properties/number.ts","../src/dml/properties/primary-key.ts","../src/dml/properties/text.ts","../src/dml/relations/base.ts","../src/dml/relations/belongs-to.ts","../src/dml/relations/has-many.ts","../src/dml/relations/has-one-fk.ts","../src/dml/relations/has-one.ts","../src/dml/relations/index.ts","../src/dml/relations/many-to-many.ts","../src/dml/relations/nullable.ts","../src/event-bus/build-event-messages.ts","../src/event-bus/common-events.ts","../src/event-bus/index.ts","../src/event-bus/message-aggregator.ts","../src/event-bus/utils.ts","../src/event-bus/__tests__/abstract-event-bus-module.spec.ts","../src/event-bus/__tests__/build-event-names-from-entity-name.spec.ts","../src/event-bus/__tests__/message-aggregator.spec.ts","../src/exceptions/index.ts","../src/exceptions/is-duplicate-error.ts","../src/exceptions/postgres-error.ts","../src/feature-flags/discover-and-register-feature-flags.ts","../src/feature-flags/discover-feature-flags.ts","../src/feature-flags/flag-router.ts","../src/feature-flags/index.ts","../src/feature-flags/register-flag.ts","../src/file/abstract-file-provider.ts","../src/file/index.ts","../src/graphql/clean-graphql.ts","../src/graphql/extract-relations-from-graphql.ts","../src/graphql/get-fields-and-relations.ts","../src/graphql/graphql-parser.ts","../src/graphql/graphql-to-fields.ts","../src/graphql/graphql-to-ts-types.ts","../src/graphql/index.ts","../src/graphql/__tests__/clean-graphql-schema.spec.ts","../src/graphql/__tests__/gql-schema-to-types.spec.ts","../src/graphql/__tests__/graphql-ast.ts","../src/graphql/__tests__/utils/gql-get-fields-and-relations.spec.ts","../src/graphql/__tests__/utils/graphql-schema-to-fields.ts","../src/link/compose-link-name.ts","../src/link/index.ts","../src/link/links.ts","../src/math/big-number.ts","../src/math/index.ts","../src/migrations/index.ts","../src/migrations/integration-tests/__tests__/migrations-generate.spec.ts","../src/migrations/integration-tests/__tests__/migrations-revert.spec.ts","../src/migrations/integration-tests/__tests__/migrations-run.spec.ts","../src/modules-sdk/acmekit-internal-service.ts","../src/modules-sdk/acmekit-service.ts","../src/modules-sdk/build-query.ts","../src/modules-sdk/create-acmekit-mikro-orm-event-subscriber.ts","../src/modules-sdk/create-pg-connection.ts","../src/modules-sdk/define-link.ts","../src/modules-sdk/define-policies.ts","../src/modules-sdk/definition.ts","../src/modules-sdk/event-builder-factory.ts","../src/modules-sdk/index.ts","../src/modules-sdk/joiner-config-builder.ts","../src/modules-sdk/load-module-database-config.ts","../src/modules-sdk/mikro-orm-cli-config-builder.ts","../src/modules-sdk/module-provider-registration-key.ts","../src/modules-sdk/module-provider.ts","../src/modules-sdk/module.ts","../src/modules-sdk/modules-to-container-types.ts","../src/modules-sdk/policy-to-types.ts","../src/modules-sdk/query-context.ts","../src/modules-sdk/__fixtures__/joiner-config/entities.ts","../src/modules-sdk/__tests__/acmekit-internal-service.ts","../src/modules-sdk/__tests__/acmekit-service-typings.spec.ts","../src/modules-sdk/__tests__/acmekit-service.spec.ts","../src/modules-sdk/__tests__/build-query.spec.ts","../src/modules-sdk/__tests__/joiner-config-builder.spec.ts","../src/modules-sdk/__tests__/load-database-config.spec.ts","../src/modules-sdk/__tests__/mikro-orm-cli-config-builder.spec.ts","../src/modules-sdk/__tests__/modules-to-container-types.spec.ts","../src/modules-sdk/decorators/context-parameter.ts","../src/modules-sdk/decorators/emit-events.ts","../src/modules-sdk/decorators/index.ts","../src/modules-sdk/decorators/inject-into-context.ts","../src/modules-sdk/decorators/inject-manager.ts","../src/modules-sdk/decorators/inject-shared-context.ts","../src/modules-sdk/decorators/inject-transaction-manager.ts","../src/modules-sdk/decorators/module.ts","../src/modules-sdk/decorators/__tests__/emit-events.ts","../src/modules-sdk/loaders/container-loader-factory.ts","../src/modules-sdk/loaders/load-models.ts","../src/modules-sdk/loaders/mikro-orm-connection-loader-factory.ts","../src/modules-sdk/loaders/mikro-orm-connection-loader.ts","../src/modules-sdk/migration-scripts/index.ts","../src/modules-sdk/migration-scripts/migration-down.ts","../src/modules-sdk/migration-scripts/migration-generate.ts","../src/modules-sdk/migration-scripts/migration-up.ts","../src/modules-sdk/migration-scripts/seed.ts","../src/modules-sdk/types/acmekit-service.ts","../src/modules-sdk/types/links-config.ts","../src/notification/abstract-notification-provider.ts","../src/notification/common.ts","../src/notification/events.ts","../src/notification/index.ts","../src/orchestration/index.ts","../src/orchestration/symbol.ts","../src/orchestration/types.ts","../src/pg/index.ts","../src/pg/integration-tests/__tests__/pg_utils.spec.ts","../src/policies/discover-policies.ts","../src/policies/index.ts","../src/routes/index.ts","../src/routes/routes-to-types.ts","../src/routes/__fixtures__/admin/api-keys/route.ts","../src/routes/__fixtures__/admin/api-keys/validators.ts","../src/routes/__fixtures__/admin/custom/route.ts","../src/routes/__fixtures__/admin/locales/route.d.ts","../src/routes/__fixtures__/admin/users/route.ts","../src/routes/__fixtures__/admin/users/[id]/route.ts","../src/routes/__tests__/routes-to-types.spec.ts","../src/search/abstract-service.ts","../src/search/index-types.ts","../src/search/index.ts","../src/search/search-relations.ts","../src/search/variant-keys.ts","../src/translations/apply-translations.ts","../src/translations/index.ts","../src/translations/__tests__/apply-translations.spec.ts","../src/user/events.ts","../src/user/index.ts"],"version":"5.9.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acmekit/utils",
3
- "version": "2.13.36",
3
+ "version": "2.13.38",
4
4
  "description": "AcmeKit utilities functions shared by AcmeKit core and Modules",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
@@ -26,11 +26,12 @@
26
26
  "author": "AcmeKit",
27
27
  "license": "MIT",
28
28
  "devDependencies": {
29
- "@acmekit/types": "2.13.36",
30
- "express": "^4.21.0"
29
+ "@acmekit/types": "2.13.38",
30
+ "express": "^4.21.0",
31
+ "typescript": ">=5.0.0"
31
32
  },
32
33
  "dependencies": {
33
- "@acmekit/deps": "2.13.36",
34
+ "@acmekit/deps": "2.13.38",
34
35
  "@graphql-codegen/core": "^4.0.2",
35
36
  "@graphql-codegen/typescript": "^4.0.9",
36
37
  "@graphql-tools/merge": "^9.0.7",