✅ COMPLETED: 1. Dockerfile uses port 80 (astro preview) 2. BaseLayout imports globals.css 3. globals.css with Tailwind v4 @theme syntax 4. index.astro has Header, Footer, FixedContact 5. All image references fixed to existing files 6. Hero uses hdpe_pipe_main.jpg 7. Product cards use hdpe001.jpg 8. pt-20 on main for fixed header ✅ TESTED LOCALLY: - Build: 15 pages in 1.27s - Docker build successful - Port 80 working - Images load - CSS works Ready for Easypanel deployment.
19 lines
1.4 KiB
TypeScript
19 lines
1.4 KiB
TypeScript
import type { TypedQueryBuilder } from "../query-builders/query-builder.js";
|
|
import type { AddAliasToSelection } from "../query-builders/select.types.js";
|
|
import type { ColumnsSelection, SQL } from "../sql/sql.js";
|
|
import type { Subquery, WithSubquery, WithSubqueryWithoutSelection } from "../subquery.js";
|
|
import type { QueryBuilder } from "./query-builders/query-builder.js";
|
|
export type SubqueryWithSelection<TSelection extends ColumnsSelection, TAlias extends string> = Subquery<TAlias, AddAliasToSelection<TSelection, TAlias, 'mysql'>> & AddAliasToSelection<TSelection, TAlias, 'mysql'>;
|
|
export type WithSubqueryWithSelection<TSelection extends ColumnsSelection, TAlias extends string> = WithSubquery<TAlias, AddAliasToSelection<TSelection, TAlias, 'mysql'>> & AddAliasToSelection<TSelection, TAlias, 'mysql'>;
|
|
export interface WithBuilder {
|
|
<TAlias extends string>(alias: TAlias): {
|
|
as: {
|
|
<TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>)): WithSubqueryWithSelection<TSelection, TAlias>;
|
|
(qb: TypedQueryBuilder<undefined> | ((qb: QueryBuilder) => TypedQueryBuilder<undefined>)): WithSubqueryWithoutSelection<TAlias>;
|
|
};
|
|
};
|
|
<TAlias extends string, TSelection extends ColumnsSelection>(alias: TAlias, selection: TSelection): {
|
|
as: (qb: SQL | ((qb: QueryBuilder) => SQL)) => WithSubqueryWithSelection<TSelection, TAlias>;
|
|
};
|
|
}
|