@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.
- package/dist/common/container.d.ts +1 -0
- package/dist/common/container.d.ts.map +1 -1
- package/dist/common/container.js +1 -0
- package/dist/common/container.js.map +1 -1
- package/dist/common/define-plugin.d.ts +114 -0
- package/dist/common/define-plugin.d.ts.map +1 -0
- package/dist/common/define-plugin.js +53 -0
- package/dist/common/define-plugin.js.map +1 -0
- package/dist/common/get-resolved-plugins.d.ts.map +1 -1
- package/dist/common/get-resolved-plugins.js +43 -0
- package/dist/common/get-resolved-plugins.js.map +1 -1
- package/dist/common/index.d.ts +2 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +2 -0
- package/dist/common/index.js.map +1 -1
- package/dist/common/merge-plugin-modules.d.ts.map +1 -1
- package/dist/common/merge-plugin-modules.js +15 -0
- package/dist/common/merge-plugin-modules.js.map +1 -1
- package/dist/common/plugin-dependency-graph.d.ts +18 -0
- package/dist/common/plugin-dependency-graph.d.ts.map +1 -0
- package/dist/common/plugin-dependency-graph.js +62 -0
- package/dist/common/plugin-dependency-graph.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/routes/index.d.ts +2 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +18 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/routes-to-types.d.ts +19 -0
- package/dist/routes/routes-to-types.d.ts.map +1 -0
- package/dist/routes/routes-to-types.js +442 -0
- package/dist/routes/routes-to-types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -4
|
@@ -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
|
|
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"}
|
package/dist/common/container.js
CHANGED
|
@@ -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;
|
|
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;
|
|
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":";;;;;;
|
|
1
|
+
{"version":3,"file":"get-resolved-plugins.js","sourceRoot":"","sources":["../../src/common/get-resolved-plugins.ts"],"names":[],"mappings":"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"}
|
package/dist/common/index.d.ts
CHANGED
|
@@ -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":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,2CAA2C,CAAA;AACzD,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qCAAqC,CAAA;AACnD,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+CAA+C,CAAA;AAC7D,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,YAAY,CAAA;AAC1B,cAAc,kCAAkC,CAAA;AAChD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qCAAqC,CAAA;AACnD,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA;AACvC,cAAc,aAAa,CAAA;AAC3B,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,kCAAkC,CAAA;AAChD,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,oCAAoC,CAAA;AAClD,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"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"}
|
package/dist/common/index.js
CHANGED
|
@@ -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);
|
package/dist/common/index.js.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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":";;AAoBA,8DAgEC;AApFD,qCAAuC;AAYvC;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CACvC,OAAqB;IAErB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAA;IAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE1C,aAAa;IACb,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;QACrC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC9B,CAAC;IAED,uCAAuC;IACvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAA;QACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,qBAAY,CACpB,qBAAY,CAAC,KAAK,CAAC,YAAY,EAC/B,WAAW,MAAM,CAAC,IAAI,iBAAiB,GAAG,4BAA4B;oBACpE,oDAAoD,CACvD,CAAA;YACH,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACpC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACtC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAA;QAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEpB,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,GAAG,CAAC,CAAA;YAC9C,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAClC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,OAAO;aACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACrB,MAAM,IAAI,qBAAY,CACpB,qBAAY,CAAC,KAAK,CAAC,YAAY,EAC/B,kDAAkD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACxE,uDAAuD,CAC1D,CAAA;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,CAAA;AACnB,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -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 @@
|
|
|
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.
|
|
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.
|
|
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.
|
|
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",
|