v0.0.2-alpha.18
Pre-releaseReleased all 12 packages at 0.0.2-alpha.18 in lockstep (nextly, create-nextly-app, and 10 @nextlyhq/* packages).
What's changed
@nextlyhq/adapter-drizzle
Patch Changes
-
#55
de3ec7eThanks @faisal-rx! - Three related singles / API consistency fixes.REST responses for collections previously included both snake_case (
created_at,updated_at) and camelCase (createdAt,updatedAt) variants of the system timestamp fields. The conversion helper added the camelCase aliases but never removed the snake_case originals, so list and detail endpoints surfaced duplicate keys per row. The snake-to-camel conversion now lives in a single helper,convertTimestampsToCamelCase, exported fromshared/lib/case-conversion.tsnext to the existingkeysToCamelCase/keysToSnakeCaseutilities. Bothcollection-query-serviceand the singlesdeserializeJsonFieldspath call it directly. The previouswithTimestampAliaseswrapper and its re-export fromdomains/collections/index.tsare removed. Collections responses now match singles / media / users / api-keys / uploads, which already emitted the camelCase form only.The admin sidebar's singles list now renders every single in the project rather than capping at the
useSingles()default page size of 10.DynamicSingleNavdrives auseInfiniteQueryagainst the singles endpoint and walks subsequent pages whilemeta.hasNextis true. Each request is bounded to 100 rows so per-request DB load stays small. Secondary consumers that derive visibility or grouping data from the singles list (DualSidebar,DynamicCustomGroupNav,SinglesLandingRedirect) now pass an explicitpageSize: 100touseSingles, matching the pattern already used by the collections sidebar fetch. This stops the same truncation symptom from hiding section headers or misrouting the/admin/singleslanding redirect when the project has more than 10 singles.The
GET /admin/api/singleshandler now accepts a 1-basedpagequery parameter as an alternative tooffset. The admin UI's sharedbuildQueryhelper emitspagefor every paginated route; previously the singles endpoint read onlyoffset, so a page change in the Singles builder table left the offset at 0 and the same first page was returned for every navigation. When bothoffsetandpageare suppliedoffsetwins, preserving the existing external API contract.
@nextlyhq/adapter-mysql
Patch Changes
-
#55
de3ec7eThanks @faisal-rx! - Three related singles / API consistency fixes.REST responses for collections previously included both snake_case (
created_at,updated_at) and camelCase (createdAt,updatedAt) variants of the system timestamp fields. The conversion helper added the camelCase aliases but never removed the snake_case originals, so list and detail endpoints surfaced duplicate keys per row. The snake-to-camel conversion now lives in a single helper,convertTimestampsToCamelCase, exported fromshared/lib/case-conversion.tsnext to the existingkeysToCamelCase/keysToSnakeCaseutilities. Bothcollection-query-serviceand the singlesdeserializeJsonFieldspath call it directly. The previouswithTimestampAliaseswrapper and its re-export fromdomains/collections/index.tsare removed. Collections responses now match singles / media / users / api-keys / uploads, which already emitted the camelCase form only.The admin sidebar's singles list now renders every single in the project rather than capping at the
useSingles()default page size of 10.DynamicSingleNavdrives auseInfiniteQueryagainst the singles endpoint and walks subsequent pages whilemeta.hasNextis true. Each request is bounded to 100 rows so per-request DB load stays small. Secondary consumers that derive visibility or grouping data from the singles list (DualSidebar,DynamicCustomGroupNav,SinglesLandingRedirect) now pass an explicitpageSize: 100touseSingles, matching the pattern already used by the collections sidebar fetch. This stops the same truncation symptom from hiding section headers or misrouting the/admin/singleslanding redirect when the project has more than 10 singles.The
GET /admin/api/singleshandler now accepts a 1-basedpagequery parameter as an alternative tooffset. The admin UI's sharedbuildQueryhelper emitspagefor every paginated route; previously the singles endpoint read onlyoffset, so a page change in the Singles builder table left the offset at 0 and the same first page was returned for every navigation. When bothoffsetandpageare suppliedoffsetwins, preserving the existing external API contract. -
Updated dependencies [
de3ec7e]:- @nextlyhq/adapter-drizzle@0.0.2-alpha.18
@nextlyhq/adapter-postgres
Patch Changes
-
#55
de3ec7eThanks @faisal-rx! - Three related singles / API consistency fixes.REST responses for collections previously included both snake_case (
created_at,updated_at) and camelCase (createdAt,updatedAt) variants of the system timestamp fields. The conversion helper added the camelCase aliases but never removed the snake_case originals, so list and detail endpoints surfaced duplicate keys per row. The snake-to-camel conversion now lives in a single helper,convertTimestampsToCamelCase, exported fromshared/lib/case-conversion.tsnext to the existingkeysToCamelCase/keysToSnakeCaseutilities. Bothcollection-query-serviceand the singlesdeserializeJsonFieldspath call it directly. The previouswithTimestampAliaseswrapper and its re-export fromdomains/collections/index.tsare removed. Collections responses now match singles / media / users / api-keys / uploads, which already emitted the camelCase form only.The admin sidebar's singles list now renders every single in the project rather than capping at the
useSingles()default page size of 10.DynamicSingleNavdrives auseInfiniteQueryagainst the singles endpoint and walks subsequent pages whilemeta.hasNextis true. Each request is bounded to 100 rows so per-request DB load stays small. Secondary consumers that derive visibility or grouping data from the singles list (DualSidebar,DynamicCustomGroupNav,SinglesLandingRedirect) now pass an explicitpageSize: 100touseSingles, matching the pattern already used by the collections sidebar fetch. This stops the same truncation symptom from hiding section headers or misrouting the/admin/singleslanding redirect when the project has more than 10 singles.The
GET /admin/api/singleshandler now accepts a 1-basedpagequery parameter as an alternative tooffset. The admin UI's sharedbuildQueryhelper emitspagefor every paginated route; previously the singles endpoint read onlyoffset, so a page change in the Singles builder table left the offset at 0 and the same first page was returned for every navigation. When bothoffsetandpageare suppliedoffsetwins, preserving the existing external API contract. -
Updated dependencies [
de3ec7e]:- @nextlyhq/adapter-drizzle@0.0.2-alpha.18
@nextlyhq/adapter-sqlite
Patch Changes
-
#55
de3ec7eThanks @faisal-rx! - Three related singles / API consistency fixes.REST responses for collections previously included both snake_case (
created_at,updated_at) and camelCase (createdAt,updatedAt) variants of the system timestamp fields. The conversion helper added the camelCase aliases but never removed the snake_case originals, so list and detail endpoints surfaced duplicate keys per row. The snake-to-camel conversion now lives in a single helper,convertTimestampsToCamelCase, exported fromshared/lib/case-conversion.tsnext to the existingkeysToCamelCase/keysToSnakeCaseutilities. Bothcollection-query-serviceand the singlesdeserializeJsonFieldspath call it directly. The previouswithTimestampAliaseswrapper and its re-export fromdomains/collections/index.tsare removed. Collections responses now match singles / media / users / api-keys / uploads, which already emitted the camelCase form only.The admin sidebar's singles list now renders every single in the project rather than capping at the
useSingles()default page size of 10.DynamicSingleNavdrives auseInfiniteQueryagainst the singles endpoint and walks subsequent pages whilemeta.hasNextis true. Each request is bounded to 100 rows so per-request DB load stays small. Secondary consumers that derive visibility or grouping data from the singles list (DualSidebar,DynamicCustomGroupNav,SinglesLandingRedirect) now pass an explicitpageSize: 100touseSingles, matching the pattern already used by the collections sidebar fetch. This stops the same truncation symptom from hiding section headers or misrouting the/admin/singleslanding redirect when the project has more than 10 singles.The
GET /admin/api/singleshandler now accepts a 1-basedpagequery parameter as an alternative tooffset. The admin UI's sharedbuildQueryhelper emitspagefor every paginated route; previously the singles endpoint read onlyoffset, so a page change in the Singles builder table left the offset at 0 and the same first page was returned for every navigation. When bothoffsetandpageare suppliedoffsetwins, preserving the existing external API contract. -
Updated dependencies [
de3ec7e]:- @nextlyhq/adapter-drizzle@0.0.2-alpha.18
@nextlyhq/admin
Patch Changes
-
#55
de3ec7eThanks @faisal-rx! - Three related singles / API consistency fixes.REST responses for collections previously included both snake_case (
created_at,updated_at) and camelCase (createdAt,updatedAt) variants of the system timestamp fields. The conversion helper added the camelCase aliases but never removed the snake_case originals, so list and detail endpoints surfaced duplicate keys per row. The snake-to-camel conversion now lives in a single helper,convertTimestampsToCamelCase, exported fromshared/lib/case-conversion.tsnext to the existingkeysToCamelCase/keysToSnakeCaseutilities. Bothcollection-query-serviceand the singlesdeserializeJsonFieldspath call it directly. The previouswithTimestampAliaseswrapper and its re-export fromdomains/collections/index.tsare removed. Collections responses now match singles / media / users / api-keys / uploads, which already emitted the camelCase form only.The admin sidebar's singles list now renders every single in the project rather than capping at the
useSingles()default page size of 10.DynamicSingleNavdrives auseInfiniteQueryagainst the singles endpoint and walks subsequent pages whilemeta.hasNextis true. Each request is bounded to 100 rows so per-request DB load stays small. Secondary consumers that derive visibility or grouping data from the singles list (DualSidebar,DynamicCustomGroupNav,SinglesLandingRedirect) now pass an explicitpageSize: 100touseSingles, matching the pattern already used by the collections sidebar fetch. This stops the same truncation symptom from hiding section headers or misrouting the/admin/singleslanding redirect when the project has more than 10 singles.The
GET /admin/api/singleshandler now accepts a 1-basedpagequery parameter as an alternative tooffset. The admin UI's sharedbuildQueryhelper emitspagefor every paginated route; previously the singles endpoint read onlyoffset, so a page change in the Singles builder table left the offset at 0 and the same first page was returned for every navigation. When bothoffsetandpageare suppliedoffsetwins, preserving the existing external API contract. -
Updated dependencies [
de3ec7e]:- @nextlyhq/ui@0.0.2-alpha.18
create-nextly-app
Patch Changes
-
#55
de3ec7eThanks @faisal-rx! - Three related singles / API consistency fixes.REST responses for collections previously included both snake_case (
created_at,updated_at) and camelCase (createdAt,updatedAt) variants of the system timestamp fields. The conversion helper added the camelCase aliases but never removed the snake_case originals, so list and detail endpoints surfaced duplicate keys per row. The snake-to-camel conversion now lives in a single helper,convertTimestampsToCamelCase, exported fromshared/lib/case-conversion.tsnext to the existingkeysToCamelCase/keysToSnakeCaseutilities. Bothcollection-query-serviceand the singlesdeserializeJsonFieldspath call it directly. The previouswithTimestampAliaseswrapper and its re-export fromdomains/collections/index.tsare removed. Collections responses now match singles / media / users / api-keys / uploads, which already emitted the camelCase form only.The admin sidebar's singles list now renders every single in the project rather than capping at the
useSingles()default page size of 10.DynamicSingleNavdrives auseInfiniteQueryagainst the singles endpoint and walks subsequent pages whilemeta.hasNextis true. Each request is bounded to 100 rows so per-request DB load stays small. Secondary consumers that derive visibility or grouping data from the singles list (DualSidebar,DynamicCustomGroupNav,SinglesLandingRedirect) now pass an explicitpageSize: 100touseSingles, matching the pattern already used by the collections sidebar fetch. This stops the same truncation symptom from hiding section headers or misrouting the/admin/singleslanding redirect when the project has more than 10 singles.The
GET /admin/api/singleshandler now accepts a 1-basedpagequery parameter as an alternative tooffset. The admin UI's sharedbuildQueryhelper emitspagefor every paginated route; previously the singles endpoint read onlyoffset, so a page change in the Singles builder table left the offset at 0 and the same first page was returned for every navigation. When bothoffsetandpageare suppliedoffsetwins, preserving the existing external API contract.
nextly
Patch Changes
-
#55
de3ec7eThanks @faisal-rx! - Three related singles / API consistency fixes.REST responses for collections previously included both snake_case (
created_at,updated_at) and camelCase (createdAt,updatedAt) variants of the system timestamp fields. The conversion helper added the camelCase aliases but never removed the snake_case originals, so list and detail endpoints surfaced duplicate keys per row. The snake-to-camel conversion now lives in a single helper,convertTimestampsToCamelCase, exported fromshared/lib/case-conversion.tsnext to the existingkeysToCamelCase/keysToSnakeCaseutilities. Bothcollection-query-serviceand the singlesdeserializeJsonFieldspath call it directly. The previouswithTimestampAliaseswrapper and its re-export fromdomains/collections/index.tsare removed. Collections responses now match singles / media / users / api-keys / uploads, which already emitted the camelCase form only.The admin sidebar's singles list now renders every single in the project rather than capping at the
useSingles()default page size of 10.DynamicSingleNavdrives auseInfiniteQueryagainst the singles endpoint and walks subsequent pages whilemeta.hasNextis true. Each request is bounded to 100 rows so per-request DB load stays small. Secondary consumers that derive visibility or grouping data from the singles list (DualSidebar,DynamicCustomGroupNav,SinglesLandingRedirect) now pass an explicitpageSize: 100touseSingles, matching the pattern already used by the collections sidebar fetch. This stops the same truncation symptom from hiding section headers or misrouting the/admin/singleslanding redirect when the project has more than 10 singles.The
GET /admin/api/singleshandler now accepts a 1-basedpagequery parameter as an alternative tooffset. The admin UI's sharedbuildQueryhelper emitspagefor every paginated route; previously the singles endpoint read onlyoffset, so a page change in the Singles builder table left the offset at 0 and the same first page was returned for every navigation. When bothoffsetandpageare suppliedoffsetwins, preserving the existing external API contract. -
Updated dependencies [
de3ec7e]:- @nextlyhq/adapter-drizzle@0.0.2-alpha.18
- @nextlyhq/adapter-mysql@0.0.2-alpha.18
- @nextlyhq/adapter-postgres@0.0.2-alpha.18
- @nextlyhq/adapter-sqlite@0.0.2-alpha.18
@nextlyhq/plugin-form-builder
Patch Changes
-
#55
de3ec7eThanks @faisal-rx! - Three related singles / API consistency fixes.REST responses for collections previously included both snake_case (
created_at,updated_at) and camelCase (createdAt,updatedAt) variants of the system timestamp fields. The conversion helper added the camelCase aliases but never removed the snake_case originals, so list and detail endpoints surfaced duplicate keys per row. The snake-to-camel conversion now lives in a single helper,convertTimestampsToCamelCase, exported fromshared/lib/case-conversion.tsnext to the existingkeysToCamelCase/keysToSnakeCaseutilities. Bothcollection-query-serviceand the singlesdeserializeJsonFieldspath call it directly. The previouswithTimestampAliaseswrapper and its re-export fromdomains/collections/index.tsare removed. Collections responses now match singles / media / users / api-keys / uploads, which already emitted the camelCase form only.The admin sidebar's singles list now renders every single in the project rather than capping at the
useSingles()default page size of 10.DynamicSingleNavdrives auseInfiniteQueryagainst the singles endpoint and walks subsequent pages whilemeta.hasNextis true. Each request is bounded to 100 rows so per-request DB load stays small. Secondary consumers that derive visibility or grouping data from the singles list (DualSidebar,DynamicCustomGroupNav,SinglesLandingRedirect) now pass an explicitpageSize: 100touseSingles, matching the pattern already used by the collections sidebar fetch. This stops the same truncation symptom from hiding section headers or misrouting the/admin/singleslanding redirect when the project has more than 10 singles.The
GET /admin/api/singleshandler now accepts a 1-basedpagequery parameter as an alternative tooffset. The admin UI's sharedbuildQueryhelper emitspagefor every paginated route; previously the singles endpoint read onlyoffset, so a page change in the Singles builder table left the offset at 0 and the same first page was returned for every navigation. When bothoffsetandpageare suppliedoffsetwins, preserving the existing external API contract. -
Updated dependencies [
de3ec7e]:- @nextlyhq/admin@0.0.2-alpha.18
- nextly@0.0.2-alpha.18
- @nextlyhq/ui@0.0.2-alpha.18
@nextlyhq/storage-s3
Patch Changes
-
#55
de3ec7eThanks @faisal-rx! - Three related singles / API consistency fixes.REST responses for collections previously included both snake_case (
created_at,updated_at) and camelCase (createdAt,updatedAt) variants of the system timestamp fields. The conversion helper added the camelCase aliases but never removed the snake_case originals, so list and detail endpoints surfaced duplicate keys per row. The snake-to-camel conversion now lives in a single helper,convertTimestampsToCamelCase, exported fromshared/lib/case-conversion.tsnext to the existingkeysToCamelCase/keysToSnakeCaseutilities. Bothcollection-query-serviceand the singlesdeserializeJsonFieldspath call it directly. The previouswithTimestampAliaseswrapper and its re-export fromdomains/collections/index.tsare removed. Collections responses now match singles / media / users / api-keys / uploads, which already emitted the camelCase form only.The admin sidebar's singles list now renders every single in the project rather than capping at the
useSingles()default page size of 10.DynamicSingleNavdrives auseInfiniteQueryagainst the singles endpoint and walks subsequent pages whilemeta.hasNextis true. Each request is bounded to 100 rows so per-request DB load stays small. Secondary consumers that derive visibility or grouping data from the singles list (DualSidebar,DynamicCustomGroupNav,SinglesLandingRedirect) now pass an explicitpageSize: 100touseSingles, matching the pattern already used by the collections sidebar fetch. This stops the same truncation symptom from hiding section headers or misrouting the/admin/singleslanding redirect when the project has more than 10 singles.The
GET /admin/api/singleshandler now accepts a 1-basedpagequery parameter as an alternative tooffset. The admin UI's sharedbuildQueryhelper emitspagefor every paginated route; previously the singles endpoint read onlyoffset, so a page change in the Singles builder table left the offset at 0 and the same first page was returned for every navigation. When bothoffsetandpageare suppliedoffsetwins, preserving the existing external API contract.
@nextlyhq/storage-uploadthing
Patch Changes
-
#55
de3ec7eThanks @faisal-rx! - Three related singles / API consistency fixes.REST responses for collections previously included both snake_case (
created_at,updated_at) and camelCase (createdAt,updatedAt) variants of the system timestamp fields. The conversion helper added the camelCase aliases but never removed the snake_case originals, so list and detail endpoints surfaced duplicate keys per row. The snake-to-camel conversion now lives in a single helper,convertTimestampsToCamelCase, exported fromshared/lib/case-conversion.tsnext to the existingkeysToCamelCase/keysToSnakeCaseutilities. Bothcollection-query-serviceand the singlesdeserializeJsonFieldspath call it directly. The previouswithTimestampAliaseswrapper and its re-export fromdomains/collections/index.tsare removed. Collections responses now match singles / media / users / api-keys / uploads, which already emitted the camelCase form only.The admin sidebar's singles list now renders every single in the project rather than capping at the
useSingles()default page size of 10.DynamicSingleNavdrives auseInfiniteQueryagainst the singles endpoint and walks subsequent pages whilemeta.hasNextis true. Each request is bounded to 100 rows so per-request DB load stays small. Secondary consumers that derive visibility or grouping data from the singles list (DualSidebar,DynamicCustomGroupNav,SinglesLandingRedirect) now pass an explicitpageSize: 100touseSingles, matching the pattern already used by the collections sidebar fetch. This stops the same truncation symptom from hiding section headers or misrouting the/admin/singleslanding redirect when the project has more than 10 singles.The
GET /admin/api/singleshandler now accepts a 1-basedpagequery parameter as an alternative tooffset. The admin UI's sharedbuildQueryhelper emitspagefor every paginated route; previously the singles endpoint read onlyoffset, so a page change in the Singles builder table left the offset at 0 and the same first page was returned for every navigation. When bothoffsetandpageare suppliedoffsetwins, preserving the existing external API contract.
@nextlyhq/storage-vercel-blob
Patch Changes
-
#55
de3ec7eThanks @faisal-rx! - Three related singles / API consistency fixes.REST responses for collections previously included both snake_case (
created_at,updated_at) and camelCase (createdAt,updatedAt) variants of the system timestamp fields. The conversion helper added the camelCase aliases but never removed the snake_case originals, so list and detail endpoints surfaced duplicate keys per row. The snake-to-camel conversion now lives in a single helper,convertTimestampsToCamelCase, exported fromshared/lib/case-conversion.tsnext to the existingkeysToCamelCase/keysToSnakeCaseutilities. Bothcollection-query-serviceand the singlesdeserializeJsonFieldspath call it directly. The previouswithTimestampAliaseswrapper and its re-export fromdomains/collections/index.tsare removed. Collections responses now match singles / media / users / api-keys / uploads, which already emitted the camelCase form only.The admin sidebar's singles list now renders every single in the project rather than capping at the
useSingles()default page size of 10.DynamicSingleNavdrives auseInfiniteQueryagainst the singles endpoint and walks subsequent pages whilemeta.hasNextis true. Each request is bounded to 100 rows so per-request DB load stays small. Secondary consumers that derive visibility or grouping data from the singles list (DualSidebar,DynamicCustomGroupNav,SinglesLandingRedirect) now pass an explicitpageSize: 100touseSingles, matching the pattern already used by the collections sidebar fetch. This stops the same truncation symptom from hiding section headers or misrouting the/admin/singleslanding redirect when the project has more than 10 singles.The
GET /admin/api/singleshandler now accepts a 1-basedpagequery parameter as an alternative tooffset. The admin UI's sharedbuildQueryhelper emitspagefor every paginated route; previously the singles endpoint read onlyoffset, so a page change in the Singles builder table left the offset at 0 and the same first page was returned for every navigation. When bothoffsetandpageare suppliedoffsetwins, preserving the existing external API contract.
@nextlyhq/ui
Patch Changes
-
#55
de3ec7eThanks @faisal-rx! - Three related singles / API consistency fixes.REST responses for collections previously included both snake_case (
created_at,updated_at) and camelCase (createdAt,updatedAt) variants of the system timestamp fields. The conversion helper added the camelCase aliases but never removed the snake_case originals, so list and detail endpoints surfaced duplicate keys per row. The snake-to-camel conversion now lives in a single helper,convertTimestampsToCamelCase, exported fromshared/lib/case-conversion.tsnext to the existingkeysToCamelCase/keysToSnakeCaseutilities. Bothcollection-query-serviceand the singlesdeserializeJsonFieldspath call it directly. The previouswithTimestampAliaseswrapper and its re-export fromdomains/collections/index.tsare removed. Collections responses now match singles / media / users / api-keys / uploads, which already emitted the camelCase form only.The admin sidebar's singles list now renders every single in the project rather than capping at the
useSingles()default page size of 10.DynamicSingleNavdrives auseInfiniteQueryagainst the singles endpoint and walks subsequent pages whilemeta.hasNextis true. Each request is bounded to 100 rows so per-request DB load stays small. Secondary consumers that derive visibility or grouping data from the singles list (DualSidebar,DynamicCustomGroupNav,SinglesLandingRedirect) now pass an explicitpageSize: 100touseSingles, matching the pattern already used by the collections sidebar fetch. This stops the same truncation symptom from hiding section headers or misrouting the/admin/singleslanding redirect when the project has more than 10 singles.The
GET /admin/api/singleshandler now accepts a 1-basedpagequery parameter as an alternative tooffset. The admin UI's sharedbuildQueryhelper emitspagefor every paginated route; previously the singles endpoint read onlyoffset, so a page change in the Singles builder table left the offset at 0 and the same first page was returned for every navigation. When bothoffsetandpageare suppliedoffsetwins, preserving the existing external API contract.