arckode-framework 1.0.3 → 1.0.5
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/kernel/framework.ts +11 -4
- package/package.json +2 -1
package/kernel/framework.ts
CHANGED
|
@@ -769,6 +769,7 @@ export class ORM {
|
|
|
769
769
|
}
|
|
770
770
|
|
|
771
771
|
// 1. Crear tabla si no existe
|
|
772
|
+
const hasExplicitId = Object.keys(def.fields).includes('id')
|
|
772
773
|
const columns = Object.entries(def.fields).map(([name, field]) => {
|
|
773
774
|
const sqlType = this.fieldTypeToSQL(field.type)
|
|
774
775
|
const parts = [name, sqlType]
|
|
@@ -783,6 +784,11 @@ export class ORM {
|
|
|
783
784
|
return parts.join(' ')
|
|
784
785
|
})
|
|
785
786
|
|
|
787
|
+
// Auto-añadir id TEXT PRIMARY KEY si el modelo no lo declara explícitamente
|
|
788
|
+
if (!hasExplicitId) {
|
|
789
|
+
columns.unshift('id TEXT PRIMARY KEY')
|
|
790
|
+
}
|
|
791
|
+
|
|
786
792
|
if (def.timestamps) {
|
|
787
793
|
columns.push('createdAt TEXT')
|
|
788
794
|
columns.push('updatedAt TEXT')
|
|
@@ -818,11 +824,12 @@ export class ORM {
|
|
|
818
824
|
}
|
|
819
825
|
|
|
820
826
|
// 4. Detectar drift de schema: columnas en la BD que ya no están en el modelo
|
|
827
|
+
// Normalizar a lowercase para compatibilidad con PostgreSQL (retorna nombres en minúscula)
|
|
821
828
|
const definedCols = new Set([
|
|
822
829
|
'id',
|
|
823
|
-
...Object.keys(def.fields),
|
|
824
|
-
...(def.timestamps ? ['
|
|
825
|
-
...(def.softDelete ? ['
|
|
830
|
+
...Object.keys(def.fields).map(k => k.toLowerCase()),
|
|
831
|
+
...(def.timestamps ? ['createdat', 'updatedat'] : []),
|
|
832
|
+
...(def.softDelete ? ['deletedat'] : []),
|
|
826
833
|
])
|
|
827
834
|
|
|
828
835
|
const dbCols = await this.getTableColumns(def.table)
|
|
@@ -874,7 +881,7 @@ export class ORM {
|
|
|
874
881
|
const map: Record<FieldDefinition['type'], string> = {
|
|
875
882
|
string: 'TEXT',
|
|
876
883
|
number: 'REAL',
|
|
877
|
-
boolean: '
|
|
884
|
+
boolean: 'BOOLEAN', // INTEGER falla en Postgres con DEFAULT false/true
|
|
878
885
|
json: 'TEXT',
|
|
879
886
|
date: 'TEXT',
|
|
880
887
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arckode-framework",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./kernel/framework.ts",
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
"analyze:framework": "bun run cli/index.ts analyze"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
+
"arckode-framework": "^1.0.3",
|
|
58
59
|
"jsonwebtoken": "^9.0.0"
|
|
59
60
|
},
|
|
60
61
|
"peerDependencies": {
|