@proteinjs/db 1.0.29 → 1.1.1

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.
@@ -9,44 +9,47 @@ import '@proteinjs/util';
9
9
  import 'moment';
10
10
  import 'uuid';
11
11
 
12
+
12
13
  /** Generate Source Graph */
13
14
 
14
- const sourceGraph =
15
- '{"options":{"directed":true,"multigraph":false,"compound":false},"nodes":[{"v":"@proteinjs/db/DbDriverStatementConfig","value":{"packageName":"@proteinjs/db","name":"DbDriverStatementConfig","filePath":"/home/runner/work/db/db/packages/db/src/Db.ts","qualifiedName":"@proteinjs/db/DbDriverStatementConfig","typeParameters":[],"directParents":[{"packageName":"@proteinjs/db-query","name":"ParameterizationConfig","filePath":null,"qualifiedName":"@proteinjs/db-query/ParameterizationConfig","typeParameters":[],"directParents":null},{"packageName":"@proteinjs/db","name":"{\\n prefixTablesWithDb?: boolean;\\n getColumnType?: (tableName: string, columnPropertyName: string) => string;\\n}","filePath":null,"qualifiedName":"@proteinjs/db/{\\n prefixTablesWithDb?: boolean;\\n getColumnType?: (tableName: string, columnPropertyName: string) => string;\\n}","typeParameters":[],"directParents":null}],"sourceType":1}},{"v":"@proteinjs/db-query/ParameterizationConfig"},{"v":"@proteinjs/db/DefaultDbDriverFactory","value":{"packageName":"@proteinjs/db","name":"DefaultDbDriverFactory","filePath":"/home/runner/work/db/db/packages/db/src/Db.ts","qualifiedName":"@proteinjs/db/DefaultDbDriverFactory","properties":[],"methods":[{"name":"getDbDriver","returnType":{"packageName":"@proteinjs/db","name":"DbDriver","filePath":null,"qualifiedName":"@proteinjs/db/DbDriver","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[]}],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/reflection","name":"Loadable","filePath":null,"qualifiedName":"@proteinjs/reflection/Loadable","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/reflection/Loadable"},{"v":"@proteinjs/db/Db","value":{"packageName":"@proteinjs/db","name":"Db","filePath":"/home/runner/work/db/db/packages/db/src/Db.ts","qualifiedName":"@proteinjs/db/Db","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"defaultDbDriver","type":{"packageName":"@proteinjs/db","name":"DbDriver","filePath":null,"qualifiedName":"@proteinjs/db/DbDriver","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":true,"visibility":"private"},{"name":"dbDriver","type":{"packageName":"@proteinjs/db","name":"DbDriver","filePath":null,"qualifiedName":"@proteinjs/db/DbDriver","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private"},{"name":"logger","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private"},{"name":"statementConfigFactory","type":{"packageName":"@proteinjs/db","name":"StatementConfigFactory","filePath":null,"qualifiedName":"@proteinjs/db/StatementConfigFactory","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private"},{"name":"auth","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private"},{"name":"serviceMetadata","type":{"packageName":"","name":"Service[\'serviceMetadata\']","filePath":null,"qualifiedName":"/Service[\'serviceMetadata\']","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"runAsSystem","type":{"packageName":"","name":"boolean","filePath":null,"qualifiedName":"/boolean","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private"}],"methods":[{"name":"getDefaultDbDriver","returnType":{"packageName":"@proteinjs/db","name":"DbDriver","filePath":null,"qualifiedName":"@proteinjs/db/DbDriver","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[]},{"name":"init","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[]},{"name":"tableExists","returnType":{"packageName":"","name":"Promise<boolean>","filePath":null,"qualifiedName":"/Promise<boolean>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}}]},{"name":"get","returnType":{"packageName":"","name":"Promise<T>","filePath":null,"qualifiedName":"/Promise<T>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"query","type":{"packageName":"","name":"Query<T>","filePath":null,"qualifiedName":"/Query<T>","typeParameters":null,"directParents":null}}]},{"name":"insert","returnType":{"packageName":"","name":"Promise<T>","filePath":null,"qualifiedName":"/Promise<T>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"record","type":{"packageName":"","name":"Omit<T, keyof R>","filePath":null,"qualifiedName":"/Omit<T, keyof R>","typeParameters":null,"directParents":null}}]},{"name":"addDefaultFieldValues","returnType":null,"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"record","type":{"packageName":"","name":"any","filePath":null,"qualifiedName":"/any","typeParameters":null,"directParents":null}}]},{"name":"update","returnType":{"packageName":"","name":"Promise<number>","filePath":null,"qualifiedName":"/Promise<number>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"record","type":{"packageName":"","name":"Partial<T>","filePath":null,"qualifiedName":"/Partial<T>","typeParameters":null,"directParents":null}},{"name":"query","type":{"packageName":"","name":"Query<T>","filePath":null,"qualifiedName":"/Query<T>","typeParameters":null,"directParents":null}}]},{"name":"addUpdateFieldValues","returnType":null,"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"record","type":{"packageName":"","name":"any","filePath":null,"qualifiedName":"/any","typeParameters":null,"directParents":null}}]},{"name":"delete","returnType":{"packageName":"","name":"Promise<number>","filePath":null,"qualifiedName":"/Promise<number>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"query","type":{"packageName":"","name":"Query<T>","filePath":null,"qualifiedName":"/Query<T>","typeParameters":null,"directParents":null}}]},{"name":"beforeDelete","returnType":null,"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[{"name":"table","type":{"packageName":"","name":"Table<any>","filePath":null,"qualifiedName":"/Table<any>","typeParameters":null,"directParents":null}},{"name":"recordsToDelete","type":{"packageName":"","name":"Record[]","filePath":null,"qualifiedName":"/Record[]","typeParameters":null,"directParents":null}}]},{"name":"cascadeDeletions","returnType":null,"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[{"name":"table","type":{"packageName":"","name":"Table<any>","filePath":null,"qualifiedName":"/Table<any>","typeParameters":null,"directParents":null}},{"name":"deletedRecordIds","type":{"packageName":"","name":"string[]","filePath":null,"qualifiedName":"/string[]","typeParameters":null,"directParents":null}}]},{"name":"query","returnType":{"packageName":"","name":"Promise<T[]>","filePath":null,"qualifiedName":"/Promise<T[]>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"query","type":{"packageName":"","name":"Query<T>","filePath":null,"qualifiedName":"/Query<T>","typeParameters":null,"directParents":null}}]},{"name":"getRowCount","returnType":{"packageName":"","name":"Promise<number>","filePath":null,"qualifiedName":"/Promise<number>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"query","type":{"packageName":"","name":"Query<T>","filePath":null,"qualifiedName":"/Query<T>","typeParameters":null,"directParents":null}}]},{"name":"addColumnQueries","returnType":null,"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"qb","type":{"packageName":"","name":"QueryBuilder<T>","filePath":null,"qualifiedName":"/QueryBuilder<T>","typeParameters":null,"directParents":null}}]}],"typeParameters":["/R extends Record = Record"],"directParentInterfaces":[{"packageName":"@proteinjs/db","name":"DbService","filePath":null,"qualifiedName":"@proteinjs/db/DbService","properties":[],"methods":[],"typeParameters":["/R"],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/db/DbService","value":{"packageName":"@proteinjs/db","name":"DbService","filePath":"/home/runner/work/db/db/packages/db/src/services/DbService.ts","qualifiedName":"@proteinjs/db/DbService","properties":[],"methods":[{"name":"tableExists","returnType":{"packageName":"","name":"Promise<boolean>","filePath":null,"qualifiedName":"/Promise<boolean>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}}]},{"name":"get","returnType":{"packageName":"","name":"Promise<T>","filePath":null,"qualifiedName":"/Promise<T>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"query","type":{"packageName":"","name":"Query<T>","filePath":null,"qualifiedName":"/Query<T>","typeParameters":null,"directParents":null}}]},{"name":"insert","returnType":{"packageName":"","name":"Promise<T>","filePath":null,"qualifiedName":"/Promise<T>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"record","type":{"packageName":"","name":"Omit<T, keyof R>","filePath":null,"qualifiedName":"/Omit<T, keyof R>","typeParameters":null,"directParents":null}}]},{"name":"update","returnType":{"packageName":"","name":"Promise<number>","filePath":null,"qualifiedName":"/Promise<number>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"record","type":{"packageName":"","name":"Partial<T>","filePath":null,"qualifiedName":"/Partial<T>","typeParameters":null,"directParents":null}},{"name":"query","type":{"packageName":"","name":"Query<T>","filePath":null,"qualifiedName":"/Query<T>","typeParameters":null,"directParents":null}}]},{"name":"delete","returnType":{"packageName":"","name":"Promise<number>","filePath":null,"qualifiedName":"/Promise<number>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"query","type":{"packageName":"","name":"Query<T>","filePath":null,"qualifiedName":"/Query<T>","typeParameters":null,"directParents":null}}]},{"name":"query","returnType":{"packageName":"","name":"Promise<T[]>","filePath":null,"qualifiedName":"/Promise<T[]>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"query","type":{"packageName":"","name":"Query<T>","filePath":null,"qualifiedName":"/Query<T>","typeParameters":null,"directParents":null}}]},{"name":"getRowCount","returnType":{"packageName":"","name":"Promise<number>","filePath":null,"qualifiedName":"/Promise<number>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<T>","filePath":null,"qualifiedName":"/Table<T>","typeParameters":null,"directParents":null}},{"name":"query","type":{"packageName":"","name":"Query<T>","filePath":null,"qualifiedName":"/Query<T>","typeParameters":null,"directParents":null}}]}],"typeParameters":["/R extends Record = Record"],"directParents":[{"packageName":"@proteinjs/service","name":"Service","filePath":null,"qualifiedName":"@proteinjs/service/Service","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"@proteinjs/db/MigrationRunner","value":{"packageName":"@proteinjs/db","name":"MigrationRunner","filePath":"/home/runner/work/db/db/packages/db/src/MigrationRunner.ts","qualifiedName":"@proteinjs/db/MigrationRunner","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"logger","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private"},{"name":"serviceMetadata","type":{"packageName":"","name":"Service[\'serviceMetadata\']","filePath":null,"qualifiedName":"/Service[\'serviceMetadata\']","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[{"name":"runMigration","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"id","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]},{"name":"duration","returnType":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[{"name":"start","type":{"packageName":"@proteinjs/db","name":"Moment","filePath":null,"qualifiedName":"@proteinjs/db/Moment","typeParameters":null,"directParents":null}},{"name":"end","type":{"packageName":"@proteinjs/db","name":"Moment","filePath":null,"qualifiedName":"@proteinjs/db/Moment","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParentInterfaces":[{"packageName":"@proteinjs/db","name":"MigrationRunnerService","filePath":null,"qualifiedName":"@proteinjs/db/MigrationRunnerService","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/db/MigrationRunnerService","value":{"packageName":"@proteinjs/db","name":"MigrationRunnerService","filePath":"/home/runner/work/db/db/packages/db/src/services/MigrationRunnerService.ts","qualifiedName":"@proteinjs/db/MigrationRunnerService","properties":[],"methods":[{"name":"runMigration","returnType":{"packageName":"","name":"Promise<void>","filePath":null,"qualifiedName":"/Promise<void>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":true,"isStatic":false,"visibility":"public","parameters":[{"name":"id","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParents":[{"packageName":"@proteinjs/service","name":"Service","filePath":null,"qualifiedName":"@proteinjs/service/Service","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"sourceType":3}},{"v":"/AsyncIterable"},{"v":"@proteinjs/db/Table","value":{"packageName":"@proteinjs/db","name":"Table","filePath":"/home/runner/work/db/db/packages/db/src/Table.ts","qualifiedName":"@proteinjs/db/Table","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"__serializerId","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"name","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"columns","type":{"packageName":"","name":"Columns<T>","filePath":null,"qualifiedName":"/Columns<T>","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"indexes","type":{"packageName":"@proteinjs/db","name":"{ columns: (keyof T)[]; name?: string }[]","filePath":null,"qualifiedName":"@proteinjs/db/{ columns: (keyof T)[]; name?: string }[]","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"cascadeDeleteReferences","type":{"packageName":"","name":"() => { table: string; referenceColumn: string }[]","filePath":null,"qualifiedName":"/() => { table: string; referenceColumn: string }[]","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"sourceRecordOptions","type":{"packageName":"@proteinjs/db","name":"SourceRecordOptions","filePath":null,"qualifiedName":"@proteinjs/db/SourceRecordOptions","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"auth","type":{"packageName":"@proteinjs/db","name":"{\\n db?: TableOperationsAuth;\\n service?: TableOperationsAuth;\\n ui?: {\\n recordTable?: Identity;\\n recordForm?: Identity;\\n };\\n }","filePath":null,"qualifiedName":"@proteinjs/db/{\\n db?: TableOperationsAuth;\\n service?: TableOperationsAuth;\\n ui?: {\\n recordTable?: Identity;\\n recordForm?: Identity;\\n };\\n }","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[],"typeParameters":["/T extends Record"],"directParentInterfaces":[{"packageName":"@proteinjs/reflection","name":"Loadable","filePath":null,"qualifiedName":"@proteinjs/reflection/Loadable","properties":[],"methods":[],"typeParameters":[],"directParents":[]},{"packageName":"@proteinjs/serializer","name":"CustomSerializableObject","filePath":null,"qualifiedName":"@proteinjs/serializer/CustomSerializableObject","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/serializer/CustomSerializableObject"},{"v":"/\'public\' | \'authenticated\' | string[]"},{"v":"@proteinjs/db/Reference","value":{"packageName":"@proteinjs/db","name":"Reference","filePath":"/home/runner/work/db/db/packages/db/src/reference/Reference.ts","qualifiedName":"@proteinjs/db/Reference","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"__serializerId","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"_table","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"_id","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"_object","type":{"packageName":"","name":"T","filePath":null,"qualifiedName":"/T","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[{"name":"fromObject","returnType":null,"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":true,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}},{"name":"object","type":{"packageName":"","name":"T | (Partial<T> & { id: string })","filePath":null,"qualifiedName":"/T | (Partial<T> & { id: string })","typeParameters":null,"directParents":null}}]},{"name":"get","returnType":{"packageName":"","name":"Promise<T | undefined>","filePath":null,"qualifiedName":"/Promise<T | undefined>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[]},{"name":"set","returnType":null,"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"object","type":{"packageName":"","name":"T","filePath":null,"qualifiedName":"/T","typeParameters":null,"directParents":null}}]}],"typeParameters":["/T extends Record"],"directParentInterfaces":[{"packageName":"@proteinjs/serializer","name":"CustomSerializableObject","filePath":null,"qualifiedName":"@proteinjs/serializer/CustomSerializableObject","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/db/ReferenceArray","value":{"packageName":"@proteinjs/db","name":"ReferenceArray","filePath":"/home/runner/work/db/db/packages/db/src/reference/ReferenceArray.ts","qualifiedName":"@proteinjs/db/ReferenceArray","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"__serializerId","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"_table","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"_ids","type":{"packageName":"","name":"string[]","filePath":null,"qualifiedName":"/string[]","typeParameters":null,"directParents":null},"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"_objects","type":{"packageName":"","name":"T[]","filePath":null,"qualifiedName":"/T[]","typeParameters":null,"directParents":null},"isOptional":true,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[{"name":"fromObjects","returnType":null,"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":true,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"string","filePath":null,"qualifiedName":"/string","typeParameters":null,"directParents":null}},{"name":"objects","type":{"packageName":"","name":"(T | (Partial<T> & { id: string }))[]","filePath":null,"qualifiedName":"/(T | (Partial<T> & { id: string }))[]","typeParameters":null,"directParents":null}}]},{"name":"get","returnType":{"packageName":"","name":"Promise<T[]>","filePath":null,"qualifiedName":"/Promise<T[]>","typeParameters":null,"directParents":null},"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[]},{"name":"set","returnType":null,"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"objects","type":{"packageName":"","name":"T[]","filePath":null,"qualifiedName":"/T[]","typeParameters":null,"directParents":null}}]}],"typeParameters":["/T extends Record"],"directParentInterfaces":[{"packageName":"@proteinjs/serializer","name":"CustomSerializableObject","filePath":null,"qualifiedName":"@proteinjs/serializer/CustomSerializableObject","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/db/GraphSerializer","value":{"packageName":"@proteinjs/db","name":"GraphSerializer","filePath":"/home/runner/work/db/db/packages/db/src/serializers/GraphSerializer.ts","qualifiedName":"@proteinjs/db/GraphSerializer","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"id","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[{"name":"matches","returnType":null,"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"obj","type":{"packageName":"","name":"any","filePath":null,"qualifiedName":"/any","typeParameters":null,"directParents":null}}]},{"name":"serialize","returnType":{"packageName":"@proteinjs/db","name":"SerializedGraph","filePath":null,"qualifiedName":"@proteinjs/db/SerializedGraph","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"graph","type":{"packageName":"@proteinjs/util","name":"Graph","filePath":null,"qualifiedName":"@proteinjs/util/Graph","typeParameters":null,"directParents":null}}]},{"name":"deserialize","returnType":{"packageName":"@proteinjs/util","name":"Graph","filePath":null,"qualifiedName":"@proteinjs/util/Graph","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"serializedGraph","type":{"packageName":"@proteinjs/db","name":"SerializedGraph","filePath":null,"qualifiedName":"@proteinjs/db/SerializedGraph","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParentInterfaces":[{"packageName":"@proteinjs/serializer","name":"ThirdPartyLibCustomSerializer","filePath":null,"qualifiedName":"@proteinjs/serializer/ThirdPartyLibCustomSerializer","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/serializer/ThirdPartyLibCustomSerializer"},{"v":"@proteinjs/db/QueryBuilderSerializer","value":{"packageName":"@proteinjs/db","name":"QueryBuilderSerializer","filePath":"/home/runner/work/db/db/packages/db/src/serializers/QueryBuilderSerializer.ts","qualifiedName":"@proteinjs/db/QueryBuilderSerializer","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"id","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[{"name":"serialize","returnType":{"packageName":"@proteinjs/db","name":"SerializedQueryBuilder","filePath":null,"qualifiedName":"@proteinjs/db/SerializedQueryBuilder","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"qb","type":{"packageName":"","name":"QueryBuilder<any>","filePath":null,"qualifiedName":"/QueryBuilder<any>","typeParameters":null,"directParents":null}}]},{"name":"deserialize","returnType":{"packageName":"","name":"QueryBuilder<any>","filePath":null,"qualifiedName":"/QueryBuilder<any>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"serializedQb","type":{"packageName":"@proteinjs/db","name":"SerializedQueryBuilder","filePath":null,"qualifiedName":"@proteinjs/db/SerializedQueryBuilder","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParentInterfaces":[{"packageName":"@proteinjs/serializer","name":"CustomSerializer","filePath":null,"qualifiedName":"@proteinjs/serializer/CustomSerializer","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/serializer/CustomSerializer"},{"v":"@proteinjs/db/ReferenceArraySerializer","value":{"packageName":"@proteinjs/db","name":"ReferenceArraySerializer","filePath":"/home/runner/work/db/db/packages/db/src/serializers/ReferenceArraySerializer.ts","qualifiedName":"@proteinjs/db/ReferenceArraySerializer","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"id","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[{"name":"serialize","returnType":{"packageName":"@proteinjs/db","name":"SerializedReferenceArray","filePath":null,"qualifiedName":"@proteinjs/db/SerializedReferenceArray","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"referenceArray","type":{"packageName":"","name":"ReferenceArray<any>","filePath":null,"qualifiedName":"/ReferenceArray<any>","typeParameters":null,"directParents":null}}]},{"name":"deserialize","returnType":{"packageName":"","name":"ReferenceArray<any>","filePath":null,"qualifiedName":"/ReferenceArray<any>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"serializedReferenceArray","type":{"packageName":"@proteinjs/db","name":"SerializedReferenceArray","filePath":null,"qualifiedName":"@proteinjs/db/SerializedReferenceArray","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParentInterfaces":[{"packageName":"@proteinjs/serializer","name":"CustomSerializer","filePath":null,"qualifiedName":"@proteinjs/serializer/CustomSerializer","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/db/ReferenceSerializer","value":{"packageName":"@proteinjs/db","name":"ReferenceSerializer","filePath":"/home/runner/work/db/db/packages/db/src/serializers/ReferenceSerializer.ts","qualifiedName":"@proteinjs/db/ReferenceSerializer","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"id","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[{"name":"serialize","returnType":{"packageName":"@proteinjs/db","name":"SerializedReference","filePath":null,"qualifiedName":"@proteinjs/db/SerializedReference","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"reference","type":{"packageName":"","name":"Reference<any>","filePath":null,"qualifiedName":"/Reference<any>","typeParameters":null,"directParents":null}}]},{"name":"deserialize","returnType":{"packageName":"","name":"Reference<any>","filePath":null,"qualifiedName":"/Reference<any>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"serializedReference","type":{"packageName":"@proteinjs/db","name":"SerializedReference","filePath":null,"qualifiedName":"@proteinjs/db/SerializedReference","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParentInterfaces":[{"packageName":"@proteinjs/serializer","name":"CustomSerializer","filePath":null,"qualifiedName":"@proteinjs/serializer/CustomSerializer","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/db/TableSerializer","value":{"packageName":"@proteinjs/db","name":"TableSerializer","filePath":"/home/runner/work/db/db/packages/db/src/serializers/TableSerializer.ts","qualifiedName":"@proteinjs/db/TableSerializer","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"id","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[{"name":"serialize","returnType":{"packageName":"@proteinjs/db","name":"SerializedTable","filePath":null,"qualifiedName":"@proteinjs/db/SerializedTable","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"table","type":{"packageName":"","name":"Table<any>","filePath":null,"qualifiedName":"/Table<any>","typeParameters":null,"directParents":null}}]},{"name":"deserialize","returnType":{"packageName":"","name":"Table<any>","filePath":null,"qualifiedName":"/Table<any>","typeParameters":null,"directParents":null},"isAsync":false,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[{"name":"serializedTable","type":{"packageName":"@proteinjs/db","name":"SerializedTable","filePath":null,"qualifiedName":"@proteinjs/db/SerializedTable","typeParameters":null,"directParents":null}}]}],"typeParameters":[],"directParentInterfaces":[{"packageName":"@proteinjs/serializer","name":"CustomSerializer","filePath":null,"qualifiedName":"@proteinjs/serializer/CustomSerializer","properties":[],"methods":[],"typeParameters":[],"directParents":[]}],"directParentClasses":[],"sourceType":2}},{"v":"/Partial"},{"v":"@proteinjs/service/Service"},{"v":"/DbRecord"},{"v":"@proteinjs/db/SourceRecordLoader","value":{"packageName":"@proteinjs/db","name":"SourceRecordLoader","filePath":"/home/runner/work/db/db/packages/db/src/source/SourceRecordLoader.ts","qualifiedName":"@proteinjs/db/SourceRecordLoader","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"logger","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private"}],"methods":[{"name":"load","returnType":null,"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public","parameters":[]},{"name":"getSourceRecordsMap","returnType":null,"isAsync":true,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"private","parameters":[]}],"typeParameters":[],"directParentInterfaces":[],"directParentClasses":[],"sourceType":2}},{"v":"@proteinjs/db/MigrationTable","value":{"packageName":"@proteinjs/db","name":"MigrationTable","filePath":"/home/runner/work/db/db/packages/db/src/tables/MigrationTable.ts","qualifiedName":"@proteinjs/db/MigrationTable","isAbstract":false,"isStatic":false,"visibility":"public","properties":[{"name":"name","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"columns","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"},{"name":"sourceRecordOptions","type":null,"isOptional":false,"isAbstract":false,"isStatic":false,"visibility":"public"}],"methods":[],"typeParameters":[],"directParentInterfaces":[],"directParentClasses":[{"packageName":"@proteinjs/db","name":"Table","filePath":null,"qualifiedName":"@proteinjs/db/Table","isAbstract":false,"isStatic":false,"visibility":"public","properties":[],"methods":[],"typeParameters":["@proteinjs/db/Migration"],"directParentInterfaces":[],"directParentClasses":[]}],"sourceType":2}}],"edges":[{"v":"@proteinjs/db/DbDriverStatementConfig","w":"@proteinjs/db-query/ParameterizationConfig","value":"extends type"},{"v":"@proteinjs/db/DefaultDbDriverFactory","w":"@proteinjs/reflection/Loadable","value":"extends interface"},{"v":"@proteinjs/db/Db","w":"@proteinjs/db/DbService","value":"implements interface"},{"v":"@proteinjs/db/MigrationRunner","w":"@proteinjs/db/MigrationRunnerService","value":"implements interface"},{"v":"@proteinjs/db/Table","w":"@proteinjs/reflection/Loadable","value":"implements interface"},{"v":"@proteinjs/db/Table","w":"@proteinjs/serializer/CustomSerializableObject","value":"implements interface"},{"v":"@proteinjs/db/Reference","w":"@proteinjs/serializer/CustomSerializableObject","value":"implements interface"},{"v":"@proteinjs/db/ReferenceArray","w":"@proteinjs/serializer/CustomSerializableObject","value":"implements interface"},{"v":"@proteinjs/db/GraphSerializer","w":"@proteinjs/serializer/ThirdPartyLibCustomSerializer","value":"implements interface"},{"v":"@proteinjs/db/QueryBuilderSerializer","w":"@proteinjs/serializer/CustomSerializer","value":"implements interface"},{"v":"@proteinjs/db/ReferenceArraySerializer","w":"@proteinjs/serializer/CustomSerializer","value":"implements interface"},{"v":"@proteinjs/db/ReferenceSerializer","w":"@proteinjs/serializer/CustomSerializer","value":"implements interface"},{"v":"@proteinjs/db/TableSerializer","w":"@proteinjs/serializer/CustomSerializer","value":"implements interface"},{"v":"@proteinjs/db/DbService","w":"@proteinjs/service/Service","value":"extends interface"},{"v":"@proteinjs/db/MigrationRunnerService","w":"@proteinjs/service/Service","value":"extends interface"},{"v":"@proteinjs/db/SourceRecordLoader","w":"@proteinjs/reflection/Loadable","value":"extends interface"},{"v":"@proteinjs/db/MigrationTable","w":"@proteinjs/db/Table","value":"extends class"}]}';
15
+ const sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"@proteinjs/db/DbDriverQueryStatementConfig\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"DbDriverQueryStatementConfig\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/Db.ts\",\"qualifiedName\":\"@proteinjs/db/DbDriverQueryStatementConfig\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/db-query\",\"name\":\"ParameterizationConfig\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db-query/ParameterizationConfig\",\"typeParameters\":[],\"directParents\":null},{\"packageName\":\"@proteinjs/db\",\"name\":\"{\\n prefixTablesWithDb?: boolean;\\n getDriverColumnType?: (tableName: string, columnName: string) => string;\\n handleCaseSensitivity: (tableName: string, columnName: string, caseSensitive: boolean) => string;\\n}\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/{\\n prefixTablesWithDb?: boolean;\\n getDriverColumnType?: (tableName: string, columnName: string) => string;\\n handleCaseSensitivity: (tableName: string, columnName: string, caseSensitive: boolean) => string;\\n}\",\"typeParameters\":[],\"directParents\":null}],\"sourceType\":1}},{\"v\":\"@proteinjs/db-query/ParameterizationConfig\"},{\"v\":\"@proteinjs/db/DbDriverDmlStatementConfig\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"DbDriverDmlStatementConfig\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/Db.ts\",\"qualifiedName\":\"@proteinjs/db/DbDriverDmlStatementConfig\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/db-query\",\"name\":\"ParameterizationConfig\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db-query/ParameterizationConfig\",\"typeParameters\":[],\"directParents\":null},{\"packageName\":\"@proteinjs/db\",\"name\":\"{\\n prefixTablesWithDb?: boolean;\\n getDriverColumnType?: (tableName: string, columnName: string) => string;\\n}\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/{\\n prefixTablesWithDb?: boolean;\\n getDriverColumnType?: (tableName: string, columnName: string) => string;\\n}\",\"typeParameters\":[],\"directParents\":null}],\"sourceType\":1}},{\"v\":\"@proteinjs/db/DefaultDbDriverFactory\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"DefaultDbDriverFactory\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/Db.ts\",\"qualifiedName\":\"@proteinjs/db/DefaultDbDriverFactory\",\"properties\":[],\"methods\":[{\"name\":\"getDbDriver\",\"returnType\":{\"packageName\":\"@proteinjs/db\",\"name\":\"DbDriver\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/DbDriver\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":true,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[]}],\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/reflection\",\"name\":\"Loadable\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/reflection/Loadable\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"sourceType\":3}},{\"v\":\"@proteinjs/reflection/Loadable\"},{\"v\":\"@proteinjs/db/Db\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"Db\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/Db.ts\",\"qualifiedName\":\"@proteinjs/db/Db\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"defaultDbDriver\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"DbDriver\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/DbDriver\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":true,\"visibility\":\"private\"},{\"name\":\"dbDriver\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"DbDriver\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/DbDriver\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"logger\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"statementConfigFactory\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"StatementConfigFactory\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/StatementConfigFactory\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"auth\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"serviceMetadata\",\"type\":{\"packageName\":\"\",\"name\":\"Service['serviceMetadata']\",\"filePath\":null,\"qualifiedName\":\"/Service['serviceMetadata']\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"runAsSystem\",\"type\":{\"packageName\":\"\",\"name\":\"boolean\",\"filePath\":null,\"qualifiedName\":\"/boolean\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"}],\"methods\":[{\"name\":\"getDefaultDbDriver\",\"returnType\":{\"packageName\":\"@proteinjs/db\",\"name\":\"DbDriver\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/DbDriver\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[]},{\"name\":\"init\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<void>\",\"filePath\":null,\"qualifiedName\":\"/Promise<void>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[]},{\"name\":\"tableExists\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<boolean>\",\"filePath\":null,\"qualifiedName\":\"/Promise<boolean>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"get\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<T>\",\"filePath\":null,\"qualifiedName\":\"/Promise<T>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"query\",\"type\":{\"packageName\":\"\",\"name\":\"Query<T>\",\"filePath\":null,\"qualifiedName\":\"/Query<T>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"insert\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<T>\",\"filePath\":null,\"qualifiedName\":\"/Promise<T>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"record\",\"type\":{\"packageName\":\"\",\"name\":\"Omit<T, keyof R>\",\"filePath\":null,\"qualifiedName\":\"/Omit<T, keyof R>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"addDefaultFieldValues\",\"returnType\":null,\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"record\",\"type\":{\"packageName\":\"\",\"name\":\"any\",\"filePath\":null,\"qualifiedName\":\"/any\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"update\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<number>\",\"filePath\":null,\"qualifiedName\":\"/Promise<number>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"record\",\"type\":{\"packageName\":\"\",\"name\":\"Partial<T>\",\"filePath\":null,\"qualifiedName\":\"/Partial<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"query\",\"type\":{\"packageName\":\"\",\"name\":\"Query<T>\",\"filePath\":null,\"qualifiedName\":\"/Query<T>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"addUpdateFieldValues\",\"returnType\":null,\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"record\",\"type\":{\"packageName\":\"\",\"name\":\"any\",\"filePath\":null,\"qualifiedName\":\"/any\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"delete\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<number>\",\"filePath\":null,\"qualifiedName\":\"/Promise<number>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"query\",\"type\":{\"packageName\":\"\",\"name\":\"Query<T>\",\"filePath\":null,\"qualifiedName\":\"/Query<T>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"beforeDelete\",\"returnType\":null,\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<any>\",\"filePath\":null,\"qualifiedName\":\"/Table<any>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"recordsToDelete\",\"type\":{\"packageName\":\"\",\"name\":\"Record[]\",\"filePath\":null,\"qualifiedName\":\"/Record[]\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"cascadeDeletions\",\"returnType\":null,\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<any>\",\"filePath\":null,\"qualifiedName\":\"/Table<any>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"deletedRecordIds\",\"type\":{\"packageName\":\"\",\"name\":\"string[]\",\"filePath\":null,\"qualifiedName\":\"/string[]\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"query\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<T[]>\",\"filePath\":null,\"qualifiedName\":\"/Promise<T[]>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"query\",\"type\":{\"packageName\":\"\",\"name\":\"Query<T>\",\"filePath\":null,\"qualifiedName\":\"/Query<T>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"getRowCount\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<number>\",\"filePath\":null,\"qualifiedName\":\"/Promise<number>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"query\",\"type\":{\"packageName\":\"\",\"name\":\"Query<T>\",\"filePath\":null,\"qualifiedName\":\"/Query<T>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"addColumnQueries\",\"returnType\":null,\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"qb\",\"type\":{\"packageName\":\"\",\"name\":\"QueryBuilder<T>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<T>\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[\"/R extends Record = Record\"],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/db\",\"name\":\"DbService\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/DbService\",\"properties\":[],\"methods\":[],\"typeParameters\":[\"/R\"],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/db/DbService\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"DbService\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/services/DbService.ts\",\"qualifiedName\":\"@proteinjs/db/DbService\",\"properties\":[],\"methods\":[{\"name\":\"tableExists\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<boolean>\",\"filePath\":null,\"qualifiedName\":\"/Promise<boolean>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":true,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"get\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<T>\",\"filePath\":null,\"qualifiedName\":\"/Promise<T>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":true,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"query\",\"type\":{\"packageName\":\"\",\"name\":\"Query<T>\",\"filePath\":null,\"qualifiedName\":\"/Query<T>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"insert\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<T>\",\"filePath\":null,\"qualifiedName\":\"/Promise<T>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":true,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"record\",\"type\":{\"packageName\":\"\",\"name\":\"Omit<T, keyof R>\",\"filePath\":null,\"qualifiedName\":\"/Omit<T, keyof R>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"update\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<number>\",\"filePath\":null,\"qualifiedName\":\"/Promise<number>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":true,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"record\",\"type\":{\"packageName\":\"\",\"name\":\"Partial<T>\",\"filePath\":null,\"qualifiedName\":\"/Partial<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"query\",\"type\":{\"packageName\":\"\",\"name\":\"Query<T>\",\"filePath\":null,\"qualifiedName\":\"/Query<T>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"delete\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<number>\",\"filePath\":null,\"qualifiedName\":\"/Promise<number>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":true,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"query\",\"type\":{\"packageName\":\"\",\"name\":\"Query<T>\",\"filePath\":null,\"qualifiedName\":\"/Query<T>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"query\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<T[]>\",\"filePath\":null,\"qualifiedName\":\"/Promise<T[]>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":true,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"query\",\"type\":{\"packageName\":\"\",\"name\":\"Query<T>\",\"filePath\":null,\"qualifiedName\":\"/Query<T>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"getRowCount\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<number>\",\"filePath\":null,\"qualifiedName\":\"/Promise<number>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":true,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"query\",\"type\":{\"packageName\":\"\",\"name\":\"Query<T>\",\"filePath\":null,\"qualifiedName\":\"/Query<T>\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[\"/R extends Record = Record\"],\"directParents\":[{\"packageName\":\"@proteinjs/service\",\"name\":\"Service\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/service/Service\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"sourceType\":3}},{\"v\":\"@proteinjs/db/MigrationRunner\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"MigrationRunner\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/MigrationRunner.ts\",\"qualifiedName\":\"@proteinjs/db/MigrationRunner\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"logger\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"serviceMetadata\",\"type\":{\"packageName\":\"\",\"name\":\"Service['serviceMetadata']\",\"filePath\":null,\"qualifiedName\":\"/Service['serviceMetadata']\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"runMigration\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<void>\",\"filePath\":null,\"qualifiedName\":\"/Promise<void>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"id\",\"type\":{\"packageName\":\"\",\"name\":\"string\",\"filePath\":null,\"qualifiedName\":\"/string\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"duration\",\"returnType\":{\"packageName\":\"\",\"name\":\"string\",\"filePath\":null,\"qualifiedName\":\"/string\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[{\"name\":\"start\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"Moment\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/Moment\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"end\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"Moment\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/Moment\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/db\",\"name\":\"MigrationRunnerService\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/MigrationRunnerService\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/db/MigrationRunnerService\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"MigrationRunnerService\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/services/MigrationRunnerService.ts\",\"qualifiedName\":\"@proteinjs/db/MigrationRunnerService\",\"properties\":[],\"methods\":[{\"name\":\"runMigration\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<void>\",\"filePath\":null,\"qualifiedName\":\"/Promise<void>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":true,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"id\",\"type\":{\"packageName\":\"\",\"name\":\"string\",\"filePath\":null,\"qualifiedName\":\"/string\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/service\",\"name\":\"Service\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/service/Service\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"sourceType\":3}},{\"v\":\"/AsyncIterable\"},{\"v\":\"@proteinjs/db/Table\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"Table\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/Table.ts\",\"qualifiedName\":\"@proteinjs/db/Table\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"__serializerId\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"name\",\"type\":{\"packageName\":\"\",\"name\":\"string\",\"filePath\":null,\"qualifiedName\":\"/string\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"columns\",\"type\":{\"packageName\":\"\",\"name\":\"Columns<T>\",\"filePath\":null,\"qualifiedName\":\"/Columns<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"indexes\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"{ columns: (keyof T)[]; name?: string }[]\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/{ columns: (keyof T)[]; name?: string }[]\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"cascadeDeleteReferences\",\"type\":{\"packageName\":\"\",\"name\":\"() => { table: string; referenceColumn: string }[]\",\"filePath\":null,\"qualifiedName\":\"/() => { table: string; referenceColumn: string }[]\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"sourceRecordOptions\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"SourceRecordOptions\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/SourceRecordOptions\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"auth\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"{\\n db?: TableOperationsAuth;\\n service?: TableOperationsAuth;\\n ui?: {\\n recordTable?: Identity;\\n recordForm?: Identity;\\n };\\n }\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/{\\n db?: TableOperationsAuth;\\n service?: TableOperationsAuth;\\n ui?: {\\n recordTable?: Identity;\\n recordForm?: Identity;\\n };\\n }\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[],\"typeParameters\":[\"/T extends Record\"],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/reflection\",\"name\":\"Loadable\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/reflection/Loadable\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]},{\"packageName\":\"@proteinjs/serializer\",\"name\":\"CustomSerializableObject\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/serializer/CustomSerializableObject\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/serializer/CustomSerializableObject\"},{\"v\":\"/'public' | 'authenticated' | string[]\"},{\"v\":\"@proteinjs/db/GraphSerializer\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"GraphSerializer\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/serializers/GraphSerializer.ts\",\"qualifiedName\":\"@proteinjs/db/GraphSerializer\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"id\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"matches\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"obj\",\"type\":{\"packageName\":\"\",\"name\":\"any\",\"filePath\":null,\"qualifiedName\":\"/any\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"serialize\",\"returnType\":{\"packageName\":\"@proteinjs/db\",\"name\":\"SerializedGraph\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/SerializedGraph\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"graph\",\"type\":{\"packageName\":\"@proteinjs/util\",\"name\":\"Graph\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/util/Graph\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"deserialize\",\"returnType\":{\"packageName\":\"@proteinjs/util\",\"name\":\"Graph\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/util/Graph\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"serializedGraph\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"SerializedGraph\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/SerializedGraph\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/serializer\",\"name\":\"ThirdPartyLibCustomSerializer\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/serializer/ThirdPartyLibCustomSerializer\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/serializer/ThirdPartyLibCustomSerializer\"},{\"v\":\"@proteinjs/db/QueryBuilderSerializer\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"QueryBuilderSerializer\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/serializers/QueryBuilderSerializer.ts\",\"qualifiedName\":\"@proteinjs/db/QueryBuilderSerializer\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"id\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"serialize\",\"returnType\":{\"packageName\":\"@proteinjs/db\",\"name\":\"SerializedQueryBuilder\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/SerializedQueryBuilder\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"qb\",\"type\":{\"packageName\":\"\",\"name\":\"QueryBuilder<any>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<any>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"deserialize\",\"returnType\":{\"packageName\":\"\",\"name\":\"QueryBuilder<any>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<any>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"serializedQb\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"SerializedQueryBuilder\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/SerializedQueryBuilder\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/serializer\",\"name\":\"CustomSerializer\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/serializer/CustomSerializer\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/serializer/CustomSerializer\"},{\"v\":\"@proteinjs/db/ReferenceArraySerializer\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"ReferenceArraySerializer\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/serializers/ReferenceArraySerializer.ts\",\"qualifiedName\":\"@proteinjs/db/ReferenceArraySerializer\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"id\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"serialize\",\"returnType\":{\"packageName\":\"@proteinjs/db\",\"name\":\"SerializedReferenceArray\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/SerializedReferenceArray\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"referenceArray\",\"type\":{\"packageName\":\"\",\"name\":\"ReferenceArray<any>\",\"filePath\":null,\"qualifiedName\":\"/ReferenceArray<any>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"deserialize\",\"returnType\":{\"packageName\":\"\",\"name\":\"ReferenceArray<any>\",\"filePath\":null,\"qualifiedName\":\"/ReferenceArray<any>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"serializedReferenceArray\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"SerializedReferenceArray\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/SerializedReferenceArray\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/serializer\",\"name\":\"CustomSerializer\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/serializer/CustomSerializer\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/db/ReferenceSerializer\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"ReferenceSerializer\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/serializers/ReferenceSerializer.ts\",\"qualifiedName\":\"@proteinjs/db/ReferenceSerializer\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"id\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"serialize\",\"returnType\":{\"packageName\":\"@proteinjs/db\",\"name\":\"SerializedReference\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/SerializedReference\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"reference\",\"type\":{\"packageName\":\"\",\"name\":\"Reference<any>\",\"filePath\":null,\"qualifiedName\":\"/Reference<any>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"deserialize\",\"returnType\":{\"packageName\":\"\",\"name\":\"Reference<any>\",\"filePath\":null,\"qualifiedName\":\"/Reference<any>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"serializedReference\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"SerializedReference\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/SerializedReference\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/serializer\",\"name\":\"CustomSerializer\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/serializer/CustomSerializer\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/db/TableSerializer\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"TableSerializer\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/serializers/TableSerializer.ts\",\"qualifiedName\":\"@proteinjs/db/TableSerializer\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"id\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"serialize\",\"returnType\":{\"packageName\":\"@proteinjs/db\",\"name\":\"SerializedTable\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/SerializedTable\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<any>\",\"filePath\":null,\"qualifiedName\":\"/Table<any>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"deserialize\",\"returnType\":{\"packageName\":\"\",\"name\":\"Table<any>\",\"filePath\":null,\"qualifiedName\":\"/Table<any>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"serializedTable\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"SerializedTable\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/SerializedTable\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/serializer\",\"name\":\"CustomSerializer\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/serializer/CustomSerializer\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/db/Reference\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"Reference\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/reference/Reference.ts\",\"qualifiedName\":\"@proteinjs/db/Reference\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"__serializerId\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"_table\",\"type\":{\"packageName\":\"\",\"name\":\"string\",\"filePath\":null,\"qualifiedName\":\"/string\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"_id\",\"type\":{\"packageName\":\"\",\"name\":\"string\",\"filePath\":null,\"qualifiedName\":\"/string\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"_object\",\"type\":{\"packageName\":\"\",\"name\":\"T\",\"filePath\":null,\"qualifiedName\":\"/T\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"fromObject\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":true,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"string\",\"filePath\":null,\"qualifiedName\":\"/string\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"object\",\"type\":{\"packageName\":\"\",\"name\":\"T | (Partial<T> & { id: string })\",\"filePath\":null,\"qualifiedName\":\"/T | (Partial<T> & { id: string })\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"get\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<T | undefined>\",\"filePath\":null,\"qualifiedName\":\"/Promise<T | undefined>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[]},{\"name\":\"set\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"object\",\"type\":{\"packageName\":\"\",\"name\":\"T\",\"filePath\":null,\"qualifiedName\":\"/T\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[\"/T extends Record\"],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/serializer\",\"name\":\"CustomSerializableObject\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/serializer/CustomSerializableObject\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/db/ReferenceArray\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"ReferenceArray\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/reference/ReferenceArray.ts\",\"qualifiedName\":\"@proteinjs/db/ReferenceArray\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"__serializerId\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"_table\",\"type\":{\"packageName\":\"\",\"name\":\"string\",\"filePath\":null,\"qualifiedName\":\"/string\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"_ids\",\"type\":{\"packageName\":\"\",\"name\":\"string[]\",\"filePath\":null,\"qualifiedName\":\"/string[]\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"_objects\",\"type\":{\"packageName\":\"\",\"name\":\"T[]\",\"filePath\":null,\"qualifiedName\":\"/T[]\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"fromObjects\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":true,\"visibility\":\"public\",\"parameters\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"string\",\"filePath\":null,\"qualifiedName\":\"/string\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"objects\",\"type\":{\"packageName\":\"\",\"name\":\"(T | (Partial<T> & { id: string }))[]\",\"filePath\":null,\"qualifiedName\":\"/(T | (Partial<T> & { id: string }))[]\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"get\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<T[]>\",\"filePath\":null,\"qualifiedName\":\"/Promise<T[]>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[]},{\"name\":\"set\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"objects\",\"type\":{\"packageName\":\"\",\"name\":\"T[]\",\"filePath\":null,\"qualifiedName\":\"/T[]\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[\"/T extends Record\"],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/serializer\",\"name\":\"CustomSerializableObject\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/serializer/CustomSerializableObject\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"/Partial\"},{\"v\":\"@proteinjs/service/Service\"},{\"v\":\"/DbRecord\"},{\"v\":\"@proteinjs/db/SourceRecordLoader\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"SourceRecordLoader\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/source/SourceRecordLoader.ts\",\"qualifiedName\":\"@proteinjs/db/SourceRecordLoader\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"logger\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"}],\"methods\":[{\"name\":\"load\",\"returnType\":null,\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[]},{\"name\":\"getSourceRecordsMap\",\"returnType\":null,\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[]}],\"typeParameters\":[],\"directParentInterfaces\":[],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/db/MigrationTable\",\"value\":{\"packageName\":\"@proteinjs/db\",\"name\":\"MigrationTable\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/db/packages/db/src/tables/MigrationTable.ts\",\"qualifiedName\":\"@proteinjs/db/MigrationTable\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"name\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"columns\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"sourceRecordOptions\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[],\"typeParameters\":[],\"directParentInterfaces\":[],\"directParentClasses\":[{\"packageName\":\"@proteinjs/db\",\"name\":\"Table\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/Table\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[],\"methods\":[],\"typeParameters\":[\"@proteinjs/db/Migration\"],\"directParentInterfaces\":[],\"directParentClasses\":[]}],\"sourceType\":2}}],\"edges\":[{\"v\":\"@proteinjs/db/DbDriverQueryStatementConfig\",\"w\":\"@proteinjs/db-query/ParameterizationConfig\",\"value\":\"extends type\"},{\"v\":\"@proteinjs/db/DbDriverDmlStatementConfig\",\"w\":\"@proteinjs/db-query/ParameterizationConfig\",\"value\":\"extends type\"},{\"v\":\"@proteinjs/db/DefaultDbDriverFactory\",\"w\":\"@proteinjs/reflection/Loadable\",\"value\":\"extends interface\"},{\"v\":\"@proteinjs/db/Db\",\"w\":\"@proteinjs/db/DbService\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db/MigrationRunner\",\"w\":\"@proteinjs/db/MigrationRunnerService\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db/Table\",\"w\":\"@proteinjs/reflection/Loadable\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db/Table\",\"w\":\"@proteinjs/serializer/CustomSerializableObject\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db/GraphSerializer\",\"w\":\"@proteinjs/serializer/ThirdPartyLibCustomSerializer\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db/QueryBuilderSerializer\",\"w\":\"@proteinjs/serializer/CustomSerializer\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db/ReferenceArraySerializer\",\"w\":\"@proteinjs/serializer/CustomSerializer\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db/ReferenceSerializer\",\"w\":\"@proteinjs/serializer/CustomSerializer\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db/TableSerializer\",\"w\":\"@proteinjs/serializer/CustomSerializer\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db/Reference\",\"w\":\"@proteinjs/serializer/CustomSerializableObject\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db/ReferenceArray\",\"w\":\"@proteinjs/serializer/CustomSerializableObject\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db/DbService\",\"w\":\"@proteinjs/service/Service\",\"value\":\"extends interface\"},{\"v\":\"@proteinjs/db/MigrationRunnerService\",\"w\":\"@proteinjs/service/Service\",\"value\":\"extends interface\"},{\"v\":\"@proteinjs/db/SourceRecordLoader\",\"w\":\"@proteinjs/reflection/Loadable\",\"value\":\"extends interface\"},{\"v\":\"@proteinjs/db/MigrationTable\",\"w\":\"@proteinjs/db/Table\",\"value\":\"extends class\"}]}";
16
+
16
17
 
