@edgebasejs/cli 0.1.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.
Files changed (81) hide show
  1. package/dist/cli/src/cli.d.ts +3 -0
  2. package/dist/cli/src/cli.d.ts.map +1 -0
  3. package/dist/cli/src/cli.js +58 -0
  4. package/dist/cli/src/cli.js.map +1 -0
  5. package/dist/cli/src/commands/generate.d.ts +5 -0
  6. package/dist/cli/src/commands/generate.d.ts.map +1 -0
  7. package/dist/cli/src/commands/generate.js +89 -0
  8. package/dist/cli/src/commands/generate.js.map +1 -0
  9. package/dist/cli/src/commands/index.d.ts +4 -0
  10. package/dist/cli/src/commands/index.d.ts.map +1 -0
  11. package/dist/cli/src/commands/index.js +4 -0
  12. package/dist/cli/src/commands/index.js.map +1 -0
  13. package/dist/cli/src/commands/init.d.ts +5 -0
  14. package/dist/cli/src/commands/init.d.ts.map +1 -0
  15. package/dist/cli/src/commands/init.js +96 -0
  16. package/dist/cli/src/commands/init.js.map +1 -0
  17. package/dist/cli/src/commands/migrate.d.ts +5 -0
  18. package/dist/cli/src/commands/migrate.d.ts.map +1 -0
  19. package/dist/cli/src/commands/migrate.js +114 -0
  20. package/dist/cli/src/commands/migrate.js.map +1 -0
  21. package/dist/cli/src/generators/index.d.ts +4 -0
  22. package/dist/cli/src/generators/index.d.ts.map +1 -0
  23. package/dist/cli/src/generators/index.js +4 -0
  24. package/dist/cli/src/generators/index.js.map +1 -0
  25. package/dist/cli/src/generators/migration-generator.d.ts +16 -0
  26. package/dist/cli/src/generators/migration-generator.d.ts.map +1 -0
  27. package/dist/cli/src/generators/migration-generator.js +118 -0
  28. package/dist/cli/src/generators/migration-generator.js.map +1 -0
  29. package/dist/cli/src/generators/migration-sql-generator.d.ts +26 -0
  30. package/dist/cli/src/generators/migration-sql-generator.d.ts.map +1 -0
  31. package/dist/cli/src/generators/migration-sql-generator.js +253 -0
  32. package/dist/cli/src/generators/migration-sql-generator.js.map +1 -0
  33. package/dist/cli/src/generators/schema-loader.d.ts +22 -0
  34. package/dist/cli/src/generators/schema-loader.d.ts.map +1 -0
  35. package/dist/cli/src/generators/schema-loader.js +72 -0
  36. package/dist/cli/src/generators/schema-loader.js.map +1 -0
  37. package/dist/cli/src/generators/sdk-generator.d.ts +10 -0
  38. package/dist/cli/src/generators/sdk-generator.d.ts.map +1 -0
  39. package/dist/cli/src/generators/sdk-generator.js +185 -0
  40. package/dist/cli/src/generators/sdk-generator.js.map +1 -0
  41. package/dist/cli/src/generators/sdk-ts-generator.d.ts +6 -0
  42. package/dist/cli/src/generators/sdk-ts-generator.d.ts.map +1 -0
  43. package/dist/cli/src/generators/sdk-ts-generator.js +105 -0
  44. package/dist/cli/src/generators/sdk-ts-generator.js.map +1 -0
  45. package/dist/cli/src/index.d.ts +3 -0
  46. package/dist/cli/src/index.d.ts.map +1 -0
  47. package/dist/cli/src/index.js +3 -0
  48. package/dist/cli/src/index.js.map +1 -0
  49. package/dist/schema/src/builder/index.d.ts +3 -0
  50. package/dist/schema/src/builder/index.d.ts.map +1 -0
  51. package/dist/schema/src/builder/index.js +3 -0
  52. package/dist/schema/src/builder/index.js.map +1 -0
  53. package/dist/schema/src/builder/schema-builder.d.ts +54 -0
  54. package/dist/schema/src/builder/schema-builder.d.ts.map +1 -0
  55. package/dist/schema/src/builder/schema-builder.js +144 -0
  56. package/dist/schema/src/builder/schema-builder.js.map +1 -0
  57. package/dist/schema/src/index.d.ts +3 -0
  58. package/dist/schema/src/index.d.ts.map +1 -0
  59. package/dist/schema/src/index.js +3 -0
  60. package/dist/schema/src/index.js.map +1 -0
  61. package/dist/shared-types/src/admin.d.ts +101 -0
  62. package/dist/shared-types/src/admin.d.ts.map +1 -0
  63. package/dist/shared-types/src/admin.js +3 -0
  64. package/dist/shared-types/src/admin.js.map +1 -0
  65. package/dist/shared-types/src/auth.d.ts +27 -0
  66. package/dist/shared-types/src/auth.d.ts.map +1 -0
  67. package/dist/shared-types/src/auth.js +2 -0
  68. package/dist/shared-types/src/auth.js.map +1 -0
  69. package/dist/shared-types/src/index.d.ts +5 -0
  70. package/dist/shared-types/src/index.d.ts.map +1 -0
  71. package/dist/shared-types/src/index.js +5 -0
  72. package/dist/shared-types/src/index.js.map +1 -0
  73. package/dist/shared-types/src/schema.d.ts +34 -0
  74. package/dist/shared-types/src/schema.d.ts.map +1 -0
  75. package/dist/shared-types/src/schema.js +2 -0
  76. package/dist/shared-types/src/schema.js.map +1 -0
  77. package/dist/shared-types/src/sync.d.ts +37 -0
  78. package/dist/shared-types/src/sync.d.ts.map +1 -0
  79. package/dist/shared-types/src/sync.js +2 -0
  80. package/dist/shared-types/src/sync.js.map +1 -0
  81. package/package.json +31 -0
