NAME

Data::JPack - Offline/Online Web Application Packer

SYNOPISIS

use Data::JPack;

my $packer=Data::JPack->new();
$packer->encode ($data);

DESCRIPTION

Provides a platform to package application content suitable for web clients, templating, via Template::Plexsite and a foundation for a client side worker pool for CPU intensive javavscript tasks.

Application code (javascript), textual and binary data can be packaged and loaded without the requirement of a server (ie local files) and avoiding samesite / origin security issues.

The client side javascript is installed and accessable via Data::JPack::App.

API (Server side)

Construction

new

Data::JPack->new(OPTIONS)

Create a new packer object, configured with OPTIONS, which are key value pairs. The options supported are:

Single Shot Encoding

With an existing Data::JPack object, these methods these methods will process a single data chunk, with required header and footer.

encode

$packer->encode($data);

Single call that wraps and encodes data suitable for storing in a standalone file, or embeded if the $packer object is conifigured.

Returns the encoded data.

decode

$packer->decode($data);

Decodes $data expected in Data::JPack format. Returns the decoded data.

encode_file

$packer->encode_file($path);

Single call the encodes the data from a file located and $path. Calls encode internally.

Returns the encoded data.

Streaming Encoding

To encoding a data a chunk at a time, first encode the header, then 0 or more data, then the footer:

$packer->encode_header;       # Must be first
$packer->encode_data($data);  # 0 or more times
$packer->encode_footer;       # Must be last

encode_header

$packer->encode_header;

Serializes the header information required. The actual header created depends on the embedded flag of the $packer object. The Output of this sub must before any data chunk encoded.

encode_data

$packer->encode_data;

Encodes the provided data and returns it. Note no filtering of the $data is performed. It must be done manaully before hand.

Returns the encoded data.

$packer->encode_footer;

Serializes the end of the encoded file. The output of this sub must be after all data chunks to be encoded.

Container Management and Inspection

The container contains multiple files.

next_set_name

next_file_name

html_root

current_set

current_file

set_prefix

flush