prisma-generator-express 1.66.0 → 1.68.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +188 -3432
- package/dist/client/encodeQueryParams.js +3 -1
- package/dist/client/encodeQueryParams.js.map +1 -1
- package/dist/copy/misc.d.ts +1 -0
- package/dist/copy/misc.js +14 -0
- package/dist/copy/misc.js.map +1 -1
- package/dist/copy/operationDefinitions.d.ts +4 -1
- package/dist/copy/operationDefinitions.js +133 -9
- package/dist/copy/operationDefinitions.js.map +1 -1
- package/dist/generators/generateFastifyHandler.d.ts +2 -2
- package/dist/generators/generateFastifyHandler.js +68 -12
- package/dist/generators/generateFastifyHandler.js.map +1 -1
- package/dist/generators/generateHonoHandler.d.ts +2 -2
- package/dist/generators/generateHonoHandler.js +53 -6
- package/dist/generators/generateHonoHandler.js.map +1 -1
- package/dist/generators/generateHonoOpenApi.d.ts +13 -0
- package/dist/generators/generateHonoOpenApi.js +70 -0
- package/dist/generators/generateHonoOpenApi.js.map +1 -0
- package/dist/generators/generateImportPrismaStatement.d.ts +1 -0
- package/dist/generators/generateImportPrismaStatement.js +6 -0
- package/dist/generators/generateImportPrismaStatement.js.map +1 -1
- package/dist/generators/generateMcpApp.d.ts +10 -0
- package/dist/generators/generateMcpApp.js +113 -0
- package/dist/generators/generateMcpApp.js.map +1 -0
- package/dist/generators/generateModelMcp.d.ts +9 -0
- package/dist/generators/generateModelMcp.js +145 -0
- package/dist/generators/generateModelMcp.js.map +1 -0
- package/dist/generators/generateModelMetadata.js +29 -15
- package/dist/generators/generateModelMetadata.js.map +1 -1
- package/dist/generators/generateOperationCore.d.ts +3 -3
- package/dist/generators/generateOperationCore.js +51 -16
- package/dist/generators/generateOperationCore.js.map +1 -1
- package/dist/generators/generateRelationMeta.js +2 -2
- package/dist/generators/generateRelationMeta.js.map +1 -1
- package/dist/generators/generateRouteConfigType.d.ts +2 -2
- package/dist/generators/generateRouteConfigType.js +29 -11
- package/dist/generators/generateRouteConfigType.js.map +1 -1
- package/dist/generators/generateRouter.d.ts +7 -4
- package/dist/generators/generateRouter.js +164 -65
- package/dist/generators/generateRouter.js.map +1 -1
- package/dist/generators/generateRouterFastify.d.ts +7 -4
- package/dist/generators/generateRouterFastify.js +106 -86
- package/dist/generators/generateRouterFastify.js.map +1 -1
- package/dist/generators/generateRouterHono.d.ts +7 -4
- package/dist/generators/generateRouterHono.js +59 -414
- package/dist/generators/generateRouterHono.js.map +1 -1
- package/dist/generators/generateRouterPartsHono.d.ts +14 -0
- package/dist/generators/generateRouterPartsHono.js +180 -0
- package/dist/generators/generateRouterPartsHono.js.map +1 -0
- package/dist/generators/generateUnifiedDocs.d.ts +1 -1
- package/dist/generators/generateUnifiedDocs.js +15 -8
- package/dist/generators/generateUnifiedDocs.js.map +1 -1
- package/dist/generators/generateUnifiedHandler.d.ts +2 -2
- package/dist/generators/generateUnifiedHandler.js +42 -18
- package/dist/generators/generateUnifiedHandler.js.map +1 -1
- package/dist/guardOptions.js +12 -7
- package/dist/guardOptions.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +123 -4
- package/dist/index.js.map +1 -1
- package/dist/utils/copyFiles.d.ts +1 -1
- package/dist/utils/copyFiles.js +42 -7
- package/dist/utils/copyFiles.js.map +1 -1
- package/dist/utils/importExt.d.ts +1 -1
- package/dist/utils/mcpGate.d.ts +10 -0
- package/dist/utils/mcpGate.js +118 -0
- package/dist/utils/mcpGate.js.map +1 -0
- package/dist/utils/pathCasing.d.ts +4 -0
- package/dist/utils/pathCasing.js +40 -0
- package/dist/utils/pathCasing.js.map +1 -0
- package/dist/utils/resolveImportStyle.js +13 -5
- package/dist/utils/resolveImportStyle.js.map +1 -1
- package/dist/utils/writeFileSafely.js +6 -0
- package/dist/utils/writeFileSafely.js.map +1 -1
- package/package.json +22 -5
- package/src/bin.ts +1 -1
- package/src/client/encodeQueryParams.ts +39 -35
- package/src/constants.ts +1 -1
- package/src/copy/autoIncludePlanner.ts +93 -27
- package/src/copy/autoIncludePlannerGuarded.ts +171 -48
- package/src/copy/autoIncludeRuntimeGuarded.ts +25 -7
- package/src/copy/buildModelOpenApi.ts +229 -176
- package/src/copy/concurrency.ts +10 -8
- package/src/copy/docsRenderer.ts +14 -15
- package/src/copy/errorMapper.ts +68 -19
- package/src/copy/guardHelpers.ts +30 -9
- package/src/copy/materializedCount.ts +17 -5
- package/src/copy/mcpRuntime.ts +1017 -0
- package/src/copy/misc.ts +88 -68
- package/src/copy/ndjson.ts +72 -0
- package/src/copy/operationDefinitions.ts +177 -25
- package/src/copy/operationPipeline.ts +267 -0
- package/src/copy/operationRuntime.ts +124 -26
- package/src/copy/operationSchemas.ts +2773 -0
- package/src/copy/pagination.ts +35 -13
- package/src/copy/parseQueryParams.ts +47 -48
- package/src/copy/projectionDefaults.ts +6 -4
- package/src/copy/routeConfig.express.ts +16 -4
- package/src/copy/routeConfig.fastify.ts +16 -2
- package/src/copy/routeConfig.hono.ts +46 -14
- package/src/copy/routeConfig.ts +175 -40
- package/src/copy/routerParts.ts +524 -0
- package/src/copy/scalarTypes.ts +7 -2
- package/src/copy/sse.ts +72 -19
- package/src/generators/generateFastifyHandler.ts +77 -20
- package/src/generators/generateHonoHandler.ts +62 -14
- package/src/generators/generateHonoOpenApi.ts +93 -0
- package/src/generators/generateImportPrismaStatement.ts +93 -81
- package/src/generators/generateMcpApp.ts +133 -0
- package/src/generators/generateModelMcp.ts +208 -0
- package/src/generators/generateModelMetadata.ts +40 -22
- package/src/generators/generateOperationCore.ts +81 -33
- package/src/generators/generateRelationMeta.ts +23 -11
- package/src/generators/generateRouteConfigType.ts +39 -13
- package/src/generators/generateRouter.ts +171 -68
- package/src/generators/generateRouterFastify.ts +117 -89
- package/src/generators/generateRouterHono.ts +84 -464
- package/src/generators/generateRouterPartsHono.ts +220 -0
- package/src/generators/generateUnifiedDocs.ts +29 -8
- package/src/generators/generateUnifiedHandler.ts +47 -24
- package/src/generators/generateUnifiedScalarUI.ts +1 -1
- package/src/guardOptions.ts +105 -92
- package/src/index.ts +161 -6
- package/src/utils/copyFiles.ts +235 -168
- package/src/utils/importExt.ts +2 -2
- package/src/utils/mcpGate.ts +157 -0
- package/src/utils/pathCasing.ts +42 -0
- package/src/utils/resolveImportStyle.ts +37 -15
- package/src/utils/strings.ts +2 -2
- package/src/utils/writeFileSafely.ts +12 -2
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateHonoRouterParts = generateHonoRouterParts;
|
|
4
|
+
const generateRouteConfigType_1 = require("./generateRouteConfigType");
|
|
5
|
+
const importExt_1 = require("../utils/importExt");
|
|
6
|
+
const pathCasing_1 = require("../utils/pathCasing");
|
|
7
|
+
const operationDefinitions_1 = require("../copy/operationDefinitions");
|
|
8
|
+
function opKindFor(opName) {
|
|
9
|
+
switch (opName) {
|
|
10
|
+
case 'findUnique':
|
|
11
|
+
case 'findUniqueOrThrow':
|
|
12
|
+
return 'readUnique';
|
|
13
|
+
case 'findMany':
|
|
14
|
+
case 'findFirst':
|
|
15
|
+
case 'findFirstOrThrow':
|
|
16
|
+
case 'findManyPaginated':
|
|
17
|
+
case 'count':
|
|
18
|
+
case 'aggregate':
|
|
19
|
+
case 'groupBy':
|
|
20
|
+
return 'read';
|
|
21
|
+
case 'create':
|
|
22
|
+
return 'create';
|
|
23
|
+
case 'createMany':
|
|
24
|
+
case 'createManyAndReturn':
|
|
25
|
+
return 'createMany';
|
|
26
|
+
case 'update':
|
|
27
|
+
return 'update';
|
|
28
|
+
case 'updateMany':
|
|
29
|
+
case 'updateManyAndReturn':
|
|
30
|
+
return 'updateMany';
|
|
31
|
+
case 'upsert':
|
|
32
|
+
return 'upsert';
|
|
33
|
+
case 'delete':
|
|
34
|
+
return 'delete';
|
|
35
|
+
case 'deleteMany':
|
|
36
|
+
return 'deleteMany';
|
|
37
|
+
default:
|
|
38
|
+
return 'noop';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function generateHonoRouterParts({ model, enums, guardShapesImport, clientImport, importStyle, writeStrategy, dropGuard, pathCase, }) {
|
|
42
|
+
const ext = (0, importExt_1.importExt)(importStyle);
|
|
43
|
+
const modelName = model.name;
|
|
44
|
+
const modelSegment = (0, pathCasing_1.modelPathSegment)(modelName, pathCase);
|
|
45
|
+
const lower = modelName.charAt(0).toLowerCase() + modelName.slice(1);
|
|
46
|
+
const cap = (s) => s.charAt(0).toUpperCase() + s.slice(1);
|
|
47
|
+
const handlerImports = operationDefinitions_1.OPERATION_METADATA.map((m) => ` ${modelName}${cap(m.name)},`).join('\n');
|
|
48
|
+
const readOps = operationDefinitions_1.OPERATION_METADATA.filter((m) => m.kind === 'read');
|
|
49
|
+
const writeOps = operationDefinitions_1.OPERATION_METADATA.filter((m) => m.kind === 'write' || m.kind === 'batch').filter((m) => m.name !== 'updateEach');
|
|
50
|
+
const pathExpr = (suffix) => !suffix ? `setup.basePath || '/'` : `\`\${setup.basePath}${suffix}\``;
|
|
51
|
+
const readFactories = readOps
|
|
52
|
+
.map((meta) => {
|
|
53
|
+
const fn = `${lower}${cap(meta.name)}`;
|
|
54
|
+
const handler = `${modelName}${cap(meta.name)}`;
|
|
55
|
+
const opKind = opKindFor(meta.name);
|
|
56
|
+
const pathValue = pathExpr(meta.pathSuffix);
|
|
57
|
+
const postPathValue = meta.name === 'findMany'
|
|
58
|
+
? `setup.basePath ? \`\${setup.basePath}/read\` : '/read'`
|
|
59
|
+
: pathExpr(meta.pathSuffix);
|
|
60
|
+
return `
|
|
61
|
+
export function ${fn}<TCtx = unknown, TPrisma extends PrismaClientLike = PrismaClientLike, TEnv extends HonoEnvBase = HonoEnvBase>(config: ${modelName}RouteConfig<TCtx, TPrisma, TEnv> = {}): Hono<GeneratedHonoEnv<TEnv>> {
|
|
62
|
+
const setup = ${lower}PartsSetup(config)
|
|
63
|
+
const opConfig = setup.opFor('${meta.configKey}')
|
|
64
|
+
const app = new Hono<GeneratedHonoEnv<TEnv>>()
|
|
65
|
+
app.get(${pathValue}, createReadRoute<TCtx, TPrisma, TEnv>({ config, opConfig, opKind: '${opKind}', handler: ${handler}, parse: 'query', dropGuard: setup.dropGuard, settleBeforeHooks: setup.settleBeforeHooks }))
|
|
66
|
+
return app
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function ${fn}PostRead<TCtx = unknown, TPrisma extends PrismaClientLike = PrismaClientLike, TEnv extends HonoEnvBase = HonoEnvBase>(config: ${modelName}RouteConfig<TCtx, TPrisma, TEnv> = {}): Hono<GeneratedHonoEnv<TEnv>> {
|
|
70
|
+
const setup = ${lower}PartsSetup(config)
|
|
71
|
+
const opConfig = setup.opFor('${meta.configKey}')
|
|
72
|
+
const app = new Hono<GeneratedHonoEnv<TEnv>>()
|
|
73
|
+
app.post(${postPathValue}, createReadRoute<TCtx, TPrisma, TEnv>({ config, opConfig, opKind: '${opKind}', handler: ${handler}, parse: 'body', dropGuard: setup.dropGuard, settleBeforeHooks: setup.settleBeforeHooks }))
|
|
74
|
+
return app
|
|
75
|
+
}
|
|
76
|
+
`;
|
|
77
|
+
})
|
|
78
|
+
.join('\n');
|
|
79
|
+
const writeFactories = writeOps
|
|
80
|
+
.map((meta) => {
|
|
81
|
+
const fn = `${lower}${cap(meta.name)}`;
|
|
82
|
+
const handler = `${modelName}${cap(meta.name)}`;
|
|
83
|
+
const opKind = opKindFor(meta.name);
|
|
84
|
+
const pathValue = pathExpr(meta.pathSuffix);
|
|
85
|
+
return `
|
|
86
|
+
export function ${fn}<TCtx = unknown, TPrisma extends PrismaClientLike = PrismaClientLike, TEnv extends HonoEnvBase = HonoEnvBase>(config: ${modelName}RouteConfig<TCtx, TPrisma, TEnv> = {}): Hono<GeneratedHonoEnv<TEnv>> {
|
|
87
|
+
const setup = ${lower}PartsSetup(config)
|
|
88
|
+
const opConfig = setup.opFor('${meta.configKey}')
|
|
89
|
+
const app = new Hono<GeneratedHonoEnv<TEnv>>()
|
|
90
|
+
app.${meta.method}(${pathValue}, createWriteRoute<TCtx, TPrisma, TEnv>({ config, opConfig, opKind: '${opKind}', handler: ${handler}, dropGuard: setup.dropGuard, settleBeforeHooks: setup.settleBeforeHooks }))
|
|
91
|
+
return app
|
|
92
|
+
}
|
|
93
|
+
`;
|
|
94
|
+
})
|
|
95
|
+
.join('\n');
|
|
96
|
+
return `import { Hono } from 'hono'
|
|
97
|
+
import {
|
|
98
|
+
${handlerImports}
|
|
99
|
+
} from './${modelName}Handlers${ext}'
|
|
100
|
+
import type {
|
|
101
|
+
RouteConfig,
|
|
102
|
+
HonoEnvBase,
|
|
103
|
+
GeneratedHonoEnv,
|
|
104
|
+
PrismaClientLike,
|
|
105
|
+
} from '../routeConfig.target${ext}'
|
|
106
|
+
import { normalizePrefix, getEnv, resolveDropGuardEnv } from '../misc${ext}'
|
|
107
|
+
import {
|
|
108
|
+
resolveGuardPolicy,
|
|
109
|
+
validateCountSourceWhere,
|
|
110
|
+
warnIfUnguardedRoutes,
|
|
111
|
+
} from '../routeConfig${ext}'
|
|
112
|
+
import {
|
|
113
|
+
createReadRoute,
|
|
114
|
+
createWriteRoute,
|
|
115
|
+
createUpdateEachRoute,
|
|
116
|
+
opConfigFor,
|
|
117
|
+
normalizeHonoOperation,
|
|
118
|
+
type HonoOpConfig,
|
|
119
|
+
} from '../routerParts${ext}'
|
|
120
|
+
import { MODEL_FIELDS, MODEL_ENUMS } from './${modelName}Metadata${ext}'
|
|
121
|
+
|
|
122
|
+
${(0, generateRouteConfigType_1.generateRouteConfigType)(modelName, 'HonoBeforeHook', guardShapesImport, importStyle, 'hono', clientImport)}
|
|
123
|
+
|
|
124
|
+
// Fixed at generation time, identical to the legacy router factory.
|
|
125
|
+
const DROP_GUARD = ${dropGuard}
|
|
126
|
+
|
|
127
|
+
// No module-level side effects: this file must be tree-shakeable, so unused
|
|
128
|
+
// per-op exports — and everything only they reference, down to the OpenAPI
|
|
129
|
+
// renderer and yaml — drop out of a bundler's output. The environment is read
|
|
130
|
+
// inside the functions that need it.
|
|
131
|
+
|
|
132
|
+
function ${lower}PartsSetup<TCtx = unknown, TPrisma extends PrismaClientLike = PrismaClientLike, TEnv extends HonoEnvBase = HonoEnvBase>(config: ${modelName}RouteConfig<TCtx, TPrisma, TEnv>) {
|
|
133
|
+
validateCountSourceWhere(config.pagination?.countSource, '${modelName} pagination')
|
|
134
|
+
validateCountSourceWhere(
|
|
135
|
+
(config.findManyPaginated && typeof config.findManyPaginated === 'object' ? config.findManyPaginated : undefined)?.pagination?.countSource,
|
|
136
|
+
'${modelName} findManyPaginated pagination',
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
const isEnabled = (value: unknown): boolean => value !== false && !!(config.enableAll || value)
|
|
140
|
+
warnIfUnguardedRoutes('${modelName}', ['findMany', 'findUnique', 'findUniqueOrThrow', 'findFirst', 'findFirstOrThrow', 'findManyPaginated', 'count', 'aggregate', 'groupBy', 'create', 'createMany', 'createManyAndReturn', 'update', 'updateMany', 'updateManyAndReturn', 'upsert', 'delete', 'deleteMany'], config, isEnabled)
|
|
141
|
+
|
|
142
|
+
const customPrefix = normalizePrefix(config.customUrlPrefix || '')
|
|
143
|
+
const modelPrefix = config.addModelPrefix !== false ? '/${modelSegment}' : ''
|
|
144
|
+
const basePath = customPrefix + modelPrefix
|
|
145
|
+
|
|
146
|
+
const POLICY = resolveGuardPolicy(config)
|
|
147
|
+
const dropGuard =
|
|
148
|
+
DROP_GUARD || (POLICY.allowE2EGuardBypass && resolveDropGuardEnv(getEnv()))
|
|
149
|
+
const settleBeforeHooks = POLICY.guardResolutionOrder === 'before-hooks'
|
|
150
|
+
|
|
151
|
+
const opFor = <K extends keyof ${modelName}RouteConfig<TCtx, TPrisma, TEnv>>(
|
|
152
|
+
key: K,
|
|
153
|
+
): HonoOpConfig<TEnv> => {
|
|
154
|
+
const raw = config[key] as unknown as Parameters<typeof normalizeHonoOperation<TEnv>>[0]
|
|
155
|
+
return opConfigFor<TEnv>(raw, '${modelName}.' + String(key), POLICY)
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return { basePath, POLICY, dropGuard, settleBeforeHooks, opFor }
|
|
159
|
+
}
|
|
160
|
+
${readFactories}
|
|
161
|
+
${writeFactories}
|
|
162
|
+
export function ${lower}UpdateEach<TCtx = unknown, TPrisma extends PrismaClientLike = PrismaClientLike, TEnv extends HonoEnvBase = HonoEnvBase>(config: ${modelName}RouteConfig<TCtx, TPrisma, TEnv> = {}): Hono<GeneratedHonoEnv<TEnv>> {
|
|
163
|
+
const setup = ${lower}PartsSetup(config)
|
|
164
|
+
if (!setup.POLICY.enableUpdateEach) {
|
|
165
|
+
throw new Error(
|
|
166
|
+
'${modelName}.updateEach: enableUpdateEach is false, so this part ' +
|
|
167
|
+
'is not available. It bypasses guard shapes entirely, so there is no ' +
|
|
168
|
+
'configuration that makes it safe to expose.',
|
|
169
|
+
)
|
|
170
|
+
}
|
|
171
|
+
const raw = config.updateEach as unknown as Parameters<typeof normalizeHonoOperation<TEnv>>[0]
|
|
172
|
+
const opConfig = normalizeHonoOperation<TEnv>(raw)
|
|
173
|
+
const app = new Hono<GeneratedHonoEnv<TEnv>>()
|
|
174
|
+
app.post(setup.basePath ? \`\${setup.basePath}/each\` : '/each', createUpdateEachRoute<TCtx, TPrisma, TEnv>({ config, opConfig, handler: ${modelName}UpdateEach, dropGuard: setup.dropGuard }))
|
|
175
|
+
return app
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
`;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=generateRouterPartsHono.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateRouterPartsHono.js","sourceRoot":"","sources":["../../src/generators/generateRouterPartsHono.ts"],"names":[],"mappings":";;AAmDA,0DAwKC;AA1ND,uEAAmE;AAEnE,kDAA8C;AAE9C,oDAAqE;AACrE,uEAAiE;AAEjE,SAAS,SAAS,CAAC,MAAc;IAC/B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY,CAAC;QAClB,KAAK,mBAAmB;YACtB,OAAO,YAAY,CAAA;QACrB,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,kBAAkB,CAAC;QACxB,KAAK,mBAAmB,CAAC;QACzB,KAAK,OAAO,CAAC;QACb,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAA;QACf,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAA;QACjB,KAAK,YAAY,CAAC;QAClB,KAAK,qBAAqB;YACxB,OAAO,YAAY,CAAA;QACrB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAA;QACjB,KAAK,YAAY,CAAC;QAClB,KAAK,qBAAqB;YACxB,OAAO,YAAY,CAAA;QACrB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAA;QACjB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAA;QACjB,KAAK,YAAY;YACf,OAAO,YAAY,CAAA;QACrB;YACE,OAAO,MAAM,CAAA;IACjB,CAAC;AACH,CAAC;AAWD,SAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EACT,QAAQ,GAUT;IACC,MAAM,GAAG,GAAG,IAAA,qBAAS,EAAC,WAAW,CAAC,CAAA;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,MAAM,YAAY,GAAG,IAAA,6BAAgB,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC1D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACpE,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEjE,MAAM,cAAc,GAAG,yCAAkB,CAAC,GAAG,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CACvC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEZ,MAAM,OAAO,GAAG,yCAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;IACnE,MAAM,QAAQ,GAAG,yCAAkB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAChD,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;IAExC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE,CAClC,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,MAAM,IAAI,CAAA;IAEvE,MAAM,aAAa,GAAG,OAAO;SAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,EAAE,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;QACtC,MAAM,OAAO,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;QAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC3C,MAAM,aAAa,GACjB,IAAI,CAAC,IAAI,KAAK,UAAU;YACtB,CAAC,CAAC,wDAAwD;YAC1D,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC/B,OAAO;kBACK,EAAE,yHAAyH,SAAS;kBACpI,KAAK;kCACW,IAAI,CAAC,SAAS;;YAEpC,SAAS,uEAAuE,MAAM,eAAe,OAAO;;;;kBAItG,EAAE,iIAAiI,SAAS;kBAC5I,KAAK;kCACW,IAAI,CAAC,SAAS;;aAEnC,aAAa,uEAAuE,MAAM,eAAe,OAAO;;;CAG5H,CAAA;IACG,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,cAAc,GAAG,QAAQ;SAC5B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,EAAE,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;QACtC,MAAM,OAAO,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;QAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC3C,OAAO;kBACK,EAAE,yHAAyH,SAAS;kBACpI,KAAK;kCACW,IAAI,CAAC,SAAS;;QAExC,IAAI,CAAC,MAAM,IAAI,SAAS,wEAAwE,MAAM,eAAe,OAAO;;;CAGnI,CAAA;IACG,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO;;EAEP,cAAc;YACJ,SAAS,WAAW,GAAG;;;;;;+BAMJ,GAAG;uEACqC,GAAG;;;;;wBAKlD,GAAG;;;;;;;;wBAQH,GAAG;+CACoB,SAAS,WAAW,GAAG;;EAEpE,IAAA,iDAAuB,EAAC,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC;;;qBAGvF,SAAS;;;;;;;WAOnB,KAAK,mIAAmI,SAAS;8DAC9F,SAAS;;;OAGhE,SAAS;;;;2BAIW,SAAS;;;4DAGwB,YAAY;;;;;;;;mCAQrC,SAAS;;;;qCAIP,SAAS;;;;;EAK5C,aAAa;EACb,cAAc;kBACE,KAAK,mIAAmI,SAAS;kBACjJ,KAAK;;;SAGd,SAAS;;;;;;;;6IAQ2H,SAAS;;;;CAIrJ,CAAA;AACD,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ImportStyle } from '../utils/resolveImportStyle';
|
|
2
2
|
import type { Target } from '../constants';
|
|
3
|
-
export declare function generateUnifiedDocs(modelNames: string[], target: Target, importStyle: ImportStyle): string;
|
|
3
|
+
export declare function generateUnifiedDocs(modelNames: string[], pathSegments: Record<string, string>, target: Target, importStyle: ImportStyle): string;
|
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateUnifiedDocs = generateUnifiedDocs;
|
|
4
4
|
const importExt_1 = require("../utils/importExt");
|
|
5
|
-
function generateUnifiedDocs(modelNames, target, importStyle) {
|
|
5
|
+
function generateUnifiedDocs(modelNames, pathSegments, target, importStyle) {
|
|
6
6
|
const ext = (0, importExt_1.importExt)(importStyle);
|
|
7
7
|
if (target === 'fastify')
|
|
8
|
-
return generateFastify(modelNames, ext);
|
|
8
|
+
return generateFastify(modelNames, pathSegments, ext);
|
|
9
9
|
if (target === 'hono')
|
|
10
|
-
return generateHono(modelNames, ext);
|
|
11
|
-
return generateExpress(modelNames, ext);
|
|
10
|
+
return generateHono(modelNames, pathSegments, ext);
|
|
11
|
+
return generateExpress(modelNames, pathSegments, ext);
|
|
12
12
|
}
|
|
13
13
|
const renderIndexFn = `function renderIndex(title: string, modelNames: string[], basePath: string): string {
|
|
14
|
+
const segments = MODEL_PATH_SEGMENTS as Record<string, string>
|
|
14
15
|
const links = modelNames
|
|
15
|
-
.map((n) => '<li><a href="' + basePath + '/' + n.toLowerCase() + '">' + n + '</a></li>')
|
|
16
|
+
.map((n) => '<li><a href="' + basePath + '/' + (segments[n] ?? n.toLowerCase()) + '">' + n + '</a></li>')
|
|
16
17
|
.join('')
|
|
17
18
|
|
|
18
19
|
return '<!DOCTYPE html><html><head><meta charset="utf-8" /><title>' + title +
|
|
@@ -23,7 +24,7 @@ const renderIndexFn = `function renderIndex(title: string, modelNames: string[],
|
|
|
23
24
|
'<ul class="mt-4 list-disc pl-6 text-sm">' + links + '</ul>' +
|
|
24
25
|
'</div></body></html>'
|
|
25
26
|
}`;
|
|
26
|
-
function generateExpress(modelNames, ext) {
|
|
27
|
+
function generateExpress(modelNames, pathSegments, ext) {
|
|
27
28
|
return `import type { Router } from 'express'
|
|
28
29
|
import { getEnv, removeTrailingSlash } from './misc${ext}'
|
|
29
30
|
|
|
@@ -31,6 +32,8 @@ const _env = getEnv()
|
|
|
31
32
|
|
|
32
33
|
const MODELS = ${JSON.stringify(modelNames)} as const
|
|
33
34
|
|
|
35
|
+
const MODEL_PATH_SEGMENTS = ${JSON.stringify(pathSegments)} as const
|
|
36
|
+
|
|
34
37
|
interface UnifiedDocsConfig {
|
|
35
38
|
title?: string
|
|
36
39
|
basePath?: string
|
|
@@ -57,7 +60,7 @@ ${renderIndexFn}
|
|
|
57
60
|
export default registerUnifiedDocs
|
|
58
61
|
`;
|
|
59
62
|
}
|
|
60
|
-
function generateFastify(modelNames, ext) {
|
|
63
|
+
function generateFastify(modelNames, pathSegments, ext) {
|
|
61
64
|
return `import type { FastifyInstance } from 'fastify'
|
|
62
65
|
import { getEnv, removeTrailingSlash } from './misc${ext}'
|
|
63
66
|
|
|
@@ -65,6 +68,8 @@ const _env = getEnv()
|
|
|
65
68
|
|
|
66
69
|
const MODELS = ${JSON.stringify(modelNames)} as const
|
|
67
70
|
|
|
71
|
+
const MODEL_PATH_SEGMENTS = ${JSON.stringify(pathSegments)} as const
|
|
72
|
+
|
|
68
73
|
interface UnifiedDocsConfig {
|
|
69
74
|
title?: string
|
|
70
75
|
basePath?: string
|
|
@@ -94,7 +99,7 @@ ${renderIndexFn}
|
|
|
94
99
|
export default registerUnifiedDocs
|
|
95
100
|
`;
|
|
96
101
|
}
|
|
97
|
-
function generateHono(modelNames, ext) {
|
|
102
|
+
function generateHono(modelNames, pathSegments, ext) {
|
|
98
103
|
return `import type { Hono } from 'hono'
|
|
99
104
|
import { getEnv, removeTrailingSlash } from './misc${ext}'
|
|
100
105
|
|
|
@@ -102,6 +107,8 @@ const _env = getEnv()
|
|
|
102
107
|
|
|
103
108
|
const MODELS = ${JSON.stringify(modelNames)} as const
|
|
104
109
|
|
|
110
|
+
const MODEL_PATH_SEGMENTS = ${JSON.stringify(pathSegments)} as const
|
|
111
|
+
|
|
105
112
|
interface UnifiedDocsConfig {
|
|
106
113
|
title?: string
|
|
107
114
|
basePath?: string
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateUnifiedDocs.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedDocs.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"generateUnifiedDocs.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedDocs.ts"],"names":[],"mappings":";;AAIA,kDAWC;AAdD,kDAA8C;AAG9C,SAAgB,mBAAmB,CACjC,UAAoB,EACpB,YAAoC,EACpC,MAAc,EACd,WAAwB;IAExB,MAAM,GAAG,GAAG,IAAA,qBAAS,EAAC,WAAW,CAAC,CAAA;IAClC,IAAI,MAAM,KAAK,SAAS;QACtB,OAAO,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;IACvD,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,YAAY,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;IACzE,OAAO,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,aAAa,GAAG;;;;;;;;;;;;;EAapB,CAAA;AAEF,SAAS,eAAe,CACtB,UAAoB,EACpB,YAAoC,EACpC,GAAW;IAEX,OAAO;qDAC4C,GAAG;;;;iBAIvC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;;8BAEb,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;EAuBxD,aAAa;;;CAGd,CAAA;AACD,CAAC;AAED,SAAS,eAAe,CACtB,UAAoB,EACpB,YAAoC,EACpC,GAAW;IAEX,OAAO;qDAC4C,GAAG;;;;iBAIvC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;;8BAEb,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BxD,aAAa;;;CAGd,CAAA;AACD,CAAC;AAED,SAAS,YAAY,CACnB,UAAoB,EACpB,YAAoC,EACpC,GAAW;IAEX,OAAO;qDAC4C,GAAG;;;;iBAIvC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;;8BAEb,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;EAuBxD,aAAa;;;CAGd,CAAA;AACD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DMMF } from '@prisma/generator-helper';
|
|
2
|
-
import { ImportStyle } from '../utils/resolveImportStyle';
|
|
1
|
+
import type { DMMF } from '@prisma/generator-helper';
|
|
2
|
+
import type { ImportStyle } from '../utils/resolveImportStyle';
|
|
3
3
|
export interface UnifiedHandlerOptions {
|
|
4
4
|
model: DMMF.Model;
|
|
5
5
|
importStyle: ImportStyle;
|
|
@@ -7,7 +7,8 @@ function generateUnifiedHandler(options) {
|
|
|
7
7
|
const ext = (0, importExt_1.importExt)(options.importStyle);
|
|
8
8
|
const modelName = options.model.name;
|
|
9
9
|
const dispatchOps = operationDefinitions_1.OPERATION_METADATA.filter((m) => m.name !== 'updateEach');
|
|
10
|
-
const handlers = dispatchOps
|
|
10
|
+
const handlers = dispatchOps
|
|
11
|
+
.map((meta) => {
|
|
11
12
|
const exportName = `${modelName}${meta.name.charAt(0).toUpperCase() + meta.name.slice(1)}`;
|
|
12
13
|
return `
|
|
13
14
|
export async function ${exportName}(
|
|
@@ -16,17 +17,39 @@ export async function ${exportName}(
|
|
|
16
17
|
next: NextFunction,
|
|
17
18
|
) {
|
|
18
19
|
try {
|
|
19
|
-
|
|
20
|
+
const locals = readLocals(res)
|
|
21
|
+
;locals.data = await executeOperation(
|
|
22
|
+
{ variantKey: locals.guardVariantKey, caller: locals.guardCaller },
|
|
23
|
+
{ guardShape: locals.guardShape },
|
|
24
|
+
{
|
|
25
|
+
core: core.${meta.coreName},
|
|
26
|
+
args: queryChannel(res),
|
|
27
|
+
body: req.body,
|
|
28
|
+
prisma: requirePrisma((req as ExtendedRequest).prisma),
|
|
29
|
+
postgres: (req as ExtendedRequest).postgres,
|
|
30
|
+
sqlite: (req as ExtendedRequest).sqlite,
|
|
31
|
+
pagination: locals.routeConfig?.pagination,
|
|
32
|
+
override: locals.operationOverride,
|
|
33
|
+
getContext: locals.getContext,
|
|
34
|
+
},
|
|
35
|
+
)
|
|
20
36
|
next()
|
|
21
37
|
} catch (error: unknown) {
|
|
22
|
-
next(
|
|
38
|
+
next(classifyError(error))
|
|
23
39
|
}
|
|
24
40
|
}`;
|
|
25
|
-
})
|
|
41
|
+
})
|
|
42
|
+
.join('\n');
|
|
26
43
|
return `import type { Request, Response, NextFunction } from 'express'
|
|
27
44
|
import * as core from './${modelName}Core${ext}'
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
45
|
+
import type { RuntimeOperationOverride } from '../operationRuntime${ext}'
|
|
46
|
+
import type { PaginationConfig } from '../routeConfig${ext}'
|
|
47
|
+
import {
|
|
48
|
+
executeOperation,
|
|
49
|
+
classifyError,
|
|
50
|
+
requirePrisma,
|
|
51
|
+
type ArgsChannel,
|
|
52
|
+
} from '../operationPipeline${ext}'
|
|
30
53
|
|
|
31
54
|
type ExtendedRequest = Request & {
|
|
32
55
|
prisma?: unknown
|
|
@@ -36,24 +59,25 @@ type ExtendedRequest = Request & {
|
|
|
36
59
|
|
|
37
60
|
type LocalsBag = {
|
|
38
61
|
parsedQuery?: Record<string, unknown>
|
|
39
|
-
routeConfig?: { pagination?:
|
|
62
|
+
routeConfig?: { pagination?: PaginationConfig }
|
|
40
63
|
guardShape?: Record<string, unknown>
|
|
41
64
|
guardCaller?: string
|
|
65
|
+
guardVariantKey?: string
|
|
66
|
+
operationOverride?: RuntimeOperationOverride
|
|
67
|
+
getContext?: () => Promise<unknown>
|
|
42
68
|
data?: unknown
|
|
43
69
|
}
|
|
44
70
|
|
|
45
|
-
function
|
|
46
|
-
|
|
47
|
-
|
|
71
|
+
function readLocals(res: Response): LocalsBag {
|
|
72
|
+
return res.locals as LocalsBag
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function queryChannel(res: Response): ArgsChannel {
|
|
48
76
|
return {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
body: req.body,
|
|
54
|
-
guardShape: locals.guardShape,
|
|
55
|
-
guardCaller: locals.guardCaller,
|
|
56
|
-
paginationConfig: (locals.routeConfig?.pagination) as OperationContext['paginationConfig'],
|
|
77
|
+
read: () => readLocals(res).parsedQuery,
|
|
78
|
+
write: (next) => {
|
|
79
|
+
readLocals(res).parsedQuery = next
|
|
80
|
+
},
|
|
57
81
|
}
|
|
58
82
|
}
|
|
59
83
|
${handlers}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateUnifiedHandler.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedHandler.ts"],"names":[],"mappings":";;AAUA,
|
|
1
|
+
{"version":3,"file":"generateUnifiedHandler.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedHandler.ts"],"names":[],"mappings":";;AAUA,wDAkFC;AA1FD,kDAA8C;AAC9C,uEAAiE;AAOjE,SAAgB,sBAAsB,CAAC,OAA8B;IACnE,MAAM,GAAG,GAAG,IAAA,qBAAS,EAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;IACpC,MAAM,WAAW,GAAG,yCAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;IAE7E,MAAM,QAAQ,GAAG,WAAW;SACzB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,UAAU,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAE1F,OAAO;wBACW,UAAU;;;;;;;;;;;qBAWb,IAAI,CAAC,QAAQ;;;;;;;;;;;;;;;EAehC,CAAA;IACE,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO;2BACkB,SAAS,OAAO,GAAG;oEACsB,GAAG;uDAChB,GAAG;;;;;;8BAM5B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B/B,QAAQ;CACT,CAAA;AACD,CAAC"}
|
package/dist/guardOptions.js
CHANGED
|
@@ -77,8 +77,8 @@ exports.GUARD_OPTION_METADATA = Object.freeze([
|
|
|
77
77
|
type: 'boolean',
|
|
78
78
|
default: exports.UPSTREAM_GUARD_DEFAULTS.allowE2EGuardBypass,
|
|
79
79
|
hardened: exports.HARDENED_GUARD_PROFILE.allowE2EGuardBypass,
|
|
80
|
-
label: 'Honour the
|
|
81
|
-
description: 'Treats
|
|
80
|
+
label: 'Honour the PGE_DROP_GUARD environment guard bypass',
|
|
81
|
+
description: 'Treats PGE_DROP_GUARD=true in the environment as a request to drop the guard. Deprecated alias: E2E=true.',
|
|
82
82
|
warning: 'A runtime variable can weaken a deployed artifact after generation. On an edge runtime this is an ordinary config var.',
|
|
83
83
|
target: 'hono',
|
|
84
84
|
},
|
|
@@ -112,12 +112,17 @@ exports.GUARD_METADATA_SCOPE = Object.freeze({
|
|
|
112
112
|
function resolveGuardPolicy(config) {
|
|
113
113
|
return {
|
|
114
114
|
requireGuardShape: config?.requireGuardShape ?? exports.UPSTREAM_GUARD_DEFAULTS.requireGuardShape,
|
|
115
|
-
validateGuardShapes: config?.validateGuardShapes ??
|
|
116
|
-
|
|
115
|
+
validateGuardShapes: config?.validateGuardShapes ??
|
|
116
|
+
exports.UPSTREAM_GUARD_DEFAULTS.validateGuardShapes,
|
|
117
|
+
requireDefaultVariantOptIn: config?.requireDefaultVariantOptIn ??
|
|
118
|
+
exports.UPSTREAM_GUARD_DEFAULTS.requireDefaultVariantOptIn,
|
|
117
119
|
enableUpdateEach: config?.enableUpdateEach ?? exports.UPSTREAM_GUARD_DEFAULTS.enableUpdateEach,
|
|
118
|
-
guardResolutionOrder: config?.guardResolutionOrder ??
|
|
119
|
-
|
|
120
|
-
|
|
120
|
+
guardResolutionOrder: config?.guardResolutionOrder ??
|
|
121
|
+
exports.UPSTREAM_GUARD_DEFAULTS.guardResolutionOrder,
|
|
122
|
+
allowE2EGuardBypass: config?.allowE2EGuardBypass ??
|
|
123
|
+
exports.UPSTREAM_GUARD_DEFAULTS.allowE2EGuardBypass,
|
|
124
|
+
validateResolvedShapes: config?.validateResolvedShapes ??
|
|
125
|
+
exports.UPSTREAM_GUARD_DEFAULTS.validateResolvedShapes,
|
|
121
126
|
};
|
|
122
127
|
}
|
|
123
128
|
//# sourceMappingURL=guardOptions.js.map
|
package/dist/guardOptions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardOptions.js","sourceRoot":"","sources":["../src/guardOptions.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"guardOptions.js","sourceRoot":"","sources":["../src/guardOptions.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export { GUARD_OPTION_METADATA, GUARD_METADATA_SCOPE, UPSTREAM_GUARD_DEFAULTS, HARDENED_GUARD_PROFILE, resolveGuardPolicy, } from './guardOptions';
|
|
2
|
-
export type { GuardPolicy, GuardOptionMetadata, GuardResolutionOrder } from './guardOptions';
|
|
2
|
+
export type { GuardPolicy, GuardOptionMetadata, GuardResolutionOrder, } from './guardOptions';
|
|
3
|
+
import { GeneratorOptions } from '@prisma/generator-helper';
|
|
4
|
+
export declare function runGenerate(options: GeneratorOptions): Promise<void>;
|