
    ܖi                     `   U d dl mZ d dlmZmZ d dlmZm	Z	m
Z
mZmZ ddlmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZmZmZ dd	lmZmZ erdd
l m!Z!  G d dee      Z" G d de"e      Z# G d de"e      Z$ G d de"e      Z% G d de"e      Z& G d de"e      Z' G d de"e      Z( G d de"e      Z) G d de"e      Z*ejV                  e*ejX                  e)ejZ                  e(ej\                  e'ej^                  e&ej`                  e%ejb                  e$ejd                  e#iZ3e4ee5e"   f   e6d<   y)    )abstractmethod)dumpsloads)TYPE_CHECKINGAnyLiteralOptionalUnion   )FormatNotSupportedException)OutputFormatSchemaVersion)
SCHEMA_VERSIONSBaseSchemaVersionSchemaVersion1Dot0SchemaVersion1Dot1SchemaVersion1Dot2SchemaVersion1Dot3SchemaVersion1Dot4SchemaVersion1Dot5SchemaVersion1Dot6SchemaVersion1Dot7   )
BaseOutputBomRefDiscriminator)Bomc                        e Zd Zd fdZedefd       Zedeej                     fd       Z
ddeddfdZddd	eeeef      d
edefdZedee   fd       Z xZS )JsonreturnNc                 D    t         |   |       t               | _        y )N)bom)super__init__dict	_bom_json)selfr!   	__class__s     Y/var/www/html/content-pipeline/venv/lib/python3.12/site-packages/cyclonedx/output/json.pyr#   zJson.__init__,   s    S!)-    c                     | j                   S N)schema_version_enumr&   s    r(   schema_versionzJson.schema_version0   s    '''r)   c                 "    t         j                  S r+   )r   JSONr-   s    r(   output_formatzJson.output_format4   s       r)   force_regenerationc                    | j                   r|sy | j                         }|s&t        d| j                  j	                                |d| j                  j	                         d}t        j                  | j                        }| j                         }|j                          t        j                  |      5  t        |j                  |            }d d d        j                  |       || _        d| _         y # 1 sw Y   )xY w)Nz5JSON is not supported by CycloneDX in schema version 	CycloneDX)z$schema	bomFormatspecVersion)view_T)	generated_get_schema_urir   r.   
to_versionr   getr,   get_bomvalidater   from_bom
json_loadsas_jsonupdater%   )r&   r2   
schema_uri
_json_core_viewr!   bom_jsons          r(   generatezJson.generate8   s    >>"4$($8$8$:
-GH[H[HfHfHhGijl l "$..99;


  ##D$<$<=lln ))#. 	"'1  !("H	" 	
#!	" 	"s   :C>>DindentrH   kwargsc                P    | j                          t        | j                  |      S )NrG   )rF   
json_dumpsr%   )r&   rH   rI   s      r(   output_as_stringzJson.output_as_stringQ   s#     	$..!') 	)r)   c                      y r+    r-   s    r(   r9   zJson._get_schema_uriX   s    r)   )r!   r   r   N)F)__name__
__module____qualname__r#   propertyr   r.   r   r   r0   r1   boolrF   r	   r
   intstrr   rL   r   r9   __classcell__)r'   s   @r(   r   r   *   s    0 ( ( ( !w|'8'89 ! !4 D 4 >B)!)%S/!:)#&)+.) #  r)   r   c                       e Zd ZddZy)
JsonV1Dot0Nc                      y r+   rN   r-   s    r(   r9   zJsonV1Dot0._get_schema_uri_       r)   r   NrO   rP   rQ   r9   rN   r)   r(   rX   rX   ]       r)   rX   c                       e Zd ZddZy)
JsonV1Dot1Nc                      y r+   rN   r-   s    r(   r9   zJsonV1Dot1._get_schema_urie   rZ   r)   r[   r\   rN   r)   r(   r_   r_   c   r]   r)   r_   c                       e Zd ZdefdZy)
JsonV1Dot2r   c                      y)Nz0http://cyclonedx.org/schema/bom-1.2b.schema.jsonrN   r-   s    r(   r9   zJsonV1Dot2._get_schema_urik       Ar)   NrO   rP   rQ   rU   r9   rN   r)   r(   rb   rb   i       B Br)   rb   c                       e Zd ZdefdZy)
JsonV1Dot3r   c                      y)Nz0http://cyclonedx.org/schema/bom-1.3a.schema.jsonrN   r-   s    r(   r9   zJsonV1Dot3._get_schema_uriq   rd   r)   Nre   rN   r)   r(   rh   rh   o   rf   r)   rh   c                       e Zd ZdefdZy)
JsonV1Dot4r   c                      y)Nz/http://cyclonedx.org/schema/bom-1.4.schema.jsonrN   r-   s    r(   r9   zJsonV1Dot4._get_schema_uriw       @r)   Nre   rN   r)   r(   rk   rk   u       A Ar)   rk   c                       e Zd ZdefdZy)
JsonV1Dot5r   c                      y)Nz/http://cyclonedx.org/schema/bom-1.5.schema.jsonrN   r-   s    r(   r9   zJsonV1Dot5._get_schema_uri}   rm   r)   Nre   rN   r)   r(   rp   rp   {   rn   r)   rp   c                       e Zd ZdefdZy)
JsonV1Dot6r   c                      y)Nz/http://cyclonedx.org/schema/bom-1.6.schema.jsonrN   r-   s    r(   r9   zJsonV1Dot6._get_schema_uri   rm   r)   Nre   rN   r)   r(   rs   rs      rn   r)   rs   c                       e Zd ZdefdZy)
JsonV1Dot7r   c                      y)Nz/http://cyclonedx.org/schema/bom-1.7.schema.jsonrN   r-   s    r(   r9   zJsonV1Dot7._get_schema_uri   rm   r)   Nre   rN   r)   r(   rv   rv      rn   r)   rv   BY_SCHEMA_VERSIONN)7abcr   jsonr   rK   r   r?   typingr   r   r   r	   r
   exception.outputr   schemar   r   schema.schemar   r   r   r   r   r   r   r   r   r    r   r   	model.bomr   r   rX   r_   rb   rh   rk   rp   rs   rv   V1_7V1_6V1_5V1_4V1_3V1_2V1_1V1_0rx   r$   type__annotations__rN   r)   r(   <module>r      s>  $  9 ? ? : 0   .0:( 0f) ) B) BB) BA) AA) AA) AA) A 







	6 4tDz12 	r)   