Releases: Colossus-Services/bones_api
Releases · Colossus-Services/bones_api
v1.9.31
1.9.31
-
Bug fixes:
ConditionSQLEncoder.valueToParameterValue: fixed encoding of aListof values containingConditionParameters; each element is now resolved individually instead of passing the whole list to every element.ConditionEncoder.resolveValueToType: fixed resolution of a single-elementIterableto a primitive type (was a no-op comparison instead of an assignment, leaving the value as aList).MapGetterExtension.matchKeyIgnoreCase: fixed case-insensitive key matching that always returnednull(empty loop body); now returns the matching key. Also fixessetMultiValue(..., ignoreCase: true).Time:millisecond/microsecondrange validation now correctly rejects1000(valid range is0..999).Time._bytesInStringFormat: fixed the second-byte digit check that was effectively disabled (length < 2instead oflength >= 2).APISession.isExpired: now honors the providednowargument instead of always usingDateTime.now().APIServerResponseCachecached entry:replaceFileStatno longer compares a variable to itself (identical(myFileStat, myFileStat)), so the file stat is correctly replaced.WeakList.set: now increments the internal modification counter, consistent with the other mutating methods.
-
Tests:
- Added tests covering the bug fixes above (
Timerange/string parsing,matchKeyIgnoreCase/getIgnoreCase/setMultiValue,APISession.isExpired, andConditionSQLEncoder/ConditionEncodervalue resolution).
- Added tests covering the bug fixes above (
v1.9.30
v1.9.30
-
APIRootStarter:start:- Added logging of severe errors when
apiRoot.ensureInitialized()returns a failure with an error.
- Added logging of severe errors when
-
Project template:
update_project_template.sh:- Updated
project_template preparecommand to exclude IDE module files matching^\w+\.iml$from the template archive.
- Updated
-
Dependencies:
- Updated
build_runnerto ^2.15.0. - Updated
testto ^1.31.1. - Updated
vm_serviceto ^15.2.0.
- Updated
v1.9.29
-
ConditionID:- Added method
resolveIDValueto resolve the ID value from parameters orConditionParameter.
- Added method
-
DBEntityRepository:- Updated
selectIDsByand_selectByIDto useConditionID.resolveIDValuefor ID resolution. select:- Added optimization for
KeyConditionEQmatcher with a single key matching the entity ID field. - When matched, uses
_selectByIDto fetch the entity by ID and returns a single-element list or empty list accordingly.
- Added optimization for
- Updated
-
DBObjectDirectoryAdapter:- Updated
_doCountImpland_doDeleteImplto useConditionID.resolveIDValuefor ID resolution. - Updated public methods to pass combined parameters (
parameters ?? namedParameters) to internal implementations.
- Updated
-
DBObjectGCSAdapter:- Updated
_doCountImpland_doDeleteImplto useConditionID.resolveIDValuefor ID resolution. - Updated public methods to pass combined parameters (
parameters ?? namedParameters) to internal implementations.
- Updated
-
DBObjectMemoryAdapter:- Updated
_doCountImpland_doDeleteImplto useConditionID.resolveIDValuefor ID resolution. - Updated public methods to pass combined parameters (
parameters ?? namedParameters) to internal implementations.
- Updated
-
Dependency updates:
vm_service: ^15.0.2 → ^15.1.0
v1.9.28
-
SQLGenerator:- Fixed
referenceTableandreferenceColumnassignment in unique constraint SQL entries to allow nullable references. - Updated unique and enum constraint names in
generateAddUniqueConstraintAlterTableSQLandgenerateAddEnumConstraintAlterTableSQLto use normalized column names with double underscores for consistency.
- Fixed
-
Dependency updates:
async_extension: ^1.2.22reflection_factory: ^2.7.5swiss_knife: ^3.3.14meta: ^1.18.2hotreloader: ^4.4.0googleapis_auth: ^2.3.0build_runner: ^2.13.1test: ^1.31.0
v1.9.27
-
Added
bones_api_utils_fast_checksum.dart:- Provides functions
getAdler32Uint8List,getAdler32Hex,getCrc32Uint8List, andgetCrc32Hexfor Adler-32 and CRC-32 checksums as byte arrays and hex strings. - Implements internal helpers for big-endian byte conversion and hex encoding.
- Exports
getAdler32andgetCrc32fromarchivepackage for checksum calculation.
- Provides functions
-
WeakEtagclass (bones_api_base.dart):- Updated
WeakEtag.adler32andWeakEtag.crc32factories to usegetAdler32HexandgetCrc32Hexfrombones_api_utils_fast_checksum.dartinstead of deprecatedAdler32andCrc32classes.
- Updated
-
bones_api.dart:- Exported new
bones_api_utils_fast_checksum.dartutility.
- Exported new
-
Dependencies:
- Updated
async_extensionfrom ^1.2.20 to ^1.2.21. - Updated
swiss_knifefrom ^3.3.3 to ^3.3.5. - Updated
archivefrom ^4.0.7 to ^4.0.9. - Updated
build_runnerfrom ^2.10.5 to ^2.11.1. - docker_commander: ^2.1.8
- Updated
v1.9.26
Initializablemixin:ensureInitialized: addedonErrorhandler tothencall to route errors to_onInitializationError.executeInitializedCallback:- Added
onErrorhandler tothencall on async initialization result to throwInitializationErrorwith stack trace.
- Added
_FutureExtension:toCompleter: addedonErrorhandler tothento complete completer with error and stack trace if not completed.
v1.9.25
-
TableFieldReference:- Added nullable field
indexNameto represent the name of the index if one exists.
- Added nullable field
-
Added new class
TableRelationshipReferenceEntityTypedextendingTableRelationshipReference:- Adds
sourceFieldEntityTypeandtargetFieldEntityTypefields of typeTypeInfo. - Provides
copyWithEntityTypesmethod to create typed copies.
- Adds
-
TableRelationshipReference:- Added nullable fields
sourceRelationshipFieldIndexandtargetRelationshipFieldIndex. - Added
copyWithEntityTypesmethod returningTableRelationshipReferenceEntityTyped.
- Added nullable fields
-
EntityHandler:- Added
getFieldsListEntityTypesmethod to return a map of fields that are list entities or references with theirTypeInfo.
- Added
-
SQLDialect:- Added
foreignKeyCreatesImplicitIndexboolean flag with defaulttrue. - Added field
createIndexIfNotExiststo indicate support forIF NOT EXISTSinCREATE INDEX(defaulttrue).
- Added
-
CreateIndexSQL:- Updated
buildSQLmethod to conditionally includeIF NOT EXISTSonly if dialect supports it.
- Updated
-
DBPostgreSQLAdapter:- Added
foreignKeyCreatesImplicitIndexflag to PostgreSQL dialect set tofalse. - Updated
_findAllTableFieldsReferencesquery to include foreign key index name (fk_index_name) by joining withpg_indexandpg_class. - Populated
indexNameinTableFieldReferenceinstances from query result. - Updated relationship references to include
sourceRelationshipFieldIndexandtargetRelationshipFieldIndexfromindexName.
- Added
-
DBMySQLAdapter:- Set
createIndexIfNotExiststofalsein MySQL dialect capabilities.
- Set
-
DBSQLAdapter:parseConfigDBGenerateTablesAndCheckTables: changed return type fromList<bool>to a record with named fields(generateTables, checkTables).extractTableSQLs: updated regex to also matchCREATE INDEXstatements in addition toCREATEandALTER TABLE._populateTablesFromSQLsImpl: fixed error handling forCREATE INDEXstatements when the SQL dialect does not supportIF NOT EXISTS.- Now logs a warning and ignores the error instead of throwing.
- Added detection of missing foreign key indexes when dialect does not create implicit indexes.
- Added detection of missing relationship reference indexes for collection reference fields.
- Updated error reporting and logging to include missing reference indexes and relationship reference indexes.
- Updated
_checkDBTableSchemeReferenceFieldto returnTableRelationshipReferenceEntityTypedwith entity types. - Added generation of missing reference indexes and missing relationship reference indexes SQL statements.
- Updated
_DBTableCheckclass:- Added fields
missingReferenceIndexesandmissingRelationshipReferenceIndexes. - Added methods to generate missing reference indexes and relationship reference indexes SQL.
- Added fields
- Added
_DBRelationshipTableColumnsubclass of_DBTableColumnto represent relationship table columns with relationship table name. - Updated SQL generation to create indexes for foreign keys if dialect does not create implicit indexes:
- Added index creation after foreign key constraints in
generateAddColumnAlterTableSQL. - Added index creation for relationship table foreign keys in relationship table creation SQL.
- Added index creation after foreign key constraints in
-
Dependency updates:
async_extension: ^1.2.19 → ^1.2.20meta: ^1.18.0 → ^1.18.1
v1.9.24
-
GZipSink:- Added override for
addSliceto handle partial chunk addition and update_inputLengthaccordingly. - Optimized
addSliceto call_gzipSink.close()whenisLastis true and full chunk is added.
- Added override for
-
BytesSink:- Updated
addSliceto use newaddPartmethod for partial chunk addition.
- Updated
-
BytesBuffer:- Added
addPartmethod to add a slice of bytes from a given offset and length, resizing buffer if needed. - Refactored
addmethod to delegate toaddPart. - Improved buffer range setting to support offset and length parameters in
addPart.
- Added
-
async_extension: ^1.2.18 -> ^1.2.19
v1.9.23
v1.9.22
-
Initializablemixin:- Added calls to
_forceLogFlushMessages()before throwingInitializationErrorin:_checkDependency_setInitializedDependenciesCompleters_onInitializationError_checkAllDependenciesOk_finalizeInitializationcheckInitializedexecuteInitialized
- Added calls to
-
Logging:
- Added
_forceLogFlushMessages()function to calllogging.Logger.root.forceFlushMessages(). Loggerextension:- Added
forceFlushMessages()method to invokeLoggerHandler.forceFlushMessages().
- Added
LoggerHandlerabstract class:- Added
forceFlushMessages()method.
- Added
LoggerHandlerGenericimplementation:- Implemented
forceFlushMessages()returningfalse.
- Implemented
LoggerHandlerIOimplementation:- Implemented
forceFlushMessages()to flush the print message queue immediately if not empty.
- Implemented
- Added