@@ -0,0 +1,105 @@
1
+ // Generate TypeScript SDK from schema
2
+ /**
3
+ * Convert FieldType to TypeScript type
4
+ */
5
+ function fieldTypeToTS(field) {
6
+ switch (field.type) {
7
+ case 'string':
8
+ return 'string';
9
+ case 'integer':
10
+ return 'number';
11
+ case 'number':
12
+ return 'number';
13
+ case 'boolean':
14
+ return 'boolean';
15
+ case 'timestamp':
16
+ return 'number';
17
+ case 'text':
18
+ return 'string';
19
+ case 'json':
20
+ return 'any';
21
+ case 'reference':
22
+ return 'string';
23
+ default:
24
+ return 'unknown';
25
+ }
26
+ }
27
+ /**
28
+ * Generate TypeScript entity type
29
+ */
30
+ function generateEntityType(entityName, entity) {
31
+ const lines = [];
32
+ lines.push(`export interface ${capitalize(entityName)} {`);
33
+ for (const [fieldName, field] of Object.entries(entity.fields)) {
34
+ const tsType = fieldTypeToTS(field);
35
+ const optional = !field.required && !field.primary ? '?' : '';
36
+ lines.push(` ${fieldName}${optional}: ${tsType};`);
37
+ }
38
+ lines.push('}');
39
+ lines.push('');
40
+ // Create input type (for mutations)
41
+ lines.push(`export interface Create${capitalize(entityName)}Input {`);
42
+ for (const [fieldName, field] of Object.entries(entity.fields)) {
43
+ // Skip generated fields
44
+ if (fieldName === 'id' || fieldName === 'createdAt' || fieldName === 'updatedAt') {
45
+ continue;
46
+ }
47
+ const tsType = fieldTypeToTS(field);
48
+ const optional = !field.required ? '?' : '';
49
+ lines.push(` ${fieldName}${optional}: ${tsType};`);
50
+ }
51
+ lines.push('}');
52
+ lines.push('');
53
+ // Create update type
54
+ lines.push(`export interface Update${capitalize(entityName)}Input {`);
55
+ for (const [fieldName, field] of Object.entries(entity.fields)) {
56
+ // Skip generated and primary fields
57
+ if (fieldName === 'id' || fieldName === 'createdAt' || fieldName === 'updatedAt') {
58
+ continue;
59
+ }
60
+ const tsType = fieldTypeToTS(field);
61
+ lines.push(` ${fieldName}?: ${tsType};`);
62
+ }
63
+ lines.push('}');
64
+ lines.push('');
65
+ return lines.join('\n');
66
+ }
67
+ /**
68
+ * Generate TypeScript SDK file
69
+ */
70
+ export function generateSDK(schema) {
71
+ const lines = [];
72
+ lines.push('// Auto-generated SDK types from schema');
73
+ lines.push('// DO NOT EDIT - regenerate with: npx edgebase generate');
74
+ lines.push('');
75
+ // Generate types for each entity
76
+ for (const [entityName, entity] of Object.entries(schema.entities)) {
77
+ lines.push(generateEntityType(entityName, entity));
78
+ }
79
+ // Generate hook types
80
+ lines.push('// Hook signatures (for reference, implement in platform-specific SDK)');
81
+ lines.push('');
82
+ for (const entityName of Object.keys(schema.entities)) {
83
+ const capitalized = capitalize(entityName);
84
+ lines.push(`// export function use${capitalized}(query?: any): {`);
85
+ lines.push(`// data: ${capitalized}[] | null;`);
86
+ lines.push(`// loading: boolean;`);
87
+ lines.push(`// error: Error | null;`);
88
+ lines.push(`// }`);
89
+ lines.push('');
90
+ lines.push(`// export function use${capitalized}Mutation(): {`);
91
+ lines.push(`// create: (data: Create${capitalized}Input) => Promise<${capitalized}>;`);
92
+ lines.push(`// update: (id: string, data: Update${capitalized}Input) => Promise<${capitalized}>;`);
93
+ lines.push(`// delete: (id: string) => Promise<void>;`);
94
+ lines.push(`// }`);
95
+ lines.push('');
96
+ }
97
+ return lines.join('\n');
98
+ }
99
+ /**
100
+ * Capitalize first letter
101
+ */
102
+ function capitalize(str) {
103
+ return str.charAt(0).toUpperCase() + str.slice(1);
104
+ }
105
+ //# sourceMappingURL=sdk-ts-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-ts-generator.js","sourceRoot":"","sources":["../../../../src/generators/sdk-ts-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './commands';
2
+ export * from './generators';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './commands/index.js';
2
+ export * from './generators/index.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './schema-builder';
2
+ export { defineSchema, string, integer, boolean, number, text, timestamp, json, reference, } from './schema-builder';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../schema/src/builder/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,YAAY,EACZ,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,GACV,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './schema-builder.js';
2
+ export { defineSchema, string, integer, boolean, number, text, timestamp, json, reference, } from './schema-builder.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../schema/src/builder/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,YAAY,EACZ,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,GACV,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { EntitySchema, FieldType, AccessRules, DatabaseSchema, FieldTypeValue } from '@edgebasejs/types';
2
+ /**
3
+ * Field type builder
4
+ */
5
+ export declare class FieldBuilder {
6
+ private config;
7
+ constructor(type: FieldTypeValue);
8
+ required(): this;
9
+ optional(): this;
10
+ primary(): this;
11
+ default(value: any): this;
12
+ reference(tableName: string): this;
13
+ build(): FieldType;
14
+ }
15
+ /**
16
+ * Field type creators
17
+ */
18
+ export declare function string(): FieldBuilder;
19
+ export declare function integer(): FieldBuilder;
20
+ export declare function boolean(): FieldBuilder;
21
+ export declare function number(): FieldBuilder;
22
+ export declare function text(): FieldBuilder;
23
+ export declare function timestamp(): FieldBuilder;
24
+ export declare function json(): FieldBuilder;
25
+ export declare function reference(tableName: string): FieldBuilder;
26
+ /**
27
+ * Entity builder
28
+ */
29
+ export declare class EntityBuilder {
30
+ private schema;
31
+ constructor();
32
+ field(name: string, builder: FieldBuilder): this;
33
+ accessRules(rules: AccessRules): this;
34
+ index(fields: string[], unique?: boolean): this;
35
+ build(): EntitySchema;
36
+ }
37
+ /**
38
+ * Schema definition builder
39
+ */
40
+ export declare class SchemaBuilder {
41
+ private schema;
42
+ constructor();
43
+ entity(name: string, builder: (builder: EntityBuilder) => void): this;
44
+ build(): DatabaseSchema;
45
+ }
46
+ /**
47
+ * Main API: defineSchema
48
+ */
49
+ export declare function defineSchema(fn: (builder: SchemaBuilder) => void): DatabaseSchema;
50
+ /**
51
+ * Validate schema
52
+ */
53
+ export declare function validateSchema(schema: DatabaseSchema): void;
54
+ //# sourceMappingURL=schema-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-builder.d.ts","sourceRoot":"","sources":["../../../../../schema/src/builder/schema-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,WAAW,EACX,cAAc,EACd,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAY;gBAEd,IAAI,EAAE,cAAc;IAOhC,QAAQ,IAAI,IAAI;IAKhB,QAAQ,IAAI,IAAI;IAKhB,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAKzB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKlC,KAAK,IAAI,SAAS;CAGnB;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,YAAY,CAErC;AAED,wBAAgB,OAAO,IAAI,YAAY,CAEtC;AAED,wBAAgB,OAAO,IAAI,YAAY,CAEtC;AAED,wBAAgB,MAAM,IAAI,YAAY,CAErC;AAED,wBAAgB,IAAI,IAAI,YAAY,CAEnC;AAED,wBAAgB,SAAS,IAAI,YAAY,CAExC;AAED,wBAAgB,IAAI,IAAI,YAAY,CAEnC;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAIzD;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;;IAQ7B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAKhD,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAKrC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,UAAQ,GAAG,IAAI;IAQ7C,KAAK,IAAI,YAAY;CAGtB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAiB;;IAQ/B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAOrE,KAAK,IAAI,cAAc;CAGxB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,cAAc,CAIjF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAuB3D"}
@@ -0,0 +1,144 @@
1
+ // Schema DSL builder for defining database entities
2
+ /**
3
+ * Field type builder
4
+ */
5
+ export class FieldBuilder {
6
+ constructor(type) {
7
+ this.config = {
8
+ type,
9
+ required: false,
10
+ };
11
+ }
12
+ required() {
13
+ this.config.required = true;
14
+ return this;
15
+ }
16
+ optional() {
17
+ this.config.required = false;
18
+ return this;
19
+ }
20
+ primary() {
21
+ this.config.primary = true;
22
+ this.config.required = true;
23
+ return this;
24
+ }
25
+ default(value) {
26
+ this.config.default = value;
27
+ return this;
28
+ }
29
+ reference(tableName) {
30
+ this.config.reference = tableName;
31
+ return this;
32
+ }
33
+ build() {
34
+ return this.config;
35
+ }
36
+ }
37
+ /**
38
+ * Field type creators
39
+ */
40
+ export function string() {
41
+ return new FieldBuilder('string');
42
+ }
43
+ export function integer() {
44
+ return new FieldBuilder('integer');
45
+ }
46
+ export function boolean() {
47
+ return new FieldBuilder('boolean');
48
+ }
49
+ export function number() {
50
+ return new FieldBuilder('number');
51
+ }
52
+ export function text() {
53
+ return new FieldBuilder('text');
54
+ }
55
+ export function timestamp() {
56
+ return new FieldBuilder('timestamp');
57
+ }
58
+ export function json() {
59
+ return new FieldBuilder('json');
60
+ }
61
+ export function reference(tableName) {
62
+ const builder = new FieldBuilder('reference');
63
+ builder.reference(tableName);
64
+ return builder;
65
+ }
66
+ /**
67
+ * Entity builder
68
+ */
69
+ export class EntityBuilder {
70
+ constructor() {
71
+ this.schema = {
72
+ fields: {},
73
+ };
74
+ }
75
+ field(name, builder) {
76
+ this.schema.fields[name] = builder.build();
77
+ return this;
78
+ }
79
+ accessRules(rules) {
80
+ this.schema.accessRules = rules;
81
+ return this;
82
+ }
83
+ index(fields, unique = false) {
84
+ if (!this.schema.indexes) {
85
+ this.schema.indexes = [];
86
+ }
87
+ this.schema.indexes.push({ fields, unique });
88
+ return this;
89
+ }
90
+ build() {
91
+ return this.schema;
92
+ }
93
+ }
94
+ /**
95
+ * Schema definition builder
96
+ */
97
+ export class SchemaBuilder {
98
+ constructor() {
99
+ this.schema = {
100
+ entities: {},
101
+ };
102
+ }
103
+ entity(name, builder) {
104
+ const entityBuilder = new EntityBuilder();
105
+ builder(entityBuilder);
106
+ this.schema.entities[name] = entityBuilder.build();
107
+ return this;
108
+ }
109
+ build() {
110
+ return this.schema;
111
+ }
112
+ }
113
+ /**
114
+ * Main API: defineSchema
115
+ */
116
+ export function defineSchema(fn) {
117
+ const builder = new SchemaBuilder();
118
+ fn(builder);
119
+ return builder.build();
120
+ }
121
+ /**
122
+ * Validate schema
123
+ */
124
+ export function validateSchema(schema) {
125
+ if (!schema.entities || Object.keys(schema.entities).length === 0) {
126
+ throw new Error('Schema must define at least one entity');
127
+ }
128
+ for (const [entityName, entity] of Object.entries(schema.entities)) {
129
+ // Check for primary key
130
+ const hasPrimaryKey = Object.values(entity.fields).some((f) => f.primary);
131
+ if (!hasPrimaryKey && entityName !== 'users' && entityName !== 'refresh_tokens') {
132
+ throw new Error(`Entity '${entityName}' must have a primary key field`);
133
+ }
134
+ // Validate field references
135
+ for (const [fieldName, field] of Object.entries(entity.fields)) {
136
+ if (field.reference) {
137
+ if (!schema.entities[field.reference] && field.reference !== 'users') {
138
+ throw new Error(`Field '${entityName}.${fieldName}' references unknown entity '${field.reference}'`);
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ //# sourceMappingURL=schema-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-builder.js","sourceRoot":"","sources":["../../../../../schema/src/builder/schema-builder.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAUpD;;GAEG;AACH,MAAM,OAAO,YAAY;IAGvB,YAAY,IAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI;YACJ,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,KAAU;QAChB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,SAAiB;QACzB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,IAAI;IAClB,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,IAAI;IAClB,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;IAC9C,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IAGxB;QACE,IAAI,CAAC,MAAM,GAAG;YACZ,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,OAAqB;QACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,KAAkB;QAC5B,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAgB,EAAE,MAAM,GAAG,KAAK;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IAGxB;QACE,IAAI,CAAC,MAAM,GAAG;YACZ,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,OAAyC;QAC5D,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAC1C,OAAO,CAAC,aAAa,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,EAAoC;IAC/D,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;IACpC,EAAE,CAAC,OAAO,CAAC,CAAC;IACZ,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,wBAAwB;QACxB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC,aAAa,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,gBAAgB,EAAE,CAAC;YAChF,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,iCAAiC,CAAC,CAAC;QAC1E,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;oBACrE,MAAM,IAAI,KAAK,CACb,UAAU,UAAU,IAAI,SAAS,gCAAgC,KAAK,CAAC,SAAS,GAAG,CACpF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './builder';
2
+ export { defineSchema, string, integer, boolean, number, text, timestamp, json, reference, } from './builder';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schema/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,GACV,MAAM,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './builder/index.js';
2
+ export { defineSchema, string, integer, boolean, number, text, timestamp, json, reference, } from './builder/index.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schema/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,GACV,MAAM,WAAW,CAAC"}
@@ -0,0 +1,101 @@
1
+ export type AdminRole = 'super_admin' | 'admin' | 'viewer';
2
+ export interface Admin {
3
+ id: string;
4
+ email: string;
5
+ role: AdminRole;
6
+ isActive: boolean;
7
+ createdAt: number;
8
+ updatedAt: number;
9
+ }
10
+ export interface AdminLoginRequest {
11
+ email: string;
12
+ password: string;
13
+ }
14
+ export interface AdminAuthResponse {
15
+ admin: Admin;
16
+ accessToken: string;
17
+ refreshToken: string;
18
+ expiresIn: number;
19
+ }
20
+ export interface PaginatedResponse<T> {
21
+ data: T[];
22
+ pagination: {
23
+ page: number;
24
+ pageSize: number;
25
+ total: number;
26
+ totalPages: number;
27
+ };
28
+ }
29
+ export type ActivityAction = 'create' | 'read' | 'update' | 'delete' | 'login' | 'logout';
30
+ export type ActivityEntityType = 'user' | 'admin' | 'system' | 'database';
31
+ export interface ActivityLogEntry {
32
+ id: string;
33
+ adminId: string;
34
+ adminEmail?: string;
35
+ action: ActivityAction;
36
+ entityType: ActivityEntityType;
37
+ entityId?: string;
38
+ details: Record<string, any>;
39
+ ipAddress: string;
40
+ createdAt: number;
41
+ }
42
+ export interface ActivityLogFilter {
43
+ adminId?: string;
44
+ entityType?: ActivityEntityType;
45
+ action?: ActivityAction;
46
+ dateFrom?: number;
47
+ dateTo?: number;
48
+ page?: number;
49
+ pageSize?: number;
50
+ }
51
+ export interface TableInfo {
52
+ name: string;
53
+ rowCount: number;
54
+ createdAt?: number;
55
+ }
56
+ export interface ColumnDefinition {
57
+ name: string;
58
+ type: string;
59
+ nullable: boolean;
60
+ primaryKey: boolean;
61
+ defaultValue?: any;
62
+ }
63
+ export interface TableSchema {
64
+ name: string;
65
+ columns: ColumnDefinition[];
66
+ primaryKey: string[];
67
+ createdAt?: number;
68
+ }
69
+ export interface TableDataResponse {
70
+ tableName: string;
71
+ data: Record<string, any>[];
72
+ columns: ColumnDefinition[];
73
+ pagination: {
74
+ page: number;
75
+ pageSize: number;
76
+ total: number;
77
+ totalPages: number;
78
+ };
79
+ }
80
+ export interface UserDetail extends Record<string, any> {
81
+ id: string;
82
+ email: string;
83
+ createdAt: number;
84
+ updatedAt: number;
85
+ }
86
+ export interface AdminCreateRequest {
87
+ email: string;
88
+ password: string;
89
+ role: AdminRole;
90
+ }
91
+ export interface AdminUpdateRequest {
92
+ email?: string;
93
+ role?: AdminRole;
94
+ isActive?: boolean;
95
+ }
96
+ export interface ErrorResponse {
97
+ code: string;
98
+ message: string;
99
+ details?: Record<string, any>;
100
+ }
101
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../shared-types/src/admin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // Admin Console Types
2
+ export {};
3
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../../shared-types/src/admin.ts"],"names":[],"mappings":"AAAA,sBAAsB"}
@@ -0,0 +1,27 @@
1
+ export interface User {
2
+ id: string;
3
+ email: string;
4
+ createdAt: number;
5
+ updatedAt: number;
6
+ }
7
+ export interface AuthTokens {
8
+ accessToken: string;
9
+ refreshToken: string;
10
+ expiresIn: number;
11
+ }
12
+ export interface LoginRequest {
13
+ email: string;
14
+ password: string;
15
+ }
16
+ export interface RegisterRequest {
17
+ email: string;
18
+ password: string;
19
+ }
20
+ export interface RefreshTokenRequest {
21
+ refreshToken: string;
22
+ }
23
+ export interface AuthResponse {
24
+ user: User;
25
+ tokens: AuthTokens;
26
+ }
27
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../shared-types/src/auth.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../shared-types/src/auth.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export * from './sync';
2
+ export * from './auth';
3
+ export * from './schema';
4
+ export * from './admin';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../shared-types/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './sync.js';
2
+ export * from './auth.js';
3
+ export * from './schema.js';
4
+ export * from './admin.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../shared-types/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,34 @@
1
+ export type FieldTypeValue = 'string' | 'integer' | 'number' | 'boolean' | 'timestamp' | 'text' | 'json' | 'reference';
2
+ export interface FieldType {
3
+ type: FieldTypeValue;
4
+ required: boolean;
5
+ primary?: boolean;
6
+ reference?: string;
7
+ default?: string | number | boolean;
8
+ description?: string;
9
+ }
10
+ export interface AccessRules {
11
+ create?: (user: any, data: any) => boolean;
12
+ read?: (user: any, data: any) => boolean;
13
+ update?: (user: any, existing: any, updates?: any) => boolean;
14
+ delete?: (user: any, data: any) => boolean;
15
+ }
16
+ export interface EntitySchema {
17
+ fields: Record<string, FieldType>;
18
+ accessRules?: AccessRules;
19
+ indexes?: Array<{
20
+ fields: string[];
21
+ unique?: boolean;
22
+ }>;
23
+ }
24
+ export interface DatabaseSchema {
25
+ entities: Record<string, EntitySchema>;
26
+ }
27
+ export interface Migration {
28
+ version: number;
29
+ name: string;
30
+ up: string;
31
+ down?: string;
32
+ appliedAt?: number;
33
+ }
34
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../shared-types/src/schema.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,SAAS,GACT,WAAW,GACX,MAAM,GACN,MAAM,GACN,WAAW,CAAC;AAEhB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC;IAC9D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../shared-types/src/schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ export interface SyncRequest {
2
+ lastSyncTimestamp: number | null;
3
+ changes: Array<{
4
+ entity: string;
5
+ operation: 'create' | 'update' | 'delete';
6
+ id: string;
7
+ data: Record<string, any>;
8
+ clientTimestamp: number;
9
+ version: number;
10
+ }>;
11
+ }
12
+ export interface SyncResponse {
13
+ serverTimestamp: number;
14
+ changes: Array<{
15
+ entity: string;
16
+ operation: 'create' | 'update' | 'delete';
17
+ id: string;
18
+ data: Record<string, any>;
19
+ serverTimestamp: number;
20
+ version: number;
21
+ }>;
22
+ conflicts: Array<{
23
+ entity: string;
24
+ id: string;
25
+ clientVersion: number;
26
+ serverVersion: number;
27
+ serverData: Record<string, any>;
28
+ }>;
29
+ errors: Array<{
30
+ entity: string;
31
+ id: string;
32
+ operation: string;
33
+ error: string;
34
+ code: 'ACCESS_DENIED' | 'VALIDATION_ERROR' | 'NOT_FOUND';
35
+ }>;
36
+ }
37
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../shared-types/src/sync.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,KAAK,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAC1C,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAC1C,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,SAAS,EAAE,KAAK,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACjC,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,eAAe,GAAG,kBAAkB,GAAG,WAAW,CAAC;KAC1D,CAAC,CAAC;CACJ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sync.js.map