Skip to content

Commit eb7a399

Browse files
Copilothotlong
andcommitted
fix: resolve CI build errors - SDK execute method, StateMachineConfig imports, and TypeScript strict type issues
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent cc020a4 commit eb7a399

11 files changed

Lines changed: 30 additions & 26 deletions

File tree

packages/drivers/sdk/src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -545,19 +545,19 @@ export class RemoteDriver implements Driver {
545545
* @example
546546
* ```typescript
547547
* // Execute a custom workflow
548-
* const result = await driver.execute('/api/workflows/approve', {
548+
* const result = await driver.executeCustomEndpoint('/api/workflows/approve', {
549549
* workflowId: 'wf_123',
550550
* comment: 'Approved'
551551
* });
552552
*
553553
* // Use default execute endpoint
554-
* const result = await driver.execute(undefined, {
554+
* const result = await driver.executeCustomEndpoint(undefined, {
555555
* action: 'calculateMetrics',
556556
* params: { year: 2024 }
557557
* });
558558
* ```
559559
*/
560-
async execute(endpoint?: string, payload?: any, _options?: any): Promise<any> {
560+
async executeCustomEndpoint(endpoint?: string, payload?: any, _options?: any): Promise<any> {
561561
return this.retryWithBackoff(async () => {
562562
const targetEndpoint = endpoint
563563
? this.buildEndpoint(endpoint)

packages/drivers/sdk/test/remote-driver.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -688,7 +688,7 @@ describe('RemoteDriver', () => {
688688
json: async () => mockResponse
689689
});
690690

691-
const result = await driver.execute('/api/custom', payload);
691+
const result = await driver.executeCustomEndpoint('/api/custom', payload);
692692

693693
expect(global.fetch).toHaveBeenCalledWith(
694694
'http://localhost:3000/api/custom',
@@ -708,7 +708,7 @@ describe('RemoteDriver', () => {
708708
json: async () => ({ success: true })
709709
});
710710

711-
await driver.execute(undefined, payload);
711+
await driver.executeCustomEndpoint(undefined, payload);
712712

713713
expect(global.fetch).toHaveBeenCalledWith(
714714
'http://localhost:3000/api/execute',
@@ -729,7 +729,7 @@ describe('RemoteDriver', () => {
729729
})
730730
});
731731

732-
await expect(driver.execute('/api/test', {}))
732+
await expect(driver.executeCustomEndpoint('/api/test', {}))
733733
.rejects
734734
.toThrow('Server error');
735735
});

packages/foundation/core/src/query/query-analyzer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ export class QueryAnalyzer {
271271
* @private
272272
*/
273273
private getSchema(objectName: string): ObjectConfig {
274-
const obj = this.metadata.get('object', objectName);
274+
const obj = this.metadata.get<ObjectConfig>('object', objectName);
275275
if (!obj) {
276276
throw new ObjectQLError({ code: 'NOT_FOUND', message: `Object '${objectName}' not found` });
277277
}

packages/foundation/core/src/query/query-service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ export class QueryService {
132132
* @private
133133
*/
134134
private getSchema(objectName: string): ObjectConfig {
135-
const obj = this.metadata.get('object', objectName);
135+
const obj = this.metadata.get<ObjectConfig>('object', objectName);
136136
if (!obj) {
137137
throw new ObjectQLError({ code: 'NOT_FOUND', message: `Object '${objectName}' not found in metadata` });
138138
}

packages/foundation/core/src/repository.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export class ObjectRepository {
2828
}
2929

3030
private getKernel(): ObjectKernel {
31-
return this.app.getKernel();
31+
return this.app.getKernel() as ObjectKernel;
3232
}
3333

3434
private getOptions(extra: Record<string, unknown> = {}) {

packages/foundation/platform-node/src/loader.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export class ObjectLoader {
4444
// Object name does not match filename — using doc.name
4545
}
4646

47-
const packageEntry = ctx.registry.getEntry('package-map', ctx.file);
47+
const packageEntry = ctx.registry.getEntry<{ package?: string }>('package-map', ctx.file);
4848
registerObject(ctx.registry, doc, ctx.file, ctx.packageName || (packageEntry && packageEntry.package));
4949
return;
5050
}
@@ -295,7 +295,7 @@ function registerObject(registry: MetadataRegistry, obj: any, file: string, pack
295295
// --- End Smart Defaults ---
296296

297297
// Check for existing object to Merge
298-
const existing = registry.getEntry('object', obj.name);
298+
const existing = registry.getEntry<{ content?: ObjectConfig }>('object', obj.name);
299299
if (existing) {
300300
const base = existing.content as ObjectConfig;
301301

packages/foundation/plugin-security/src/storage-database.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ export class DatabasePermissionStorage implements IPermissionStorage {
120120
});
121121
const row = Array.isArray(rows) ? rows[0] : undefined;
122122
if (!row) return undefined;
123-
return JSON.parse(row.config) as PermissionConfig;
123+
return JSON.parse((row as Record<string, unknown>).config as string) as PermissionConfig;
124124
} catch {
125125
return undefined;
126126
}
@@ -134,8 +134,9 @@ export class DatabasePermissionStorage implements IPermissionStorage {
134134
const items = Array.isArray(rows) ? rows : [];
135135
for (const row of items) {
136136
try {
137-
const config = JSON.parse(row.config) as PermissionConfig;
138-
result.set(row.object_name, config);
137+
const rowData = row as Record<string, unknown>;
138+
const config = JSON.parse(rowData.config as string) as PermissionConfig;
139+
result.set(rowData.object_name as string, config);
139140
} catch {
140141
// Skip rows with corrupt JSON
141142
}
@@ -154,8 +155,9 @@ export class DatabasePermissionStorage implements IPermissionStorage {
154155
// Create a shallow copy to avoid issues when deleting during iteration
155156
const items = Array.isArray(rows) ? [...rows] : [];
156157
for (const row of items) {
157-
if (row._id || row.id || row.object_name) {
158-
await driver.delete(this.tableName, row._id ?? row.id ?? row.object_name, {});
158+
const rowData = row as Record<string, unknown>;
159+
if (rowData._id || rowData.id || rowData.object_name) {
160+
await driver.delete(this.tableName, (rowData._id ?? rowData.id ?? rowData.object_name) as string | number, {});
159161
}
160162
}
161163
} catch {
@@ -187,8 +189,9 @@ export class DatabasePermissionStorage implements IPermissionStorage {
187189
});
188190
const row = Array.isArray(rows) ? rows[0] : undefined;
189191
if (row) {
190-
const id = row._id ?? row.id ?? row.object_name;
191-
await driver.update(this.tableName, id, {
192+
const rowData = row as Record<string, unknown>;
193+
const id = rowData._id ?? rowData.id ?? rowData.object_name;
194+
await driver.update(this.tableName, id as string | number, {
192195
config: JSON.stringify(config),
193196
updated_at: new Date().toISOString(),
194197
}, {});
@@ -214,8 +217,9 @@ export class DatabasePermissionStorage implements IPermissionStorage {
214217
});
215218
const row = Array.isArray(rows) ? rows[0] : undefined;
216219
if (row) {
217-
const id = row._id ?? row.id ?? row.object_name;
218-
await driver.delete(this.tableName, id, {});
220+
const rowData = row as Record<string, unknown>;
221+
const id = rowData._id ?? rowData.id ?? rowData.object_name;
222+
await driver.delete(this.tableName, id as string | number, {});
219223
}
220224
} catch {
221225
// Row may not exist

packages/foundation/plugin-validator/src/validator.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ export class Validator {
364364
}
365365

366366
// Check if transition is allowed
367-
const transitions = rule.transitions?.[oldState];
367+
const transitions = rule.transitions?.[oldState as string];
368368
if (!transitions) {
369369
return {
370370
rule: rule.name,
@@ -384,7 +384,7 @@ export class Validator {
384384
allowedNext = transitions.allowed_next || [];
385385
}
386386

387-
const isAllowed = allowedNext.includes(newState);
387+
const isAllowed = allowedNext.includes(newState as string);
388388

389389
return {
390390
rule: rule.name,
@@ -480,7 +480,7 @@ export class Validator {
480480

481481
try {
482482
// Query database to count existing records with same field values
483-
const count = await context.api.count(objectName, filters);
483+
const count = await (context.api as { count: (obj: string, filters: Record<string, unknown>) => Promise<number> }).count(objectName, filters);
484484

485485
const valid = count === 0;
486486

packages/foundation/plugin-workflow/__tests__/workflow-plugin.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import { describe, it, expect, beforeEach } from 'vitest';
1010
import { WorkflowPlugin } from '../src/workflow-plugin';
11-
import type { _StateMachineConfig } from '@objectql/types';
11+
import type { StateMachineConfig } from '@objectql/types';
1212

1313
describe('WorkflowPlugin', () => {
1414
let plugin: WorkflowPlugin;

packages/foundation/plugin-workflow/src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* These complement the protocol types from @objectql/types
1212
*/
1313

14-
import type { _StateMachineConfig } from '@objectql/types';
14+
import type { StateMachineConfig } from '@objectql/types';
1515

1616
/**
1717
* Execution context for state machine operations

0 commit comments

Comments
 (0)