17
18
  /** Generate Source Links */
18
19
 
19
20
  import { Db } from '../src/Db';
20
21
  import { MigrationRunner } from '../src/MigrationRunner';
21
22
  import { Table } from '../src/Table';
22
- import { Reference } from '../src/reference/Reference';
23
- import { ReferenceArray } from '../src/reference/ReferenceArray';
24
23
  import { GraphSerializer } from '../src/serializers/GraphSerializer';
25
24
  import { QueryBuilderSerializer } from '../src/serializers/QueryBuilderSerializer';
26
25
  import { ReferenceArraySerializer } from '../src/serializers/ReferenceArraySerializer';
27
26
  import { ReferenceSerializer } from '../src/serializers/ReferenceSerializer';
28
27
  import { TableSerializer } from '../src/serializers/TableSerializer';
28
+ import { Reference } from '../src/reference/Reference';
29
+ import { ReferenceArray } from '../src/reference/ReferenceArray';
29
30
  import { SourceRecordLoader } from '../src/source/SourceRecordLoader';
30
31
  import { MigrationTable } from '../src/tables/MigrationTable';
31
32
 
32
33
  const sourceLinks = {
33
- '@proteinjs/db/Db': Db,
34
- '@proteinjs/db/MigrationRunner': MigrationRunner,
35
- '@proteinjs/db/Table': Table,
36
- '@proteinjs/db/Reference': Reference,
37
- '@proteinjs/db/ReferenceArray': ReferenceArray,
38
- '@proteinjs/db/GraphSerializer': GraphSerializer,
39
- '@proteinjs/db/QueryBuilderSerializer': QueryBuilderSerializer,
40
- '@proteinjs/db/ReferenceArraySerializer': ReferenceArraySerializer,
41
- '@proteinjs/db/ReferenceSerializer': ReferenceSerializer,
42
- '@proteinjs/db/TableSerializer': TableSerializer,
43
- '@proteinjs/db/SourceRecordLoader': SourceRecordLoader,
44
- '@proteinjs/db/MigrationTable': MigrationTable,
34
+ '@proteinjs/db/Db': Db,
35
+ '@proteinjs/db/MigrationRunner': MigrationRunner,
36
+ '@proteinjs/db/Table': Table,
37
+ '@proteinjs/db/GraphSerializer': GraphSerializer,
38
+ '@proteinjs/db/QueryBuilderSerializer': QueryBuilderSerializer,
39
+ '@proteinjs/db/ReferenceArraySerializer': ReferenceArraySerializer,
40
+ '@proteinjs/db/ReferenceSerializer': ReferenceSerializer,
41
+ '@proteinjs/db/TableSerializer': TableSerializer,
42
+ '@proteinjs/db/Reference': Reference,
43
+ '@proteinjs/db/ReferenceArray': ReferenceArray,
44
+ '@proteinjs/db/SourceRecordLoader': SourceRecordLoader,
45
+ '@proteinjs/db/MigrationTable': MigrationTable,
45
46
  };
