ive::Har::Entry();
use XML::LibXML();
use IO::Compress::Gzip();
use IO::Uncompress::Gunzip();
use JSON();
use overload '""' => 'string';
our $VERSION = '0.21';
sub new {
my ( $class, $params ) =
ring($string);
}
return $old;
}
sub hashref {
my ( $self, $ref ) = @_;
my $old = JSON->new()->utf8()->decode( $self->string() );
if ( ( @_ > 1 ) && ( defined $ref ) ) {
$s
;
}
my $json = JSON->new();
$json = $json->utf8();
$json = $json->allow_blessed(1);
$json = $json->convert_blessed(1);
$json = $json->pretty();
$json = $json->canonical(1);
ld;
}
sub TO_JSON {
my ($self) = @_;
my $json = {};
$json->{name} = $self->name();
$json->{value} = $self->value();
if ( defined $self->file_name() ) {
$json->{fileName}
if ( defined $self->content_type() ) {
$json->{contentType} = $self->content_type();
}
if ( defined $self->comment() ) {
$json->{comment} = $self->comment();
}
foreach
( $key =~ /^_[[:alnum:]]+$/smx ) { # private fields
$json->{$key} = $self->{$key};
}
}
return $json;
}
1;
__END__
=head1 NAME
Archive::Har::Entry::Request::PostData:
n $old;
}
sub TO_JSON {
my ($self) = @_;
my $json = {};
if ( defined $self->blocked() ) {
$json->{blocked} = $self->blocked() + 0;
}
else {
$json->{blocked} = _DOE
$self->dns() ) {
$json->{dns} = $self->dns() + 0;
}
else {
$json->{dns} = _DOES_NOT_APPLY();
}
if ( defined $self->connect() ) {
$json->{connect} = $self->conne
else {
$json->{connect} = _DOES_NOT_APPLY();
}
$json->{send} = ( $self->send() || 0 ) + 0;
$json->{wait} = ( $self->wait() || 0 ) + 0;
$json->{receive} = ( $sel
TO_JSON {
my ($self) = @_;
my $json = { pageTimings => $self->page_timings(), };
if ( defined $self->title() ) {
$json->{title} = $self->title();
}
else {
$json->{
$json->{startedDateTime} = $self->started_date_time();
}
else {
$json->{startedDateTime} = '0000-00-00T00:00:00.0+00:00';
}
if ( defined $self->id() ) {
$json->{id
} = $self->id();
}
if ( defined $self->comment() ) {
$json->{comment} = $self->comment();
}
foreach my $key ( sort { $a cmp $b } keys %{$self} ) {
next if ( !defined $s
package Archive::Har::Entry::Cookie;
use warnings;
use strict;
use JSON();
use Carp();
our $VERSION = '0.21';
sub new {
my ( $class, $params ) = @_;
my $self = {};
bless $self, $class;
$old;
}
sub TO_JSON {
my ($self) = @_;
my $json = {};
$json->{name} = $self->name();
$json->{value} = $self->value();
if ( defined $self->path() ) {
$json->{path} = $self
$json->{domain} = $self->domain();
}
if ( defined $self->expires() ) {
$json->{expires} = $self->expires();
}
if ( defined $self->http_only() ) {
$json->{httpOn
return $old;
}
sub TO_JSON {
my ($self) = @_;
my $json = {};
if ( defined $self->name() ) {
$json->{name} = $self->name();
}
else {
$json->{name} = 'Unknown';
f->version() ) {
$json->{version} = $self->version();
}
else {
$json->{version} = 'Unknown';
}
if ( defined $self->comment() ) {
$json->{comment} = $self->comme
( $key =~ /^_[[:alnum:]]+$/smx ) { # private fields
$json->{$key} = $self->{$key};
}
}
return $json;
}
1;
__END__
=head1 NAME
Archive::Har::Browser - Represents the
re"
);
}
return $old;
}
sub TO_JSON {
my ($self) = @_;
my $json = {};
if ( defined $self->before_request() ) {
$json->{beforeRequest} = $self->before_request();
elsif ( exists $self->{beforeRequest} ) {
$json->{beforeRequest} = undef;
}
if ( defined $self->after_request() ) {
$json->{afterRequest} = $self->after_request();
}
} ) {
$json->{afterRequest} = undef;
}
if ( defined $self->comment() ) {
$json->{comment} = $self->comment();
}
foreach my $key ( sort { $a cmp $b } keys %{$self} ) {
O_JSON {
my ($self) = @_;
my $json = {};
if ( defined $self->pageref() ) {
$json->{pageref} = $self->pageref();
}
if ( defined $self->started_date_time() ) {
$json-
$json->{startedDateTime} = '0000-00-00T00:00:00.0+00:00';
}
$json->{time} = $self->time();
$json->{request} = $self->request();
$json->{response} = $self->response();
$json->
{cache} = $self->cache();
$json->{timings} = $self->timings();
if ( defined $self->server_ip_address() ) {
$json->{serverIPAddress} = $self->server_ip_address();
}
if ( def
b TO_JSON {
my ($self) = @_;
my $json = {};
$json->{method} = $self->method();
$json->{url} = $self->url();
$json->{httpVersion} = $self->http_version();
$json->{c
$self->cookies() ];
$json->{headers} = [ $self->headers() ];
$json->{queryString} = [ $self->query_string() ];
if ( defined $self->post_data() ) {
$json->{postData} = $self->po
_size() ) {
$json->{bodySize} = $self->body_size();
if ( $self->body_size() == 0 ) {
delete $json->{postData};
}
}
else {
$json->{bodySize} = _DOES_
old;
}
sub TO_JSON {
my ($self) = @_;
my $json = {};
$json->{name} = $self->name();
$json->{value} = $self->value();
if ( defined $self->comment() ) {
$json->{comment} =
( $key =~ /^_[[:alnum:]]+$/smx ) { # private fields
$json->{$key} = $self->{$key};
}
}
return $json;
}
1;
__END__
=head1 NAME
Archive::Har::Entry::Header - Represent
TO_JSON {
my ($self) = @_;
my $json = {};
$json->{name} = $self->name();
if ( !defined $json->{name} ) {
$json->{name} = q[]; # HAR Viewer insists on this
}
$json->{
value} = $self->value();
if ( defined $self->comment() ) {
$json->{comment} = $self->comment();
}
foreach my $key ( sort { $a cmp $b } keys %{$self} ) {
next if ( !defined
( $key =~ /^_[[:alnum:]]+$/smx ) { # private fields
$json->{$key} = $self->{$key};
}
}
return $json;
}
1;
__DATA__
=head1 NAME
Archive::Har::Entry::Request::QueryStr
sub TO_JSON {
my ($self) = @_;
my $json = {
mimeType => $self->mime_type(),
size => $self->size(),
};
if ( defined $self->compression() ) {
$json->{compre
{
$json->{text} = $self->text();
}
if ( defined $self->encoding() ) {
$json->{encoding} = $self->encoding();
}
if ( defined $self->comment() ) {
$json->{comment
( $key =~ /^_[[:alnum:]]+$/smx ) { # private fields
$json->{$key} = $self->{$key};
}
}
return $json;
}
1;
__END__
=head1 NAME
Archive::Har::Entry::Response::Content
sub TO_JSON {
my ($self) = @_;
my $json = {};
$json->{mimeType} = $self->mime_type();
$json->{params} = [ $self->params() ];
if ( defined $self->text() ) {
$json->{text}
= $self->text();
}
if ( defined $self->comment() ) {
$json->{comment} = $self->comment();
}
foreach my $key ( sort { $a cmp $b } keys %{$self} ) {
next if ( !defined $
( $key =~ /^_[[:alnum:]]+$/smx ) { # private fields
$json->{$key} = $self->{$key};
}
}
return $json;
}
1;
__END__
=head1 NAME
Archive::Har::Entry::Request::PostData
sub TO_JSON {
my ($self) = @_;
my $json = {};
if ( defined $self->expires() ) {
$json->{expires} = $self->expires();
}
if ( $self->last_access() ) {
$json->{lastA
$json->{lastAccess} = '0000-00-00T00-00-00';
}
$json->{eTag} = $self->etag();
$json->{hitCount} = $self->hit_count();
if ( defined $self->comment() ) {
$json->{comme
( $key =~ /^_[[:alnum:]]+$/smx ) { # private fields
$json->{$key} = $self->{$key};
}
}
return $json;
}
1;
__END__
=head1 NAME
Archive::Har::Entry::Cache::Request - R
_JSON {
my ($self) = @_;
my $json = {};
$json->{status} = $self->status();
$json->{statusText} = $self->status_text();
$json->{httpVersion} = $self->http_version();
$json
$json->{headers} = [ $self->headers() ];
$json->{content} = $self->content();
$json->{redirectURL} = $self->redirect_url();
if ( defined $self->headers_size() ) {
$json->
$json->{headersSize} = _DOES_NOT_APPLY();
}
$json->{headersSize} += 0;
if ( defined $self->body_size() ) {
$json->{bodySize} = $self->body_size();
}
else {
$json->
sub TO_JSON {
my ($self) = @_;
my $json = {};
if ( defined $self->on_content_load() ) {
$json->{onContentLoad} = $self->on_content_load();
}
else {
$json->{onCont
on_load() ) {
$json->{onLoad} = $self->on_load();
}
else {
$json->{onLoad} = _DOES_NOT_APPLY();
}
if ( defined $self->comment() ) {
$json->{comment} = $self->co
( $key =~ /^_[[:alnum:]]+$/smx ) { # private fields
$json->{$key} = $self->{$key};
}
}
return $json;
}
1;
__END__
=head1 NAME
Archive::Har::Page::PageTimings - Repre
return $old;
}
sub TO_JSON {
my ($self) = @_;
my $json = {};
if ( defined $self->name() ) {
$json->{name} = $self->name();
}
else {
$json->{name} = 'Unknown';
f->version() ) {
$json->{version} = $self->version();
}
else {
$json->{version} = 'Unknown';
}
if ( defined $self->comment() ) {
$json->{comment} = $self->comme
( $key =~ /^_[[:alnum:]]+$/smx ) { # private fields
$json->{$key} = $self->{$key};
}
}
return $json;
}
1;
__END__
=head1 NAME
Archive::Har::Creator - Represents the