{
  "metadata": {
    "toolPackage": "@microsoft/api-extractor",
    "toolVersion": "7.6.2",
    "schemaVersion": 1003,
    "oldestForwardsCompatibleVersion": 1001
  },
  "kind": "Package",
  "canonicalReference": "@loopback/repository-json-schema!",
  "docComment": "",
  "name": "@loopback/repository-json-schema",
  "members": [
    {
      "kind": "EntryPoint",
      "canonicalReference": "@loopback/repository-json-schema!",
      "name": "",
      "members": [
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository-json-schema!getFieldsJsonSchemaFor:function(1)",
          "docComment": "/**\n * Build a JSON schema describing the format of the \"fields\" object used to include or exclude properties of model instances.\n *\n * @param modelCtor - The model constructor to build the filter schema for.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function getFieldsJsonSchemaFor(modelCtor: "
            },
            {
              "kind": "Content",
              "text": "typeof "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "JsonSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 4,
            "endIndex": 5
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "modelCtor",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            }
          ],
          "name": "getFieldsJsonSchemaFor"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository-json-schema!getFilterJsonSchemaFor:function(1)",
          "docComment": "/**\n * Build a JSON schema describing the format of the \"filter\" object used to query model instances.\n *\n * Note we don't take the model properties into account yet and return a generic json schema allowing any \"where\" condition.\n *\n * @param modelCtor - The model constructor to build the filter schema for.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function getFilterJsonSchemaFor(modelCtor: "
            },
            {
              "kind": "Content",
              "text": "typeof "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "JsonSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 4,
            "endIndex": 5
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "modelCtor",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            }
          ],
          "name": "getFilterJsonSchemaFor"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository-json-schema!getJsonSchema:function(1)",
          "docComment": "/**\n * Gets the JSON Schema of a TypeScript model/class by seeing if one exists in a cache. If not, one is generated and then cached.\n *\n * @param ctor - Contructor of class to get JSON Schema from\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function getJsonSchema<T extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": ">(ctor: "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": " & {\n    prototype: T;\n}"
            },
            {
              "kind": "Content",
              "text": ", options?: "
            },
            {
              "kind": "Reference",
              "text": "JsonSchemaOptions",
              "canonicalReference": "@loopback/repository-json-schema!JsonSchemaOptions:interface"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "JSONSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 9,
            "endIndex": 10
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "ctor",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              }
            },
            {
              "parameterName": "options",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "getJsonSchema"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository-json-schema!getJsonSchemaRef:function(1)",
          "docComment": "/**\n * Describe the provided Model as a reference to a definition shared by multiple endpoints. The definition is included in the returned schema.\n *\n * @param modelCtor - The model constructor (e.g. `Product`)\n *\n * @param options - Additional options\n *\n * @example\n * ```ts\n * const schema = {\n *   $ref: '/definitions/Product',\n *   definitions: {\n *     Product: {\n *       title: 'Product',\n *       properties: {\n *         // etc.\n *       }\n *     }\n *   }\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function getJsonSchemaRef<T extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": ">(modelCtor: "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": " & {\n    prototype: T;\n}"
            },
            {
              "kind": "Content",
              "text": ", options?: "
            },
            {
              "kind": "Reference",
              "text": "JsonSchemaOptions",
              "canonicalReference": "@loopback/repository-json-schema!JsonSchemaOptions:interface"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "JSONSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 9,
            "endIndex": 10
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "modelCtor",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              }
            },
            {
              "parameterName": "options",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "getJsonSchemaRef"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository-json-schema!getNavigationalPropertyForRelation:function(1)",
          "docComment": "/**\n * Checks and return navigational property definition for the relation\n *\n * @param  - relMeta Relation metadata object\n *\n * @param  - targetRef Schema definition for the target model\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function getNavigationalPropertyForRelation(relMeta: "
            },
            {
              "kind": "Reference",
              "text": "RelationMetadata",
              "canonicalReference": "@loopback/repository!RelationMetadata:type"
            },
            {
              "kind": "Content",
              "text": ", targetRef: "
            },
            {
              "kind": "Reference",
              "text": "JSONSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "JSONSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "relMeta",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "targetRef",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "getNavigationalPropertyForRelation"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository-json-schema!getWhereJsonSchemaFor:function(1)",
          "docComment": "/**\n * Build a JSON schema describing the format of the \"where\" object used to filter model instances to query, update or delete.\n *\n * Note we don't take the model properties into account yet and return a generic json schema allowing any \"where\" condition.\n *\n * @param modelCtor - The model constructor to build the filter schema for.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function getWhereJsonSchemaFor(modelCtor: "
            },
            {
              "kind": "Content",
              "text": "typeof "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "JsonSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 4,
            "endIndex": 5
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "modelCtor",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            }
          ],
          "name": "getWhereJsonSchemaFor"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository-json-schema!isArrayType:function(1)",
          "docComment": "/**\n * Determines whether a given string or constructor is array type or not\n *\n * @param type - Type as string or wrapper\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function isArrayType(type: "
            },
            {
              "kind": "Content",
              "text": "string | "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "boolean"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 4,
            "endIndex": 5
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "type",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            }
          ],
          "name": "isArrayType"
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/repository-json-schema!JSON_SCHEMA_KEY:var",
          "docComment": "/**\n * Metadata key used to set or retrieve repository JSON Schema\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "JSON_SCHEMA_KEY: "
            },
            {
              "kind": "Reference",
              "text": "MetadataAccessor",
              "canonicalReference": "@loopback/metadata!MetadataAccessor:class"
            },
            {
              "kind": "Content",
              "text": "<{\n    [key: string]: "
            },
            {
              "kind": "Reference",
              "text": "JSONSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": ";\n}, "
            },
            {
              "kind": "Reference",
              "text": "ClassDecorator",
              "canonicalReference": "!ClassDecorator:type"
            },
            {
              "kind": "Content",
              "text": ">"
            }
          ],
          "releaseTag": "Public",
          "name": "JSON_SCHEMA_KEY",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 7
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository-json-schema!JsonSchemaOptions:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface JsonSchemaOptions<T extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "JsonSchemaOptions",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository-json-schema!JsonSchemaOptions#exclude:member",
              "docComment": "/**\n * List of model properties to exclude from the schema.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "exclude?: "
                },
                {
                  "kind": "Content",
                  "text": "(keyof T)[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "exclude",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository-json-schema!JsonSchemaOptions#includeRelations:member",
              "docComment": "/**\n * Set this flag if you want the schema to define navigational properties for model relations.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "includeRelations?: "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "includeRelations",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository-json-schema!JsonSchemaOptions#optional:member",
              "docComment": "/**\n * List of model properties to mark as optional. Overrides the \"partial\" option if it is not empty.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "optional?: "
                },
                {
                  "kind": "Content",
                  "text": "(keyof T)[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "optional",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository-json-schema!JsonSchemaOptions#partial:member",
              "docComment": "/**\n * Set this flag to mark all model properties as optional. This is typically used to describe request body of PATCH endpoints. This option will be overridden by the \"optional\" option if it is set and non-empty.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "partial?: "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "partial",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository-json-schema!JsonSchemaOptions#title:member",
              "docComment": "/**\n * The title to use in the generated schema.\n *\n * When using options like `exclude`, the auto-generated title can be difficult to read for humans. Use this option to change the title to a more meaningful value.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "title?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "title",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository-json-schema!metaToJsonProperty:function(1)",
          "docComment": "/**\n * Converts property metadata into a JSON property definition\n *\n * @param  - meta\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function metaToJsonProperty(meta: "
            },
            {
              "kind": "Reference",
              "text": "PropertyDefinition",
              "canonicalReference": "@loopback/repository!PropertyDefinition:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "JSONSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "meta",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "metaToJsonProperty"
        },
        {
          "kind": "Enum",
          "canonicalReference": "@loopback/repository-json-schema!MODEL_TYPE_KEYS:enum",
          "docComment": "/**\n * TODO(semver-major) remove these constants in the next major version\n *\n * @deprecated\n *\n * Use the helper `buildModelCacheKey` to obtain the cache key for a given set of schema options.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare const enum MODEL_TYPE_KEYS "
            }
          ],
          "releaseTag": "Public",
          "name": "MODEL_TYPE_KEYS",
          "members": [
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository-json-schema!MODEL_TYPE_KEYS.ModelOnly:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "ModelOnly = "
                },
                {
                  "kind": "Content",
                  "text": "\"modelOnly\""
                }
              ],
              "releaseTag": "Public",
              "name": "ModelOnly",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository-json-schema!MODEL_TYPE_KEYS.ModelWithRelations:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "ModelWithRelations = "
                },
                {
                  "kind": "Content",
                  "text": "\"modelWithRelations\""
                }
              ],
              "releaseTag": "Public",
              "name": "ModelWithRelations",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ]
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository-json-schema!modelToJsonSchema:function(1)",
          "docComment": "/**\n * Converts a TypeScript class into a JSON Schema using TypeScript's reflection API\n *\n * @param ctor - Constructor of class to convert from\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function modelToJsonSchema<T extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": ">(ctor: "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": " & {\n    prototype: T;\n}"
            },
            {
              "kind": "Content",
              "text": ", jsonSchemaOptions?: "
            },
            {
              "kind": "Reference",
              "text": "JsonSchemaOptions",
              "canonicalReference": "@loopback/repository-json-schema!JsonSchemaOptions:interface"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "JSONSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 9,
            "endIndex": 10
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "ctor",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              }
            },
            {
              "parameterName": "jsonSchemaOptions",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "modelToJsonSchema"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository-json-schema!stringTypeToWrapper:function(1)",
          "docComment": "/**\n * Gets the wrapper function of primitives string, number, and boolean\n *\n * @param type - Name of type\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function stringTypeToWrapper(type: "
            },
            {
              "kind": "Content",
              "text": "string | "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 4,
            "endIndex": 5
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "type",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            }
          ],
          "name": "stringTypeToWrapper"
        }
      ]
    }
  ]
}