46
47
 
48
+
47
49
  /** Load Source Graph and Links */
48
50
 
49
51
  import { SourceRepository } from '@proteinjs/reflection';
50
52
  SourceRepository.merge(sourceGraph, sourceLinks);
51
53
 
52
- export * from '../index';
54
+
55
+ export * from '../index';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/db",
3
- "version": "1.0.29",
3
+ "version": "1.1.1",
4
4
  "description": "Db",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -21,17 +21,17 @@
21
21
  "watch": "reflection-watch"
22
22
  },
23
23
  "dependencies": {
24
- "@proteinjs/db-query": "^1.0.15",
25
- "@proteinjs/reflection": "1.1.5",
26
- "@proteinjs/serializer": "1.0.10",
27
- "@proteinjs/service": "1.0.18",
28
- "@proteinjs/user-auth": "1.0.10",
29
- "@proteinjs/util": "1.1.2",
24
+ "@proteinjs/db-query": "^1.1.1",
25
+ "@proteinjs/reflection": "1.1.6",
26
+ "@proteinjs/serializer": "1.0.11",
27
+ "@proteinjs/service": "1.0.19",
28
+ "@proteinjs/user-auth": "1.0.11",
29
+ "@proteinjs/util": "1.2.0",
30
30
  "moment": "2.29.4",
31
31
  "uuid": "8.3.0"
32
32
  },
