{
	"id": 0,
	"name": "@zthun/works.dal",
	"kind": 1,
	"kindString": "Project",
	"flags": {},
	"originalName": "",
	"children": [
		{
			"id": 1,
			"name": "ZDatabaseMemory",
			"kind": 128,
			"kindString": "Class",
			"flags": {},
			"comment": {
				"shortText": "Represents an in memory database.",
				"text": "It is not recommended to use this for a production system.  This is mostly\nhere for testing and mocking.\n"
			},
			"children": [
				{
					"id": 2,
					"name": "Host",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isPublic": true,
						"isStatic": true,
						"isReadonly": true
					},
					"comment": {
						"shortText": "The host the in memory database runs on."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-memory.class.ts",
							"line": 24,
							"character": 25
						}
					],
					"type": {
						"type": "literal",
						"value": "127.0.0.1"
					},
					"defaultValue": "'127.0.0.1'"
				},
				{
					"id": 3,
					"name": "Port",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isPublic": true,
						"isStatic": true,
						"isReadonly": true
					},
					"comment": {
						"shortText": "The starting port the database runs on."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-memory.class.ts",
							"line": 29,
							"character": 25
						}
					],
					"type": {
						"type": "literal",
						"value": 32769
					},
					"defaultValue": "32769"
				},
				{
					"id": 17,
					"name": "count",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-memory.class.ts",
							"line": 99,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 18,
							"name": "count",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns a query that gives the document count for a filter.",
								"returns": "The count query.\n"
							},
							"parameters": [
								{
									"id": 19,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to count.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "number"
									}
								],
								"name": "IZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 87,
								"name": "IZDatabase.count"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 86,
						"name": "IZDatabase.count"
					}
				},
				{
					"id": 20,
					"name": "create",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-memory.class.ts",
							"line": 111,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 21,
							"name": "create",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Adds all documents in template to the database.",
								"returns": "The create query.\n"
							},
							"typeParameter": [
								{
									"id": 22,
									"name": "T",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 23,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to modify."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 24,
									"name": "template",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The list of documents to add.\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 22,
											"name": "T"
										}
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 22,
											"name": "T"
										}
									}
								],
								"name": "IZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 90,
								"name": "IZDatabase.create"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 89,
						"name": "IZDatabase.create"
					}
				},
				{
					"id": 34,
					"name": "delete",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-memory.class.ts",
							"line": 148,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 35,
							"name": "delete",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Deletes documents from the database that match a query.",
								"text": "WARNING:  If you do not specify a filter object for the delete,\nthen the collection is completely emptied.\n",
								"returns": "The delete query.\n"
							},
							"parameters": [
								{
									"id": 36,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to delete from.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "number"
									}
								],
								"name": "IZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 104,
								"name": "IZDatabase.delete"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 103,
						"name": "IZDatabase.delete"
					}
				},
				{
					"id": 15,
					"name": "kill",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-memory.class.ts",
							"line": 74,
							"character": 15
						}
					],
					"signatures": [
						{
							"id": 16,
							"name": "kill",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Kills the server.",
								"returns": "A promise that when resolved, has stopped the server.\n"
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "boolean"
									}
								],
								"qualifiedName": "Promise",
								"package": "typescript",
								"name": "Promise"
							}
						}
					]
				},
				{
					"id": 30,
					"name": "read",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-memory.class.ts",
							"line": 134,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 31,
							"name": "read",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Reads document from the database that match a query.",
								"returns": "The read query.\n"
							},
							"typeParameter": [
								{
									"id": 32,
									"name": "T",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 33,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to query.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 32,
											"name": "T"
										}
									}
								],
								"name": "IZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 100,
								"name": "IZDatabase.read"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 99,
						"name": "IZDatabase.read"
					}
				},
				{
					"id": 13,
					"name": "start",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-memory.class.ts",
							"line": 57,
							"character": 15
						}
					],
					"signatures": [
						{
							"id": 14,
							"name": "start",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Starts the in memory server.",
								"text": "You don't need to call this, but you can pre-wire the\nserver to be ready before any queries are invoked.\n",
								"returns": "A promise that when resolved, has started the server.\n"
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"qualifiedName": "Promise",
								"package": "typescript",
								"name": "Promise"
							}
						}
					]
				},
				{
					"id": 25,
					"name": "update",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-memory.class.ts",
							"line": 123,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 26,
							"name": "update",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Updates all documents that match the query filter with template.",
								"returns": "The update query.\n"
							},
							"typeParameter": [
								{
									"id": 27,
									"name": "T",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 28,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to update."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 29,
									"name": "template",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The template to update with.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 27,
												"name": "T"
											}
										],
										"qualifiedName": "Partial",
										"package": "typescript",
										"name": "Partial"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "number"
									}
								],
								"name": "IZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 95,
								"name": "IZDatabase.update"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 94,
						"name": "IZDatabase.update"
					}
				},
				{
					"id": 4,
					"name": "connect",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isStatic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-memory.class.ts",
							"line": 38,
							"character": 22
						}
					],
					"signatures": [
						{
							"id": 5,
							"name": "connect",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Establishes a connection to a database in memory.",
								"returns": "An in memory database.\n"
							},
							"parameters": [
								{
									"id": 6,
									"name": "options",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The database options.  The url is ignored.\n"
									},
									"type": {
										"type": "reference",
										"id": 127,
										"name": "IZDatabaseOptions"
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"id": 1,
										"name": "ZDatabaseMemory"
									}
								],
								"qualifiedName": "Promise",
								"package": "typescript",
								"name": "Promise"
							}
						}
					]
				}
			],
			"groups": [
				{
					"title": "Properties",
					"kind": 1024,
					"children": [
						2,
						3
					]
				},
				{
					"title": "Methods",
					"kind": 2048,
					"children": [
						17,
						20,
						34,
						15,
						30,
						13,
						25,
						4
					]
				}
			],
			"sources": [
				{
					"fileName": "packages/works.dal/src/database/database-memory.class.ts",
					"line": 16,
					"character": 13
				}
			],
			"implementedTypes": [
				{
					"type": "reference",
					"id": 85,
					"name": "IZDatabase"
				}
			]
		},
		{
			"id": 43,
			"name": "ZDatabaseMongo",
			"kind": 128,
			"kindString": "Class",
			"flags": {},
			"comment": {
				"shortText": "Represents an IZDatabase object that connects to mongodb."
			},
			"children": [
				{
					"id": 47,
					"name": "constructor",
					"kind": 512,
					"kindString": "Constructor",
					"flags": {},
					"signatures": [
						{
							"id": 48,
							"name": "new ZDatabaseMongo",
							"kind": 16384,
							"kindString": "Constructor signature",
							"flags": {},
							"type": {
								"type": "reference",
								"id": 43,
								"name": "ZDatabaseMongo"
							}
						}
					]
				},
				{
					"id": 54,
					"name": "$database",
					"kind": 262144,
					"kindString": "Accessor",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-mongo.class.ts",
							"line": 51,
							"character": 13
						}
					],
					"getSignature": [
						{
							"id": 55,
							"name": "$database",
							"kind": 524288,
							"kindString": "Get signature",
							"flags": {},
							"comment": {
								"shortText": "Gets the connection database.",
								"returns": "The connection database.\n"
							},
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					]
				},
				{
					"id": 50,
					"name": "$options",
					"kind": 262144,
					"kindString": "Accessor",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-mongo.class.ts",
							"line": 33,
							"character": 13
						}
					],
					"getSignature": [
						{
							"id": 51,
							"name": "$options",
							"kind": 524288,
							"kindString": "Get signature",
							"flags": {},
							"comment": {
								"shortText": "Gets the connection options.",
								"returns": "A copy of the connection options.\n"
							},
							"type": {
								"type": "reference",
								"id": 127,
								"name": "IZDatabaseOptions"
							}
						}
					]
				},
				{
					"id": 52,
					"name": "$url",
					"kind": 262144,
					"kindString": "Accessor",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-mongo.class.ts",
							"line": 42,
							"character": 13
						}
					],
					"getSignature": [
						{
							"id": 53,
							"name": "$url",
							"kind": 524288,
							"kindString": "Get signature",
							"flags": {},
							"comment": {
								"shortText": "Gets the connection url.",
								"returns": "The connection host.\n"
							},
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					]
				},
				{
					"id": 56,
					"name": "count",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-mongo.class.ts",
							"line": 62,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 57,
							"name": "count",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns a query that gives the document count for a filter.",
								"returns": "The count query.\n"
							},
							"parameters": [
								{
									"id": 58,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to count.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "number"
									}
								],
								"name": "IZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 87,
								"name": "IZDatabase.count"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 86,
						"name": "IZDatabase.count"
					}
				},
				{
					"id": 59,
					"name": "create",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-mongo.class.ts",
							"line": 79,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 60,
							"name": "create",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Adds all documents in template to the database.",
								"returns": "The create query.\n"
							},
							"typeParameter": [
								{
									"id": 61,
									"name": "T",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 62,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to modify."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 63,
									"name": "template",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The list of documents to add.\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 61,
											"name": "T"
										}
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 61,
											"name": "T"
										}
									}
								],
								"name": "IZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 90,
								"name": "IZDatabase.create"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 89,
						"name": "IZDatabase.create"
					}
				},
				{
					"id": 73,
					"name": "delete",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-mongo.class.ts",
							"line": 152,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 74,
							"name": "delete",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Deletes documents from the database that match a query.",
								"text": "WARNING:  If you do not specify a filter object for the delete,\nthen the collection is completely emptied.\n",
								"returns": "The delete query.\n"
							},
							"parameters": [
								{
									"id": 75,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to delete from.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "number"
									}
								],
								"name": "IZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 104,
								"name": "IZDatabase.delete"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 103,
						"name": "IZDatabase.delete"
					}
				},
				{
					"id": 69,
					"name": "read",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-mongo.class.ts",
							"line": 115,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 70,
							"name": "read",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Reads document from the database that match a query.",
								"returns": "The read query.\n"
							},
							"typeParameter": [
								{
									"id": 71,
									"name": "T",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 72,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to query.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 71,
											"name": "T"
										}
									}
								],
								"name": "IZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 100,
								"name": "IZDatabase.read"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 99,
						"name": "IZDatabase.read"
					}
				},
				{
					"id": 64,
					"name": "update",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-mongo.class.ts",
							"line": 99,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 65,
							"name": "update",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Updates all documents that match the query filter with template.",
								"returns": "The update query.\n"
							},
							"typeParameter": [
								{
									"id": 66,
									"name": "T",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 67,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to update."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 68,
									"name": "template",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The template to update with.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 66,
												"name": "T"
											}
										],
										"qualifiedName": "Partial",
										"package": "typescript",
										"name": "Partial"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "number"
									}
								],
								"name": "IZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 95,
								"name": "IZDatabase.update"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 94,
						"name": "IZDatabase.update"
					}
				},
				{
					"id": 44,
					"name": "connect",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isStatic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/database/database-mongo.class.ts",
							"line": 20,
							"character": 16
						}
					],
					"signatures": [
						{
							"id": 45,
							"name": "connect",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Establishes connection parameters to a database.",
								"returns": "A new database can can be used to connect and query a mongodb database instance.\n"
							},
							"parameters": [
								{
									"id": 46,
									"name": "options",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The database options.  All options are used here.\n"
									},
									"type": {
										"type": "reference",
										"id": 127,
										"name": "IZDatabaseOptions"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 43,
								"name": "ZDatabaseMongo"
							}
						}
					]
				}
			],
			"groups": [
				{
					"title": "Constructors",
					"kind": 512,
					"children": [
						47
					]
				},
				{
					"title": "Accessors",
					"kind": 262144,
					"children": [
						54,
						50,
						52
					]
				},
				{
					"title": "Methods",
					"kind": 2048,
					"children": [
						56,
						59,
						73,
						69,
						64,
						44
					]
				}
			],
			"sources": [
				{
					"fileName": "packages/works.dal/src/database/database-mongo.class.ts",
					"line": 12,
					"character": 13
				}
			],
			"implementedTypes": [
				{
					"type": "reference",
					"id": 85,
					"name": "IZDatabase"
				}
			]
		},
		{
			"id": 106,
			"name": "ZDatabaseOptionsBuilder",
			"kind": 128,
			"kindString": "Class",
			"flags": {},
			"comment": {
				"shortText": "Represents an object that can be used to build a database options object."
			},
			"children": [
				{
					"id": 107,
					"name": "constructor",
					"kind": 512,
					"kindString": "Constructor",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/options/database-options-builder.class.ts",
							"line": 12,
							"character": 2
						}
					],
					"signatures": [
						{
							"id": 108,
							"name": "new ZDatabaseOptionsBuilder",
							"kind": 16384,
							"kindString": "Constructor signature",
							"flags": {},
							"comment": {
								"shortText": "Initializes a new instance of this object."
							},
							"type": {
								"type": "reference",
								"id": 106,
								"name": "ZDatabaseOptionsBuilder"
							}
						}
					]
				},
				{
					"id": 119,
					"name": "assign",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/options/database-options-builder.class.ts",
							"line": 61,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 120,
							"name": "assign",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Assigns values from a subset of database options to this object.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 121,
									"name": "other",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The partial object to assign values from.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 127,
												"name": "IZDatabaseOptions"
											}
										],
										"qualifiedName": "Partial",
										"package": "typescript",
										"name": "Partial"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 106,
								"name": "ZDatabaseOptionsBuilder"
							}
						}
					]
				},
				{
					"id": 125,
					"name": "build",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/options/database-options-builder.class.ts",
							"line": 83,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 126,
							"name": "build",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Builds the options.",
								"returns": "A copy of the current options structure.\n"
							},
							"type": {
								"type": "reference",
								"id": 127,
								"name": "IZDatabaseOptions"
							}
						}
					]
				},
				{
					"id": 122,
					"name": "copy",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/options/database-options-builder.class.ts",
							"line": 73,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 123,
							"name": "copy",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Copies values from another database options structure to this object.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 124,
									"name": "other",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The object to copy.\n"
									},
									"type": {
										"type": "reference",
										"id": 127,
										"name": "IZDatabaseOptions"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 106,
								"name": "ZDatabaseOptionsBuilder"
							}
						}
					]
				},
				{
					"id": 110,
					"name": "database",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/options/database-options-builder.class.ts",
							"line": 25,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 111,
							"name": "database",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets the database to connect to.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 112,
									"name": "val",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The value to set.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 106,
								"name": "ZDatabaseOptionsBuilder"
							}
						}
					]
				},
				{
					"id": 116,
					"name": "timeout",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/options/database-options-builder.class.ts",
							"line": 49,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 117,
							"name": "timeout",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets the timeout.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 118,
									"name": "val",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The value to set.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 106,
								"name": "ZDatabaseOptionsBuilder"
							}
						}
					]
				},
				{
					"id": 113,
					"name": "url",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/options/database-options-builder.class.ts",
							"line": 37,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 114,
							"name": "url",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets the connection string.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 115,
									"name": "val",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The connection string.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 106,
								"name": "ZDatabaseOptionsBuilder"
							}
						}
					]
				}
			],
			"groups": [
				{
					"title": "Constructors",
					"kind": 512,
					"children": [
						107
					]
				},
				{
					"title": "Methods",
					"kind": 2048,
					"children": [
						119,
						125,
						122,
						110,
						116,
						113
					]
				}
			],
			"sources": [
				{
					"fileName": "packages/works.dal/src/options/database-options-builder.class.ts",
					"line": 6,
					"character": 13
				}
			]
		},
		{
			"id": 131,
			"name": "ZDatabaseQuery",
			"kind": 128,
			"kindString": "Class",
			"flags": {},
			"comment": {
				"shortText": "Represents an implementation of the IZDatabaseQuery interface."
			},
			"children": [
				{
					"id": 132,
					"name": "constructor",
					"kind": 512,
					"kindString": "Constructor",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 63,
							"character": 2
						}
					],
					"signatures": [
						{
							"id": 133,
							"name": "new ZDatabaseQuery",
							"kind": 16384,
							"kindString": "Constructor signature",
							"flags": {},
							"comment": {
								"shortText": "Initializes a new instance of this object."
							},
							"typeParameter": [
								{
									"id": 134,
									"name": "R",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 135,
									"name": "_do",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The invoke action for the query.\n"
									},
									"type": {
										"type": "reflection",
										"declaration": {
											"id": 136,
											"name": "__type",
											"kind": 65536,
											"kindString": "Type literal",
											"flags": {},
											"signatures": [
												{
													"id": 137,
													"name": "__type",
													"kind": 4096,
													"kindString": "Call signature",
													"flags": {},
													"parameters": [
														{
															"id": 138,
															"name": "query",
															"kind": 32768,
															"kindString": "Parameter",
															"flags": {},
															"type": {
																"type": "reference",
																"id": 131,
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 134,
																		"name": "R"
																	}
																],
																"name": "ZDatabaseQuery"
															}
														}
													],
													"type": {
														"type": "reference",
														"typeArguments": [
															{
																"type": "reference",
																"id": 134,
																"name": "R"
															}
														],
														"qualifiedName": "Promise",
														"package": "typescript",
														"name": "Promise"
													}
												}
											]
										}
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 131,
								"typeArguments": [
									{
										"type": "reference",
										"id": 134,
										"name": "R"
									}
								],
								"name": "ZDatabaseQuery"
							}
						}
					]
				},
				{
					"id": 144,
					"name": "$filter",
					"kind": 262144,
					"kindString": "Accessor",
					"flags": {
						"isPublic": true
					},
					"comment": {
						"shortText": "The current filter."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 18,
							"character": 13
						}
					],
					"getSignature": [
						{
							"id": 145,
							"name": "$filter",
							"kind": 524288,
							"kindString": "Get signature",
							"flags": {},
							"comment": {
								"shortText": "Gets the current filter.",
								"returns": "The current filter.\n"
							},
							"type": {
								"type": "reference",
								"id": 239,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"qualifiedName": "Filter",
								"package": "mongodb",
								"name": "Filter"
							},
							"implementationOf": {
								"type": "reference",
								"id": 188,
								"name": "IZDatabaseQuery.$filter"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 188,
						"name": "IZDatabaseQuery.$filter"
					}
				},
				{
					"id": 152,
					"name": "$join",
					"kind": 262144,
					"kindString": "Accessor",
					"flags": {
						"isPublic": true
					},
					"comment": {
						"shortText": "The current join."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 54,
							"character": 13
						}
					],
					"getSignature": [
						{
							"id": 153,
							"name": "$join",
							"kind": 524288,
							"kindString": "Get signature",
							"flags": {},
							"comment": {
								"shortText": "Gets the current join.",
								"returns": "The current join.\n"
							},
							"type": {
								"type": "reference",
								"id": 233,
								"name": "JoinCriteria"
							},
							"implementationOf": {
								"type": "reference",
								"id": 189,
								"name": "IZDatabaseQuery.$join"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 189,
						"name": "IZDatabaseQuery.$join"
					}
				},
				{
					"id": 148,
					"name": "$page",
					"kind": 262144,
					"kindString": "Accessor",
					"flags": {
						"isPublic": true
					},
					"comment": {
						"shortText": "The current page."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 36,
							"character": 13
						}
					],
					"getSignature": [
						{
							"id": 149,
							"name": "$page",
							"kind": 524288,
							"kindString": "Get signature",
							"flags": {},
							"comment": {
								"shortText": "Gets the current page.",
								"returns": "The current page.\n"
							},
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"implementationOf": {
								"type": "reference",
								"id": 191,
								"name": "IZDatabaseQuery.$page"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 191,
						"name": "IZDatabaseQuery.$page"
					}
				},
				{
					"id": 150,
					"name": "$size",
					"kind": 262144,
					"kindString": "Accessor",
					"flags": {
						"isPublic": true
					},
					"comment": {
						"shortText": "The current page size."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 45,
							"character": 13
						}
					],
					"getSignature": [
						{
							"id": 151,
							"name": "$size",
							"kind": 524288,
							"kindString": "Get signature",
							"flags": {},
							"comment": {
								"shortText": "Gets the current page size.",
								"returns": "The current page size.\n"
							},
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"implementationOf": {
								"type": "reference",
								"id": 192,
								"name": "IZDatabaseQuery.$size"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 192,
						"name": "IZDatabaseQuery.$size"
					}
				},
				{
					"id": 146,
					"name": "$sort",
					"kind": 262144,
					"kindString": "Accessor",
					"flags": {
						"isPublic": true
					},
					"comment": {
						"shortText": "The current sort."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 27,
							"character": 13
						}
					],
					"getSignature": [
						{
							"id": 147,
							"name": "$sort",
							"kind": 524288,
							"kindString": "Get signature",
							"flags": {},
							"comment": {
								"shortText": "Gets the current sort.",
								"returns": "The current sort.\n"
							},
							"type": {
								"type": "reference",
								"id": 227,
								"name": "SortCriteria"
							},
							"implementationOf": {
								"type": "reference",
								"id": 190,
								"name": "IZDatabaseQuery.$sort"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 190,
						"name": "IZDatabaseQuery.$sort"
					}
				},
				{
					"id": 154,
					"name": "copy",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 72,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 155,
							"name": "copy",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Copies another query into this query.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 156,
									"name": "other",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The query to copy.\n"
									},
									"type": {
										"type": "reference",
										"id": 187,
										"typeArguments": [
											{
												"type": "reference",
												"id": 134,
												"name": "R"
											}
										],
										"name": "IZDatabaseQuery"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 131,
								"typeArguments": [
									{
										"type": "reference",
										"id": 134,
										"name": "R"
									}
								],
								"name": "ZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 194,
								"name": "IZDatabaseQuery.copy"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 193,
						"name": "IZDatabaseQuery.copy"
					}
				},
				{
					"id": 157,
					"name": "filter",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 88,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 158,
							"name": "filter",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets the filter.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 159,
									"name": "filter",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The filter to use.\n"
									},
									"type": {
										"type": "reference",
										"id": 239,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"qualifiedName": "Filter",
										"package": "mongodb",
										"name": "Filter"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 131,
								"typeArguments": [
									{
										"type": "reference",
										"id": 134,
										"name": "R"
									}
								],
								"name": "ZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 197,
								"name": "IZDatabaseQuery.filter"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 196,
						"name": "IZDatabaseQuery.filter"
					}
				},
				{
					"id": 176,
					"name": "join",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 164,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 177,
							"name": "join",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Adds a join criteria.",
								"returns": "This object.\n"
							},
							"typeParameter": [
								{
									"id": 178,
									"name": "L",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								},
								{
									"id": 179,
									"name": "F",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 180,
									"name": "from",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The collection to join on."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 181,
									"name": "local",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The local field to match."
									},
									"type": {
										"type": "typeOperator",
										"operator": "keyof",
										"target": {
											"type": "reference",
											"id": 178,
											"name": "L"
										}
									}
								},
								{
									"id": 182,
									"name": "foreign",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The field from 'from' to match on."
									},
									"type": {
										"type": "typeOperator",
										"operator": "keyof",
										"target": {
											"type": "reference",
											"id": 179,
											"name": "F"
										}
									}
								},
								{
									"id": 183,
									"name": "as",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The output name of the field.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 131,
								"typeArguments": [
									{
										"type": "reference",
										"id": 134,
										"name": "R"
									}
								],
								"name": "ZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 203,
								"name": "IZDatabaseQuery.join"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 202,
						"name": "IZDatabaseQuery.join"
					}
				},
				{
					"id": 173,
					"name": "joins",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 149,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 174,
							"name": "joins",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets criteria to join on.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 175,
									"name": "join",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The join criteria.\n"
									},
									"type": {
										"type": "reference",
										"id": 233,
										"name": "JoinCriteria"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 131,
								"typeArguments": [
									{
										"type": "reference",
										"id": 134,
										"name": "R"
									}
								],
								"name": "ZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 200,
								"name": "IZDatabaseQuery.joins"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 199,
						"name": "IZDatabaseQuery.joins"
					}
				},
				{
					"id": 167,
					"name": "page",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 125,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 168,
							"name": "page",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets the page.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 169,
									"name": "page",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The 0 based page index.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 131,
								"typeArguments": [
									{
										"type": "reference",
										"id": 134,
										"name": "R"
									}
								],
								"name": "ZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 218,
								"name": "IZDatabaseQuery.page"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 217,
						"name": "IZDatabaseQuery.page"
					}
				},
				{
					"id": 184,
					"name": "run",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 174,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 185,
							"name": "run",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Invokes the action.",
								"returns": "A promise that when resolved, has returned the results of the query.\n"
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"id": 134,
										"name": "R"
									}
								],
								"qualifiedName": "Promise",
								"package": "typescript",
								"name": "Promise"
							},
							"implementationOf": {
								"type": "reference",
								"id": 224,
								"name": "IZDatabaseQuery.run"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 223,
						"name": "IZDatabaseQuery.run"
					}
				},
				{
					"id": 170,
					"name": "size",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 137,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 171,
							"name": "size",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets the page size.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 172,
									"name": "size",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The page size.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 131,
								"typeArguments": [
									{
										"type": "reference",
										"id": 134,
										"name": "R"
									}
								],
								"name": "ZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 221,
								"name": "IZDatabaseQuery.size"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 220,
						"name": "IZDatabaseQuery.size"
					}
				},
				{
					"id": 163,
					"name": "sort",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 113,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 164,
							"name": "sort",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Updates the current sort criteria by adding one.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 165,
									"name": "key",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The sort key."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 166,
									"name": "direction",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The direction to sort.\n"
									},
									"type": {
										"type": "reference",
										"id": 232,
										"name": "SortDirection"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 131,
								"typeArguments": [
									{
										"type": "reference",
										"id": 134,
										"name": "R"
									}
								],
								"name": "ZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 214,
								"name": "IZDatabaseQuery.sort"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 213,
						"name": "IZDatabaseQuery.sort"
					}
				},
				{
					"id": 160,
					"name": "sorts",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.class.ts",
							"line": 100,
							"character": 9
						}
					],
					"signatures": [
						{
							"id": 161,
							"name": "sorts",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets the entire sort criteria.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 162,
									"name": "sort",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The sort criteria.\n"
									},
									"type": {
										"type": "reference",
										"id": 227,
										"name": "SortCriteria"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 131,
								"typeArguments": [
									{
										"type": "reference",
										"id": 134,
										"name": "R"
									}
								],
								"name": "ZDatabaseQuery"
							},
							"implementationOf": {
								"type": "reference",
								"id": 211,
								"name": "IZDatabaseQuery.sorts"
							}
						}
					],
					"implementationOf": {
						"type": "reference",
						"id": 210,
						"name": "IZDatabaseQuery.sorts"
					}
				}
			],
			"groups": [
				{
					"title": "Constructors",
					"kind": 512,
					"children": [
						132
					]
				},
				{
					"title": "Accessors",
					"kind": 262144,
					"children": [
						144,
						152,
						148,
						150,
						146
					]
				},
				{
					"title": "Methods",
					"kind": 2048,
					"children": [
						154,
						157,
						176,
						173,
						167,
						184,
						170,
						163,
						160
					]
				}
			],
			"sources": [
				{
					"fileName": "packages/works.dal/src/query/database-query.class.ts",
					"line": 6,
					"character": 13
				}
			],
			"typeParameter": [
				{
					"id": 186,
					"name": "R",
					"kind": 131072,
					"kindString": "Type parameter",
					"flags": {}
				}
			],
			"implementedTypes": [
				{
					"type": "reference",
					"id": 187,
					"typeArguments": [
						{
							"type": "reference",
							"id": 134,
							"name": "R"
						}
					],
					"name": "IZDatabaseQuery"
				}
			]
		},
		{
			"id": 85,
			"name": "IZDatabase",
			"kind": 256,
			"kindString": "Interface",
			"flags": {},
			"comment": {
				"shortText": "Represents a set of database operations for a document database."
			},
			"children": [
				{
					"id": 86,
					"name": "count",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 87,
							"name": "count",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Retrieves the count of documents from the source.",
								"returns": "The query object that can be used to modify and invoke the query.\n"
							},
							"parameters": [
								{
									"id": 88,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to count.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "number"
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				},
				{
					"id": 89,
					"name": "create",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 90,
							"name": "create",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Inserts many documents in the database.",
								"returns": "A query object that can be used to modify and invoke the query.\n"
							},
							"typeParameter": [
								{
									"id": 91,
									"name": "T",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 92,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to create into."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 93,
									"name": "template",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The template document with or without the ids.\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 91,
											"name": "T"
										}
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 91,
											"name": "T"
										}
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				},
				{
					"id": 103,
					"name": "delete",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 104,
							"name": "delete",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Deletes documents from the database.",
								"returns": "A query object that can be used to modify and invoke the query.\n"
							},
							"parameters": [
								{
									"id": 105,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to delete from.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "number"
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				},
				{
					"id": 99,
					"name": "read",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 100,
							"name": "read",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Reads fields from the database.",
								"returns": "A query object that can be used to modify and invoke the query.\n"
							},
							"typeParameter": [
								{
									"id": 101,
									"name": "T",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 102,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to read from.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 101,
											"name": "T"
										}
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				},
				{
					"id": 94,
					"name": "update",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 95,
							"name": "update",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Updates fields in the database.",
								"returns": "A query object that can be used to modify and invoke the query.\n"
							},
							"typeParameter": [
								{
									"id": 96,
									"name": "T",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 97,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The source to update."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 98,
									"name": "template",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The partial template that contains the fields to update.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 96,
												"name": "T"
											}
										],
										"qualifiedName": "Partial",
										"package": "typescript",
										"name": "Partial"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "number"
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				}
			],
			"groups": [
				{
					"title": "Methods",
					"kind": 2048,
					"children": [
						86,
						89,
						103,
						99,
						94
					]
				}
			],
			"sources": [
				{
					"fileName": "packages/works.dal/src/database/database.interface.ts",
					"line": 6,
					"character": 17
				}
			],
			"implementedBy": [
				{
					"type": "reference",
					"id": 1,
					"name": "ZDatabaseMemory"
				},
				{
					"type": "reference",
					"id": 43,
					"name": "ZDatabaseMongo"
				}
			]
		},
		{
			"id": 127,
			"name": "IZDatabaseOptions",
			"kind": 256,
			"kindString": "Interface",
			"flags": {},
			"comment": {
				"shortText": "Represents options for a database."
			},
			"children": [
				{
					"id": 128,
					"name": "database",
					"kind": 1024,
					"kindString": "Property",
					"flags": {},
					"comment": {
						"shortText": "The name of the database to connect to and modify."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/options/database-options.interface.ts",
							"line": 8,
							"character": 2
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					}
				},
				{
					"id": 130,
					"name": "timeout",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isOptional": true
					},
					"comment": {
						"shortText": "The timeout value for connections."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/options/database-options.interface.ts",
							"line": 16,
							"character": 2
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "number"
					}
				},
				{
					"id": 129,
					"name": "url",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isOptional": true
					},
					"comment": {
						"shortText": "The database connection string."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/options/database-options.interface.ts",
							"line": 12,
							"character": 2
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					}
				}
			],
			"groups": [
				{
					"title": "Properties",
					"kind": 1024,
					"children": [
						128,
						130,
						129
					]
				}
			],
			"sources": [
				{
					"fileName": "packages/works.dal/src/options/database-options.interface.ts",
					"line": 4,
					"character": 17
				}
			]
		},
		{
			"id": 187,
			"name": "IZDatabaseQuery",
			"kind": 256,
			"kindString": "Interface",
			"flags": {},
			"comment": {
				"shortText": "Represents a query to run against a database.",
				"text": "The query object uses the builder pattern to modify the\nresults.\n"
			},
			"children": [
				{
					"id": 188,
					"name": "$filter",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isReadonly": true
					},
					"comment": {
						"shortText": "The current filter."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.interface.ts",
							"line": 43,
							"character": 11
						}
					],
					"type": {
						"type": "reference",
						"id": 239,
						"typeArguments": [
							{
								"type": "intrinsic",
								"name": "any"
							}
						],
						"qualifiedName": "Filter",
						"package": "mongodb",
						"name": "Filter"
					}
				},
				{
					"id": 189,
					"name": "$join",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isReadonly": true
					},
					"comment": {
						"shortText": "The current join."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.interface.ts",
							"line": 48,
							"character": 11
						}
					],
					"type": {
						"type": "reference",
						"id": 233,
						"name": "JoinCriteria"
					}
				},
				{
					"id": 191,
					"name": "$page",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isReadonly": true
					},
					"comment": {
						"shortText": "The current page."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.interface.ts",
							"line": 58,
							"character": 11
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "number"
					}
				},
				{
					"id": 192,
					"name": "$size",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isReadonly": true
					},
					"comment": {
						"shortText": "The current page size."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.interface.ts",
							"line": 63,
							"character": 11
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "number"
					}
				},
				{
					"id": 190,
					"name": "$sort",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isReadonly": true
					},
					"comment": {
						"shortText": "The current sort."
					},
					"sources": [
						{
							"fileName": "packages/works.dal/src/query/database-query.interface.ts",
							"line": 53,
							"character": 11
						}
					],
					"type": {
						"type": "reference",
						"id": 227,
						"name": "SortCriteria"
					}
				},
				{
					"id": 193,
					"name": "copy",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 194,
							"name": "copy",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Copies the entire contents of another query into this query.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 195,
									"name": "other",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The query to copy.\n"
									},
									"type": {
										"type": "reference",
										"id": 187,
										"typeArguments": [
											{
												"type": "reference",
												"id": 225,
												"name": "R"
											}
										],
										"name": "IZDatabaseQuery"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "reference",
										"id": 225,
										"name": "R"
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				},
				{
					"id": 196,
					"name": "filter",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 197,
							"name": "filter",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets the filter for the query.  The default is nothing.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 198,
									"name": "filter",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The filter query.\n"
									},
									"type": {
										"type": "reference",
										"id": 239,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"qualifiedName": "Filter",
										"package": "mongodb",
										"name": "Filter"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "reference",
										"id": 225,
										"name": "R"
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				},
				{
					"id": 202,
					"name": "join",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 203,
							"name": "join",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Adds a join criteria.",
								"returns": "This object.\n"
							},
							"typeParameter": [
								{
									"id": 204,
									"name": "F",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								},
								{
									"id": 205,
									"name": "J",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 206,
									"name": "from",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The collection to join on."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 207,
									"name": "local",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The local field to match."
									},
									"type": {
										"type": "typeOperator",
										"operator": "keyof",
										"target": {
											"type": "reference",
											"id": 204,
											"name": "F"
										}
									}
								},
								{
									"id": 208,
									"name": "foreign",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The field from 'from' to match on."
									},
									"type": {
										"type": "typeOperator",
										"operator": "keyof",
										"target": {
											"type": "reference",
											"id": 205,
											"name": "J"
										}
									}
								},
								{
									"id": 209,
									"name": "as",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The output name of the field.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "reference",
										"id": 225,
										"name": "R"
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				},
				{
					"id": 199,
					"name": "joins",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 200,
							"name": "joins",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets criteria to join on.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 201,
									"name": "join",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The join criteria.\n"
									},
									"type": {
										"type": "reference",
										"id": 233,
										"name": "JoinCriteria"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "reference",
										"id": 225,
										"name": "R"
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				},
				{
					"id": 217,
					"name": "page",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 218,
							"name": "page",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets the page to retrieve.  The default is the first page.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 219,
									"name": "page",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The page to retrieve.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "reference",
										"id": 225,
										"name": "R"
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				},
				{
					"id": 223,
					"name": "run",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 224,
							"name": "run",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Runs the query.",
								"returns": "A promise that, when resolved, has ran and completed the query or transaction according to the parameters.\n"
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"id": 225,
										"name": "R"
									}
								],
								"qualifiedName": "Promise",
								"package": "typescript",
								"name": "Promise"
							}
						}
					]
				},
				{
					"id": 220,
					"name": "size",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 221,
							"name": "size",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets the page size.  The default is infinity.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 222,
									"name": "size",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The page size.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "reference",
										"id": 225,
										"name": "R"
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				},
				{
					"id": 213,
					"name": "sort",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 214,
							"name": "sort",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Adds a sort to the criteria.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 215,
									"name": "key",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The key to sort by."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 216,
									"name": "direction",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The sorting direction.\n"
									},
									"type": {
										"type": "reference",
										"id": 232,
										"name": "SortDirection"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "reference",
										"id": 225,
										"name": "R"
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				},
				{
					"id": 210,
					"name": "sorts",
					"kind": 2048,
					"kindString": "Method",
					"flags": {},
					"signatures": [
						{
							"id": 211,
							"name": "sorts",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Sets the sort criteria.",
								"returns": "This object.\n"
							},
							"parameters": [
								{
									"id": 212,
									"name": "sort",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"shortText": "The sort criteria.\n"
									},
									"type": {
										"type": "reference",
										"id": 227,
										"name": "SortCriteria"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 187,
								"typeArguments": [
									{
										"type": "reference",
										"id": 225,
										"name": "R"
									}
								],
								"name": "IZDatabaseQuery"
							}
						}
					]
				}
			],
			"groups": [
				{
					"title": "Properties",
					"kind": 1024,
					"children": [
						188,
						189,
						191,
						192,
						190
					]
				},
				{
					"title": "Methods",
					"kind": 2048,
					"children": [
						193,
						196,
						202,
						199,
						217,
						223,
						220,
						213,
						210
					]
				}
			],
			"sources": [
				{
					"fileName": "packages/works.dal/src/query/database-query.interface.ts",
					"line": 39,
					"character": 17
				}
			],
			"typeParameter": [
				{
					"id": 225,
					"name": "R",
					"kind": 131072,
					"kindString": "Type parameter",
					"flags": {}
				}
			],
			"implementedBy": [
				{
					"type": "reference",
					"id": 131,
					"name": "ZDatabaseQuery"
				}
			]
		},
		{
			"id": 239,
			"name": "Filter",
			"kind": 4194304,
			"kindString": "Type alias",
			"flags": {
				"isExternal": true
			},
			"comment": {
				"shortText": "A MongoDB filter can be some portion of the schema or a set of operators @public"
			},
			"sources": [
				{
					"fileName": "node_modules/mongodb/mongodb.d.ts",
					"line": 3045,
					"character": 20
				}
			],
			"typeParameter": [
				{
					"id": 240,
					"name": "TSchema",
					"kind": 131072,
					"kindString": "Type parameter",
					"flags": {
						"isExternal": true
					}
				}
			],
			"type": {
				"type": "union",
				"types": [
					{
						"type": "reference",
						"typeArguments": [
							{
								"type": "reference",
								"id": 240,
								"qualifiedName": "TSchema",
								"package": "mongodb",
								"name": "TSchema"
							}
						],
						"qualifiedName": "Partial",
						"package": "typescript",
						"name": "Partial"
					},
					{
						"type": "intersection",
						"types": [
							{
								"type": "mapped",
								"parameter": "Property",
								"parameterType": {
									"type": "reference",
									"typeArguments": [
										{
											"type": "reference",
											"typeArguments": [
												{
													"type": "reference",
													"typeArguments": [
														{
															"type": "reference",
															"id": 240,
															"qualifiedName": "TSchema",
															"package": "mongodb",
															"name": "TSchema"
														}
													],
													"qualifiedName": "WithId",
													"package": "mongodb",
													"name": "WithId"
												}
											],
											"qualifiedName": "NestedPaths",
											"package": "mongodb",
											"name": "NestedPaths"
										},
										{
											"type": "literal",
											"value": "."
										}
									],
									"qualifiedName": "Join",
									"package": "mongodb",
									"name": "Join"
								},
								"templateType": {
									"type": "reference",
									"typeArguments": [
										{
											"type": "reference",
											"typeArguments": [
												{
													"type": "reference",
													"typeArguments": [
														{
															"type": "reference",
															"id": 240,
															"qualifiedName": "TSchema",
															"package": "mongodb",
															"name": "TSchema"
														}
													],
													"qualifiedName": "WithId",
													"package": "mongodb",
													"name": "WithId"
												},
												{
													"type": "reference",
													"qualifiedName": "Property",
													"package": "mongodb",
													"name": "Property"
												}
											],
											"qualifiedName": "PropertyType",
											"package": "mongodb",
											"name": "PropertyType"
										}
									],
									"qualifiedName": "Condition",
									"package": "mongodb",
									"name": "Condition"
								},
								"optionalModifier": "+"
							},
							{
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 240,
												"qualifiedName": "TSchema",
												"package": "mongodb",
												"name": "TSchema"
											}
										],
										"qualifiedName": "WithId",
										"package": "mongodb",
										"name": "WithId"
									}
								],
								"qualifiedName": "RootFilterOperators",
								"package": "mongodb",
								"name": "RootFilterOperators"
							}
						]
					}
				]
			}
		},
		{
			"id": 233,
			"name": "JoinCriteria",
			"kind": 4194304,
			"kindString": "Type alias",
			"flags": {},
			"comment": {
				"shortText": "The join criteria."
			},
			"sources": [
				{
					"fileName": "packages/works.dal/src/query/database-query.interface.ts",
					"line": 31,
					"character": 12
				}
			],
			"type": {
				"type": "array",
				"elementType": {
					"type": "reflection",
					"declaration": {
						"id": 234,
						"name": "__type",
						"kind": 65536,
						"kindString": "Type literal",
						"flags": {},
						"children": [
							{
								"id": 238,
								"name": "as",
								"kind": 1024,
								"kindString": "Property",
								"flags": {},
								"sources": [
									{
										"fileName": "packages/works.dal/src/query/database-query.interface.ts",
										"line": 31,
										"character": 81
									}
								],
								"type": {
									"type": "intrinsic",
									"name": "string"
								}
							},
							{
								"id": 237,
								"name": "foreign",
								"kind": 1024,
								"kindString": "Property",
								"flags": {},
								"sources": [
									{
										"fileName": "packages/works.dal/src/query/database-query.interface.ts",
										"line": 31,
										"character": 64
									}
								],
								"type": {
									"type": "intrinsic",
									"name": "string"
								}
							},
							{
								"id": 235,
								"name": "from",
								"kind": 1024,
								"kindString": "Property",
								"flags": {},
								"sources": [
									{
										"fileName": "packages/works.dal/src/query/database-query.interface.ts",
										"line": 31,
										"character": 35
									}
								],
								"type": {
									"type": "intrinsic",
									"name": "string"
								}
							},
							{
								"id": 236,
								"name": "local",
								"kind": 1024,
								"kindString": "Property",
								"flags": {},
								"sources": [
									{
										"fileName": "packages/works.dal/src/query/database-query.interface.ts",
										"line": 31,
										"character": 49
									}
								],
								"type": {
									"type": "intrinsic",
									"name": "string"
								}
							}
						],
						"groups": [
							{
								"title": "Properties",
								"kind": 1024,
								"children": [
									238,
									237,
									235,
									236
								]
							}
						],
						"sources": [
							{
								"fileName": "packages/works.dal/src/query/database-query.interface.ts",
								"line": 31,
								"character": 33
							}
						]
					}
				}
			}
		},
		{
			"id": 227,
			"name": "SortCriteria",
			"kind": 4194304,
			"kindString": "Type alias",
			"flags": {},
			"comment": {
				"shortText": "The sort criteria array."
			},
			"sources": [
				{
					"fileName": "packages/works.dal/src/query/database-query.interface.ts",
					"line": 26,
					"character": 12
				}
			],
			"type": {
				"type": "array",
				"elementType": {
					"type": "reflection",
					"declaration": {
						"id": 228,
						"name": "__type",
						"kind": 65536,
						"kindString": "Type literal",
						"flags": {},
						"children": [
							{
								"id": 230,
								"name": "direction",
								"kind": 1024,
								"kindString": "Property",
								"flags": {},
								"sources": [
									{
										"fileName": "packages/works.dal/src/query/database-query.interface.ts",
										"line": 26,
										"character": 48
									}
								],
								"type": {
									"type": "union",
									"types": [
										{
											"type": "literal",
											"value": 1
										},
										{
											"type": "literal",
											"value": -1
										}
									]
								}
							},
							{
								"id": 229,
								"name": "key",
								"kind": 1024,
								"kindString": "Property",
								"flags": {},
								"sources": [
									{
										"fileName": "packages/works.dal/src/query/database-query.interface.ts",
										"line": 26,
										"character": 35
									}
								],
								"type": {
									"type": "intrinsic",
									"name": "string"
								}
							}
						],
						"groups": [
							{
								"title": "Properties",
								"kind": 1024,
								"children": [
									230,
									229
								]
							}
						],
						"sources": [
							{
								"fileName": "packages/works.dal/src/query/database-query.interface.ts",
								"line": 26,
								"character": 33
							}
						]
					}
				}
			}
		},
		{
			"id": 232,
			"name": "SortDirection",
			"kind": 4194304,
			"kindString": "Type alias",
			"flags": {},
			"comment": {
				"shortText": "Sort direction"
			},
			"sources": [
				{
					"fileName": "packages/works.dal/src/query/database-query.interface.ts",
					"line": 21,
					"character": 12
				}
			],
			"type": {
				"type": "union",
				"types": [
					{
						"type": "literal",
						"value": 1
					},
					{
						"type": "literal",
						"value": -1
					}
				]
			}
		},
		{
			"id": 226,
			"name": "SortAscending",
			"kind": 32,
			"kindString": "Variable",
			"flags": {
				"isConst": true
			},
			"comment": {
				"shortText": "Ascending sort."
			},
			"sources": [
				{
					"fileName": "packages/works.dal/src/query/database-query.interface.ts",
					"line": 11,
					"character": 13
				}
			],
			"type": {
				"type": "literal",
				"value": 1
			},
			"defaultValue": "1"
		},
		{
			"id": 231,
			"name": "SortDescending",
			"kind": 32,
			"kindString": "Variable",
			"flags": {
				"isConst": true
			},
			"comment": {
				"shortText": "Descending sort."
			},
			"sources": [
				{
					"fileName": "packages/works.dal/src/query/database-query.interface.ts",
					"line": 16,
					"character": 13
				}
			],
			"type": {
				"type": "literal",
				"value": -1
			},
			"defaultValue": "-1"
		}
	],
	"groups": [
		{
			"title": "Classes",
			"kind": 128,
			"children": [
				1,
				43,
				106,
				131
			]
		},
		{
			"title": "Interfaces",
			"kind": 256,
			"children": [
				85,
				127,
				187
			]
		},
		{
			"title": "Type aliases",
			"kind": 4194304,
			"children": [
				239,
				233,
				227,
				232
			]
		},
		{
			"title": "Variables",
			"kind": 32,
			"children": [
				226,
				231
			]
		}
	],
	"sources": [
		{
			"fileName": "packages/works.dal/src/index.ts",
			"line": 3,
			"character": 0
		}
	]
}