@lunora/codegen 1.0.0-alpha.4 → 1.0.0-alpha.41
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/LICENSE.md +6 -0
- package/__assets__/package-og.svg +1 -1
- package/dist/index.d.mts +1175 -25
- package/dist/index.d.ts +1175 -25
- package/dist/index.mjs +30 -24
- package/dist/packem_shared/{CONTAINERS_FILENAME-0K-pjNb8.mjs → CONTAINERS_FILENAME-DjpXMqhp.mjs} +1 -1
- package/dist/packem_shared/{CodegenDiagnosticError-54jWDxA9.mjs → CodegenDiagnosticError-DyQ5FwkM.mjs} +7 -5
- package/dist/packem_shared/FLAGS_FILENAME-fEZtzWXi.mjs +139 -0
- package/dist/packem_shared/GENERATED_HEADER-cUyu5VOU.mjs +3 -0
- package/dist/packem_shared/{LUNORA_ERROR_CODES-CySpQPD3.mjs → LUNORA_ERROR_CODES-DvTLozCu.mjs} +8 -1
- package/dist/packem_shared/MUTATORS_FILENAME-BZOfUhlY.mjs +81 -0
- package/dist/packem_shared/{OPENRPC_VERSION-C7zKVeKi.mjs → OPENRPC_VERSION-DxbqafcJ.mjs} +2 -2
- package/dist/packem_shared/QUEUES_FILENAME-Xv6Vy-Ku.mjs +145 -0
- package/dist/packem_shared/SCHEMA_SNAPSHOT_FILENAME-C1yHg38Z.mjs +3438 -0
- package/dist/packem_shared/{SCHEMA_SNAPSHOT_VERSION-DzLDbWk3.mjs → SCHEMA_SNAPSHOT_VERSION-D0ARY6rL.mjs} +18 -2
- package/dist/packem_shared/SHAPES_FILENAME-DOhPGi-6.mjs +94 -0
- package/dist/packem_shared/{WORKFLOWS_FILENAME-DRDQdhfq.mjs → WORKFLOWS_FILENAME-B2By8S4s.mjs} +70 -2
- package/dist/packem_shared/{buildOpenApiDocument-Cns1EkCQ.mjs → buildOpenApiDocument-_mwWOc2N.mjs} +2 -2
- package/dist/packem_shared/{discoverAuthApiCalls-C35R6z0T.mjs → discoverAuthApiCalls-WMx8L2FG.mjs} +1 -1
- package/dist/packem_shared/{discoverCrons-BL6iGuJ3.mjs → discoverCrons-D-jrpm97.mjs} +22 -20
- package/dist/packem_shared/{discoverFunctions-DEgAcRuD.mjs → discoverFunctions-CZ91aenA.mjs} +72 -14
- package/dist/packem_shared/{discoverHttpRoutes-C978pBiG.mjs → discoverHttpRoutes-DNZLDCmm.mjs} +2 -2
- package/dist/packem_shared/{discoverInserts-CRQdXvHO.mjs → discoverInserts-DFRJhmCv.mjs} +24 -2
- package/dist/packem_shared/{discoverMaskProcedures-B64zA740.mjs → discoverMaskProcedures-B5iFnZ-X.mjs} +58 -2
- package/dist/packem_shared/{discoverMigrations-Doj_-BAA.mjs → discoverMigrations-CdKtMlBc.mjs} +10 -4
- package/dist/packem_shared/{discoverNondeterministicCalls-4KiPQxQU.mjs → discoverNondeterministicCalls-C_PrQPkA.mjs} +1 -1
- package/dist/packem_shared/{discoverQueries-BkIi0dBD.mjs → discoverQueries-B8W9UPrt.mjs} +1 -1
- package/dist/packem_shared/{discoverR2sqlCalls-BpDqvcUn.mjs → discoverR2sqlCalls-Bm7Rfnf4.mjs} +1 -1
- package/dist/packem_shared/{discoverRlsMetadata-DpRB1HMe.mjs → discoverRlsMetadata-B4GL4ZKm.mjs} +1 -1
- package/dist/packem_shared/{discoverSchema-BBulgGbH.mjs → discoverSchema-DFWVgU5o.mjs} +349 -17
- package/dist/packem_shared/{discoverStorageRulesMetadata-DAqJUxUv.mjs → discoverStorageRulesMetadata-nosjYcvN.mjs} +1 -1
- package/dist/packem_shared/{GENERATED_HEADER-DF1hQcix.mjs → emit-CFz-9dcD.mjs} +1100 -122
- package/dist/packem_shared/{emitApp-Ci_hcJNO.mjs → emitApp-D8rVuM__.mjs} +99 -30
- package/dist/packem_shared/formatAdvisories-DRhEiJUz.mjs +114 -0
- package/dist/packem_shared/{parse-validator-tuQtHrsr.mjs → parse-validator-BSJo1HGP.mjs} +18 -6
- package/dist/packem_shared/redact-oTmsol5A.mjs +33 -0
- package/package.json +9 -7
- package/dist/packem_shared/SCHEMA_SNAPSHOT_FILENAME-C5UlpWKF.mjs +0 -922
- package/dist/packem_shared/formatAdvisories-8NIv1k0I.mjs +0 -69
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { runAdvisor } from '@lunora/advisor';
|
|
2
|
-
|
|
3
|
-
const flattenIndexes = (table) => [
|
|
4
|
-
...table.indexes.map((index) => {
|
|
5
|
-
return { fields: index.fields, kind: "index", name: index.name, unique: index.unique };
|
|
6
|
-
}),
|
|
7
|
-
...table.searchIndexes.map((index) => {
|
|
8
|
-
return { fields: [index.field, ...index.filterFields ?? []], kind: "search", name: index.name };
|
|
9
|
-
}),
|
|
10
|
-
...table.rankIndexes.map((index) => {
|
|
11
|
-
return { fields: [...index.sortBy.map((key) => key.field), ...index.partitionBy ?? []], kind: "rank", name: index.name };
|
|
12
|
-
}),
|
|
13
|
-
...table.vectorIndexes.filter((index) => index.field !== void 0).map((index) => {
|
|
14
|
-
return { fields: [index.field], kind: "vector", name: index.name };
|
|
15
|
-
})
|
|
16
|
-
];
|
|
17
|
-
const toAdvisorSchema = (schema) => {
|
|
18
|
-
return {
|
|
19
|
-
tables: schema.tables.map((table) => {
|
|
20
|
-
return {
|
|
21
|
-
externallyManaged: table.externallyManaged ?? false,
|
|
22
|
-
fields: Object.keys(table.shape),
|
|
23
|
-
indexes: flattenIndexes(table),
|
|
24
|
-
name: table.name,
|
|
25
|
-
relations: table.relations.map((relation) => {
|
|
26
|
-
return {
|
|
27
|
-
field: relation.field,
|
|
28
|
-
kind: relation.kind,
|
|
29
|
-
name: relation.name,
|
|
30
|
-
onDelete: relation.onDelete,
|
|
31
|
-
references: relation.references,
|
|
32
|
-
table: relation.table
|
|
33
|
-
};
|
|
34
|
-
})
|
|
35
|
-
};
|
|
36
|
-
})
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
const lintSchema = (schema, queries = [], inserts, authApiCalls, rlsProcedures, containers, workflows, workflowCalls, maskProcedures, nondeterministicCalls, procedureProtections, argumentValidators, secretLiterals, sqlInterpolations, adminRoutes, r2sqlCalls) => runAdvisor(
|
|
40
|
-
{
|
|
41
|
-
adminRoutes,
|
|
42
|
-
argValidators: argumentValidators,
|
|
43
|
-
authApiCalls,
|
|
44
|
-
containers,
|
|
45
|
-
inserts,
|
|
46
|
-
maskProcedures,
|
|
47
|
-
nondeterministicCalls,
|
|
48
|
-
procedureProtections,
|
|
49
|
-
queries,
|
|
50
|
-
r2sqlCalls,
|
|
51
|
-
rlsProcedures,
|
|
52
|
-
schema: toAdvisorSchema(schema),
|
|
53
|
-
secretLiterals,
|
|
54
|
-
sqlInterpolations,
|
|
55
|
-
workflowCalls,
|
|
56
|
-
workflows
|
|
57
|
-
},
|
|
58
|
-
{ source: "static" }
|
|
59
|
-
);
|
|
60
|
-
const formatAdvisories = (findings) => {
|
|
61
|
-
if (findings.length === 0) {
|
|
62
|
-
return "";
|
|
63
|
-
}
|
|
64
|
-
const header = `@lunora/codegen: ${String(findings.length)} schema advisor finding${findings.length === 1 ? "" : "s"}`;
|
|
65
|
-
const lines = findings.map((finding) => ` [${finding.level}] ${finding.name}: ${finding.detail}`);
|
|
66
|
-
return [header, ...lines].join("\n");
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
export { formatAdvisories, lintSchema };
|