33
33
  "devDependencies": {
34
- "@proteinjs/reflection-build": "1.0.19",
34
+ "@proteinjs/reflection-build": "1.0.20",
35
35
  "@types/jest": "29.5.5",
36
36
  "@types/node": "14.0.27",
37
37
  "@types/uuid": "8.3.0",
@@ -45,6 +45,5 @@
45
45
  "typescript": "5.2.2"
46
46
  },
47
47
  "main": "./dist/generated/index.js",
48
- "types": "./dist/generated/index.d.ts",
49
- "gitHead": "0e50559db01b7b9de2454c13199dafdadbc2f986"
50
- }
48
+ "types": "./dist/generated/index.d.ts"
49
+ }
package/src/Db.ts CHANGED
@@ -16,9 +16,15 @@ export const getDb = <R extends Record = Record>() =>
16
16
  typeof self === 'undefined' ? new Db<R>() : (getDbService() as Db<R>);
17
17
  export const getDbAsSystem = <R extends Record = Record>() => new Db<R>(undefined, undefined, true);
18
18
 
19
- export type DbDriverStatementConfig = ParameterizationConfig & {
19
+ export type DbDriverQueryStatementConfig = ParameterizationConfig & {
20
20
  prefixTablesWithDb?: boolean;
21
- getColumnType?: (tableName: string, columnPropertyName: string) => string;
21
+ getDriverColumnType?: (tableName: string, columnName: string) => string;
22
+ handleCaseSensitivity: (tableName: string, columnName: string, caseSensitive: boolean) => string;
23
+ };
24
+
25
+ export type DbDriverDmlStatementConfig = ParameterizationConfig & {
26
+ prefixTablesWithDb?: boolean;
27
+ getDriverColumnType?: (tableName: string, columnName: string) => string;
22
28
  };
23
29
 
24
30
  export interface DefaultDbDriverFactory extends Loadable {
@@ -31,8 +37,8 @@ export interface DbDriver {
31
37
  start?(): Promise<void>;
32
38
  stop?(): Promise<void>;
33
39
  getTableManager(): TableManager;
34
- runQuery(generateStatement: (config: DbDriverStatementConfig) => Statement): Promise<SerializedRecord[]>;
35
- runDml(generateStatement: (config: DbDriverStatementConfig) => Statement): Promise<number>; // returns the number of affected rows
40
+ runQuery(generateStatement: (config: DbDriverQueryStatementConfig) => Statement): Promise<SerializedRecord[]>;
41
+ runDml(generateStatement: (config: DbDriverDmlStatementConfig) => Statement): Promise<number>; // returns the number of affected rows
36
42
  }
37
43
 
38
44
  export class Db<R extends Record = Record> implements DbService<R> {
@@ -96,7 +102,7 @@ export class Db<R extends Record = Record> implements DbService<R> {
96
102
  await this.addDefaultFieldValues(table, recordCopy);
97
103
  const recordSearializer = new RecordSerializer(table);
98
104
  const serializedRecord = await recordSearializer.serialize(recordCopy);
99
- const generateInsert = (config: DbDriverStatementConfig) =>
105
+ const generateInsert = (config: DbDriverDmlStatementConfig) =>
100
106
  new StatementFactory<T>().insert(
101
107
  table.name,
102
108
  serializedRecord as Partial<T>,
@@ -135,7 +141,7 @@ export class Db<R extends Record = Record> implements DbService<R> {
135
141
  }
136
142
 
137
143
  delete serializedRecord['id'];
138
- const generateUpdate = (config: DbDriverStatementConfig) =>
144
+ const generateUpdate = (config: DbDriverDmlStatementConfig) =>
139
145
  new StatementFactory<T>().update(
140
146
  table.name,
141
147
  serializedRecord as Partial<T>,
@@ -167,7 +173,7 @@ export class Db<R extends Record = Record> implements DbService<R> {
167
173
  const recordsToDeleteIds = recordsToDelete.map((record) => record.id);
168
174
  const deleteQb = new QueryBuilderFactory().getQueryBuilder(table);
169
175
  deleteQb.condition({ field: 'id', operator: 'IN', value: recordsToDeleteIds as T[keyof T][] });
170
- const generateDelete = (config: DbDriverStatementConfig) =>
176
+ const generateDelete = (config: DbDriverDmlStatementConfig) =>
171
177
  new StatementFactory<T>().delete(table.name, deleteQb, this.statementConfigFactory.getStatementConfig(config));
172
178
  await this.beforeDelete(table, recordsToDelete);
173
179
  const deletedRowCount = await this.dbDriver.runDml(generateDelete);
@@ -213,7 +219,7 @@ export class Db<R extends Record = Record> implements DbService<R> {
213
219
 
214
220
  const qb = new QueryBuilderFactory().getQueryBuilder(table, query);
215
221
  this.addColumnQueries(table, qb);
216
- const generateQuery = (config: DbDriverStatementConfig) =>
222
+ const generateQuery = (config: DbDriverQueryStatementConfig) =>
217
223
  qb.toSql(this.statementConfigFactory.getStatementConfig(config));
218
224
  const serializedRecords = await this.dbDriver.runQuery(generateQuery);
219
225
  const recordSearializer = new RecordSerializer(table);
@@ -230,7 +236,7 @@ export class Db<R extends Record = Record> implements DbService<R> {
230
236
  const qb = new QueryBuilderFactory().getQueryBuilder(table, query);
231
237
  qb.aggregate({ function: 'COUNT', resultProp: 'count' });
232
238
  this.addColumnQueries(table, qb);
233
- const generateQuery = (config: DbDriverStatementConfig) =>
239
+ const generateQuery = (config: DbDriverQueryStatementConfig) =>
234
240
  qb.toSql(this.statementConfigFactory.getStatementConfig(config));
235
241
  const result = await this.dbDriver.runQuery(generateQuery);
236
242
  return result[0]['count'];
@@ -1,6 +1,17 @@
1
1
  import { StatementConfig } from '@proteinjs/db-query';
2
2
  import { Table, tableByName } from './Table';
3
- import { DbDriverStatementConfig } from './Db';
3
+ import { DbDriverQueryStatementConfig, DbDriverDmlStatementConfig } from './Db';
4
+ import {
5
+ IntegerColumn,
6
+ StringColumn,
7
+ FloatColumn,
8
+ DecimalColumn,
9
+ BooleanColumn,
10
+ DateColumn,
11
+ DateTimeColumn,
12
+ BinaryColumn,
13
+ } from './Columns';
14
+ import { isInstanceOf } from '@proteinjs/util';
4
15
 
5
16
  export class StatementConfigFactory {
6
17
  private dbName: string;
@@ -11,13 +22,19 @@ export class StatementConfigFactory {
11
22
  this.getTable = getTable ? getTable : tableByName;
12
23
  }
13
24
 
14
- getStatementConfig(config: DbDriverStatementConfig): StatementConfig {
25
+ private isQueryConfig(config: any): config is DbDriverQueryStatementConfig {
26
+ return 'handleCaseSensitivity' in config;
27
+ }
28
+
29
+ getStatementConfig(config: DbDriverQueryStatementConfig | DbDriverDmlStatementConfig): StatementConfig {
15
30
  return {
16
31
  dbName: config.prefixTablesWithDb ? this.dbName : undefined,
17
32
  resolveFieldName: this.getResolveFieldName(),
18
33
  useParams: config.useParams,
19
34
  useNamedParams: config.useNamedParams,
20
- getColumnType: config.getColumnType,
35
+ getColumnType: this.getColumnType(),
36
+ getDriverColumnType: config.getDriverColumnType,
37
+ ...(this.isQueryConfig(config) && { handleCaseSensitivity: config.handleCaseSensitivity }),
21
38
  };
22
39
  }
23
40
 
@@ -32,4 +49,42 @@ export class StatementConfigFactory {
32
49
  return column.name;
33
50
  };
34
51
  }
52
+
53
+ /**
54
+ * This function returns the type of a given column in terms of internal, database-agnostic column types.
55
+ * These internal types are designed to adhere to common database practices and are not specific to any particular SQL database.
56
+ *
57
+ * @param {string} tableName The table where the column exists.
58
+ * @param {string} propertyName The name of the column for which the type is being retrieved.
59
+ * @returns The internal, database-agnostic type of the column.
60
+ */
61
+ private getColumnType() {
62
+ return (tableName: string, propertyName: string): string => {
63
+ const table = this.getTable(tableName);
64
+ const column = Object.values(table.columns).find((col) => col.name === propertyName);
65
+ if (!column) {
66
+ throw new Error(`(${table.name}) Column does not exist for property: ${propertyName}`);
67
+ }
68
+
69
+ if (isInstanceOf(column, IntegerColumn)) {
70
+ return 'int';
71
+ } else if (isInstanceOf(column, StringColumn)) {
72
+ return 'string';
73
+ } else if (isInstanceOf(column, FloatColumn)) {
74
+ return 'float';
75
+ } else if (isInstanceOf(column, DecimalColumn)) {
76
+ return 'decimal';
77
+ } else if (isInstanceOf(column, BooleanColumn)) {
78
+ return 'boolean';
79
+ } else if (isInstanceOf(column, DateColumn)) {
80
+ return 'date';
81
+ } else if (isInstanceOf(column, DateTimeColumn)) {
82
+ return 'datetime';
83
+ } else if (isInstanceOf(column, BinaryColumn)) {
84
+ return 'binary';
85
+ }
86
+
87
+ throw new Error(`(${table.name}) Column type for ${propertyName} is not recognized`);
88
+ };
89
+ }
35
90
  }
@@ -61,7 +61,7 @@ export class TestTable extends Table<TestRecord> {
61
61
  /**
62
62
  * Used for testing purposes only.
63
63
  * */
64
- export const getColumnTypeTestTable = (tableName: string) => {
64
+ export const getColTypeTestTable = (tableName: string) => {
65
65
  const testTable = new TestTable();
66
66
  if (testTable.name === tableName) {
67
67
  return new TestTable();
@@ -71,7 +71,7 @@ export const getColumnTypeTestTable = (tableName: string) => {
71
71
 
72
72
  export const columnTypeTests = (driver: DbDriver, dropTable: (table: Table<any>) => Promise<void>) => {
73
73
  return () => {
74
- const db = new Db(driver, getColumnTypeTestTable);
74
+ const db = new Db(driver, getColTypeTestTable);
75
75
 
76
76
  beforeAll(async () => {
77
77
  if (driver.start) {