Skip to content

Commit

Permalink
Merge pull request #528 from unidoc-build/prep-rc-v1.39.0
Browse files Browse the repository at this point in the history
Release v1.39.0
  • Loading branch information
gunnsth authored Jan 3, 2025
2 parents aefec45 + 7f8965b commit 3586f0f
Show file tree
Hide file tree
Showing 68 changed files with 59,075 additions and 58,997 deletions.
9 changes: 4 additions & 5 deletions algo/algo.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@
// Use of this source code is governed by the UniDoc End User License Agreement
// terms that can be accessed at https://unidoc.io/eula/

package algo ;import _a "strconv";func _g (_dd byte )bool {return _dd >='0'&&_dd <='9'};func RepeatString (s string ,cnt int )string {if cnt <=0{return "";};_ab :=make ([]byte ,len (s )*cnt );_ga :=[]byte (s );for _gbd :=0;_gbd < cnt ;_gbd ++{copy (_ab [_gbd :],_ga );
};return string (_ab );};
package algo ;import _d "strconv";func RepeatString (s string ,cnt int )string {if cnt <=0{return "";};_fb :=make ([]byte ,len (s )*cnt );_gd :=[]byte (s );for _egd :=0;_egd < cnt ;_egd ++{copy (_fb [_egd :],_gd );};return string (_fb );};

// NaturalLess compares two strings in a human manner so rId2 sorts less than rId10
func NaturalLess (lhs ,rhs string )bool {_gb ,_gf :=0,0;for _gb < len (lhs )&&_gf < len (rhs ){_c :=lhs [_gb ];_b :=rhs [_gf ];_gba :=_g (_c );_e :=_g (_b );switch {case _gba &&!_e :return true ;case !_gba &&_e :return false ;case !_gba &&!_e :if _c !=_b {return _c < _b ;
};_gb ++;_gf ++;default:_ee :=_gb +1;_bc :=_gf +1;for _ee < len (lhs )&&_g (lhs [_ee ]){_ee ++;};for _bc < len (rhs )&&_g (rhs [_bc ]){_bc ++;};_ef ,_ :=_a .ParseUint (lhs [_gb :_ee ],10,64);_ge ,_ :=_a .ParseUint (rhs [_gb :_bc ],10,64);if _ef !=_ge {return _ef < _ge ;
};_gb =_ee ;_gf =_bc ;};};return len (lhs )< len (rhs );};
func NaturalLess (lhs ,rhs string )bool {_g ,_dc :=0,0;for _g < len (lhs )&&_dc < len (rhs ){_gc :=lhs [_g ];_a :=rhs [_dc ];_dg :=_f (_gc );_df :=_f (_a );switch {case _dg &&!_df :return true ;case !_dg &&_df :return false ;case !_dg &&!_df :if _gc !=_a {return _gc < _a ;
};_g ++;_dc ++;default:_dfd :=_g +1;_eg :=_dc +1;for _dfd < len (lhs )&&_f (lhs [_dfd ]){_dfd ++;};for _eg < len (rhs )&&_f (rhs [_eg ]){_eg ++;};_da ,_ :=_d .ParseUint (lhs [_g :_dfd ],10,64);_gcb ,_ :=_d .ParseUint (rhs [_g :_eg ],10,64);if _da !=_gcb {return _da < _gcb ;
};_g =_dfd ;_dc =_eg ;};};return len (lhs )< len (rhs );};func _f (_c byte )bool {return _c >='0'&&_c <='9'};
877 changes: 438 additions & 439 deletions chart/chart.go

Large diffs are not rendered by default.

80 changes: 41 additions & 39 deletions color/color.go

Large diffs are not rendered by default.

709 changes: 355 additions & 354 deletions common/axcontrol/axcontrol.go

Large diffs are not rendered by default.

715 changes: 357 additions & 358 deletions common/common.go

Large diffs are not rendered by default.

53 changes: 27 additions & 26 deletions common/license/license.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,43 +11,44 @@

// Package license helps manage commercial licenses and check if they
// are valid for the version of UniOffice used.
package license ;import _gg "github.com/unidoc/unioffice/internal/license";

// LegacyLicenseType is the type of license
type LegacyLicenseType =_gg .LegacyLicenseType ;

// SetMeteredKeyPersistentCache sets the metered License API Key persistent cache.
// Default value `true`, set to `false` will report the usage immediately to license server,
// this can be used when there's no access to persistent data storage.
func SetMeteredKeyPersistentCache (val bool ){_gg .SetMeteredKeyPersistentCache (val )};

// GetLicenseKey returns the currently loaded license key.
func GetLicenseKey ()*LicenseKey {return _gg .GetLicenseKey ()};
package license ;import _a "github.com/unidoc/unioffice/internal/license";

// SetMeteredKey sets the metered License API key required for SaaS operation.
// Document usage is reported periodically for the product to function correctly.
func SetMeteredKey (apiKey string )error {return _gg .SetMeteredKey (apiKey )};

// SetMeteredKeyUsageLogVerboseMode sets the metered License API Key usage log verbose mode.
// Default value `false`, set to `true` will log the credit usages and print out to console with log level INFO.
func SetMeteredKeyUsageLogVerboseMode (val bool ){_gg .SetMeteredKeyUsageLogVerboseMode (val )};
func SetMeteredKey (apiKey string )error {return _a .SetMeteredKey (apiKey )};

// LicenseKey represents a loaded license key.
type LicenseKey =_gg .LicenseKey ;const (LicenseTierUnlicensed =_gg .LicenseTierUnlicensed ;LicenseTierCommunity =_gg .LicenseTierCommunity ;LicenseTierIndividual =_gg .LicenseTierIndividual ;LicenseTierBusiness =_gg .LicenseTierBusiness ;);

// SetLicenseKey sets and validates the license key.
func SetLicenseKey (content string ,customerName string )error {return _gg .SetLicenseKey (content ,customerName );};
type LicenseKey =_a .LicenseKey ;

// LegacyLicense holds the old-style unioffice license information.
type LegacyLicense =_gg .LegacyLicense ;
type LegacyLicense =_a .LegacyLicense ;

// SetLicenseKey sets and validates the license key.
func SetLicenseKey (content string ,customerName string )error {return _a .SetLicenseKey (content ,customerName );};

// GetMeteredState checks the currently used metered document usage status,
// documents used and credits available.
func GetMeteredState ()(_gg .MeteredStatus ,error ){return _gg .GetMeteredState ()};
func GetMeteredState ()(_a .MeteredStatus ,error ){return _a .GetMeteredState ()};

// SetMeteredKeyUsageLogVerboseMode sets the metered License API Key usage log verbose mode.
// Default value `false`, set to `true` will log the credit usages and print out to console with log level INFO.
func SetMeteredKeyUsageLogVerboseMode (val bool ){_a .SetMeteredKeyUsageLogVerboseMode (val )};

// MakeUnlicensedKey returns a default key.
func MakeUnlicensedKey ()*LicenseKey {return _a .MakeUnlicensedKey ()};

// LegacyLicenseType is the type of license
type LegacyLicenseType =_a .LegacyLicenseType ;

// SetMeteredKeyPersistentCache sets the metered License API Key persistent cache.
// Default value `true`, set to `false` will report the usage immediately to license server,
// this can be used when there's no access to persistent data storage.
func SetMeteredKeyPersistentCache (val bool ){_a .SetMeteredKeyPersistentCache (val )};

// SetLegacyLicenseKey installs a legacy license code. License codes issued prior to June 2019.
// Will be removed at some point in a future major version.
func SetLegacyLicenseKey (s string )error {return _gg .SetLegacyLicenseKey (s )};
func SetLegacyLicenseKey (s string )error {return _a .SetLegacyLicenseKey (s )};const (LicenseTierUnlicensed =_a .LicenseTierUnlicensed ;LicenseTierCommunity =_a .LicenseTierCommunity ;LicenseTierIndividual =_a .LicenseTierIndividual ;LicenseTierBusiness =_a .LicenseTierBusiness ;
);

// MakeUnlicensedKey returns a default key.
func MakeUnlicensedKey ()*LicenseKey {return _gg .MakeUnlicensedKey ()};
// GetLicenseKey returns the currently loaded license key.
func GetLicenseKey ()*LicenseKey {return _a .GetLicenseKey ()};
116 changes: 58 additions & 58 deletions common/logger/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,97 +9,97 @@
// Use of this source code is governed by the UniDoc End User License Agreement
// terms that can be accessed at https://unidoc.io/eula/

package logger ;import (_fd "fmt";_c "io";_a "os";_e "path/filepath";_fe "runtime";);
package logger ;import (_gb "fmt";_b "io";_a "os";_cd "path/filepath";_c "runtime";);

// IsLogLevel returns true from dummy logger.
func (DummyLogger )IsLogLevel (level LogLevel )bool {return true };

// LogLevel is the verbosity level for logging.
type LogLevel int ;

// ConsoleLogger is a logger that writes logs to the 'os.Stdout'
type ConsoleLogger struct{LogLevel LogLevel ;};

// SetLogger sets 'logger' to be used by the unidoc unipdf library.
func SetLogger (logger Logger ){Log =logger };
// Info logs info message.
func (_bgb WriterLogger )Info (format string ,args ...interface{}){if _bgb .LogLevel >=LogLevelInfo {_bba :="\u005bI\u004e\u0046\u004f\u005d\u0020";_bgb .logToWriter (_bgb .Output ,_bba ,format ,args ...);};};

// IsLogLevel returns true from dummy logger.
func (DummyLogger )IsLogLevel (level LogLevel )bool {return true };
// Debug does nothing for dummy logger.
func (DummyLogger )Debug (format string ,args ...interface{}){};

// Trace does nothing for dummy logger.
func (DummyLogger )Trace (format string ,args ...interface{}){};

// Notice logs notice message.
func (_af ConsoleLogger )Notice (format string ,args ...interface{}){if _af .LogLevel >=LogLevelNotice {_eg :="\u005bN\u004f\u0054\u0049\u0043\u0045\u005d ";_af .output (_a .Stdout ,_eg ,format ,args ...);};};
// Debug logs debug message.
func (_ac ConsoleLogger )Debug (format string ,args ...interface{}){if _ac .LogLevel >=LogLevelDebug {_ea :="\u005b\u0044\u0045\u0042\u0055\u0047\u005d\u0020";_ac .output (_a .Stdout ,_ea ,format ,args ...);};};

// Info logs info message.
func (_bf ConsoleLogger )Info (format string ,args ...interface{}){if _bf .LogLevel >=LogLevelInfo {_gf :="\u005bI\u004e\u0046\u004f\u005d\u0020";_bf .output (_a .Stdout ,_gf ,format ,args ...);};};
// Notice logs notice message.
func (_fab ConsoleLogger )Notice (format string ,args ...interface{}){if _fab .LogLevel >=LogLevelNotice {_eb :="\u005bN\u004f\u0054\u0049\u0043\u0045\u005d ";_fab .output (_a .Stdout ,_eb ,format ,args ...);};};func (_df WriterLogger )logToWriter (_geg _b .Writer ,_ce string ,_gee string ,_dfc ...interface{}){_agb (_geg ,_ce ,_gee ,_dfc );
};func (_fgb ConsoleLogger )output (_eea _b .Writer ,_ag string ,_eee string ,_eaa ...interface{}){_agb (_eea ,_ag ,_eee ,_eaa ...);};

// Warning does nothing for dummy logger.
func (DummyLogger )Warning (format string ,args ...interface{}){};
// WriterLogger is the logger that writes data to the Output writer
type WriterLogger struct{LogLevel LogLevel ;Output _b .Writer ;};

// Debug logs debug message.
func (_eaa WriterLogger )Debug (format string ,args ...interface{}){if _eaa .LogLevel >=LogLevelDebug {_cb :="\u005b\u0044\u0045\u0042\u0055\u0047\u005d\u0020";_eaa .logToWriter (_eaa .Output ,_cb ,format ,args ...);};};
// Error does nothing for dummy logger.
func (DummyLogger )Error (format string ,args ...interface{}){};

// Info does nothing for dummy logger.
func (DummyLogger )Info (format string ,args ...interface{}){};
// Error logs error message.
func (_bca WriterLogger )Error (format string ,args ...interface{}){if _bca .LogLevel >=LogLevelError {_agc :="\u005b\u0045\u0052\u0052\u004f\u0052\u005d\u0020";_bca .logToWriter (_bca .Output ,_agc ,format ,args ...);};};

// Notice logs notice message.
func (_de WriterLogger )Notice (format string ,args ...interface{}){if _de .LogLevel >=LogLevelNotice {_cf :="\u005bN\u004f\u0054\u0049\u0043\u0045\u005d ";_de .logToWriter (_de .Output ,_cf ,format ,args ...);};};
// DummyLogger does nothing.
type DummyLogger struct{};

// IsLogLevel returns true if log level is greater or equal than `level`.
// Can be used to avoid resource intensive calls to loggers.
func (_b ConsoleLogger )IsLogLevel (level LogLevel )bool {return _b .LogLevel >=level };

// Debug logs debug message.
func (_gee ConsoleLogger )Debug (format string ,args ...interface{}){if _gee .LogLevel >=LogLevelDebug {_da :="\u005b\u0044\u0045\u0042\u0055\u0047\u005d\u0020";_gee .output (_a .Stdout ,_da ,format ,args ...);};};
func (_ad ConsoleLogger )IsLogLevel (level LogLevel )bool {return _ad .LogLevel >=level };

// Trace logs trace message.
func (_ddg WriterLogger )Trace (format string ,args ...interface{}){if _ddg .LogLevel >=LogLevelTrace {_efg :="\u005b\u0054\u0052\u0041\u0043\u0045\u005d\u0020";_ddg .logToWriter (_ddg .Output ,_efg ,format ,args ...);};};
// Notice logs notice message.
func (_ccd WriterLogger )Notice (format string ,args ...interface{}){if _ccd .LogLevel >=LogLevelNotice {_gc :="\u005bN\u004f\u0054\u0049\u0043\u0045\u005d ";_ccd .logToWriter (_ccd .Output ,_gc ,format ,args ...);};};

// Logger is the interface used for logging in the unipdf package.
type Logger interface{Error (_ad string ,_g ...interface{});Warning (_fb string ,_ef ...interface{});Notice (_ce string ,_adc ...interface{});Info (_gb string ,_ec ...interface{});Debug (_cd string ,_eff ...interface{});Trace (_cc string ,_ga ...interface{});
IsLogLevel (_d LogLevel )bool ;};
// Warning does nothing for dummy logger.
func (DummyLogger )Warning (format string ,args ...interface{}){};

// IsLogLevel returns true if log level is greater or equal than `level`.
// Can be used to avoid resource intensive calls to loggers.
func (_bge WriterLogger )IsLogLevel (level LogLevel )bool {return _bge .LogLevel >=level };
func (_fe WriterLogger )IsLogLevel (level LogLevel )bool {return _fe .LogLevel >=level };

// Error logs error message.
func (_ab ConsoleLogger )Error (format string ,args ...interface{}){if _ab .LogLevel >=LogLevelError {_gc :="\u005b\u0045\u0052\u0052\u004f\u0052\u005d\u0020";_ab .output (_a .Stdout ,_gc ,format ,args ...);};};
// SetLogger sets 'logger' to be used by the unidoc unipdf library.
func SetLogger (logger Logger ){Log =logger };

// Warning logs warning message.
func (_ge ConsoleLogger )Warning (format string ,args ...interface{}){if _ge .LogLevel >=LogLevelWarning {_dd :="\u005b\u0057\u0041\u0052\u004e\u0049\u004e\u0047\u005d\u0020";_ge .output (_a .Stdout ,_dd ,format ,args ...);};};
// Info does nothing for dummy logger.
func (DummyLogger )Info (format string ,args ...interface{}){};

// WriterLogger is the logger that writes data to the Output writer
type WriterLogger struct{LogLevel LogLevel ;Output _c .Writer ;};func _gaf (_gegd _c .Writer ,_bfa string ,_bac string ,_ed ...interface{}){_ ,_dee ,_gff ,_bef :=_fe .Caller (3);if !_bef {_dee ="\u003f\u003f\u003f";_gff =0;}else {_dee =_e .Base (_dee );
};_ada :=_fd .Sprintf ("\u0025s\u0020\u0025\u0073\u003a\u0025\u0064 ",_bfa ,_dee ,_gff )+_bac +"\u000a";_fd .Fprintf (_gegd ,_ada ,_ed ...);};
// Trace logs trace message.
func (_ae ConsoleLogger )Trace (format string ,args ...interface{}){if _ae .LogLevel >=LogLevelTrace {_fd :="\u005b\u0054\u0052\u0041\u0043\u0045\u005d\u0020";_ae .output (_a .Stdout ,_fd ,format ,args ...);};};

// Warning logs warning message.
func (_gdf WriterLogger )Warning (format string ,args ...interface{}){if _gdf .LogLevel >=LogLevelWarning {_db :="\u005b\u0057\u0041\u0052\u004e\u0049\u004e\u0047\u005d\u0020";_gdf .logToWriter (_gdf .Output ,_db ,format ,args ...);};};
// Trace logs trace message.
func (_bff WriterLogger )Trace (format string ,args ...interface{}){if _bff .LogLevel >=LogLevelTrace {_gbe :="\u005b\u0054\u0052\u0041\u0043\u0045\u005d\u0020";_bff .logToWriter (_bff .Output ,_gbe ,format ,args ...);};};

// Debug does nothing for dummy logger.
func (DummyLogger )Debug (format string ,args ...interface{}){};
// Debug logs debug message.
func (_fb WriterLogger )Debug (format string ,args ...interface{}){if _fb .LogLevel >=LogLevelDebug {_fbe :="\u005b\u0044\u0045\u0042\u0055\u0047\u005d\u0020";_fb .logToWriter (_fb .Output ,_fbe ,format ,args ...);};};

// DummyLogger does nothing.
type DummyLogger struct{};func (_aa WriterLogger )logToWriter (_ba _c .Writer ,_be string ,_fbc string ,_dag ...interface{}){_gaf (_ba ,_be ,_fbc ,_dag );};const (LogLevelTrace LogLevel =5;LogLevelDebug LogLevel =4;LogLevelInfo LogLevel =3;LogLevelNotice LogLevel =2;
LogLevelWarning LogLevel =1;LogLevelError LogLevel =0;);
// Warning logs warning message.
func (_da WriterLogger )Warning (format string ,args ...interface{}){if _da .LogLevel >=LogLevelWarning {_cb :="\u005b\u0057\u0041\u0052\u004e\u0049\u004e\u0047\u005d\u0020";_da .logToWriter (_da .Output ,_cb ,format ,args ...);};};

// NewConsoleLogger creates new console logger.
func NewConsoleLogger (logLevel LogLevel )*ConsoleLogger {return &ConsoleLogger {LogLevel :logLevel }};
// NewWriterLogger creates new 'writer' logger.
func NewWriterLogger (logLevel LogLevel ,writer _b .Writer )*WriterLogger {logger :=WriterLogger {Output :writer ,LogLevel :logLevel };return &logger ;};const (LogLevelTrace LogLevel =5;LogLevelDebug LogLevel =4;LogLevelInfo LogLevel =3;LogLevelNotice LogLevel =2;
LogLevelWarning LogLevel =1;LogLevelError LogLevel =0;);

// Error logs error message.
func (_eaf WriterLogger )Error (format string ,args ...interface{}){if _eaf .LogLevel >=LogLevelError {_fdf :="\u005b\u0045\u0052\u0052\u004f\u0052\u005d\u0020";_eaf .logToWriter (_eaf .Output ,_fdf ,format ,args ...);};};func (_adg ConsoleLogger )output (_dg _c .Writer ,_bfe string ,_geg string ,_ea ...interface{}){_gaf (_dg ,_bfe ,_geg ,_ea ...);
};
func (_bf ConsoleLogger )Error (format string ,args ...interface{}){if _bf .LogLevel >=LogLevelError {_bd :="\u005b\u0045\u0052\u0052\u004f\u0052\u005d\u0020";_bf .output (_a .Stdout ,_bd ,format ,args ...);};};func _agb (_db _b .Writer ,_gf string ,_cdd string ,_dc ...interface{}){_ ,_bfe ,_bdb ,_aeg :=_c .Caller (3);
if !_aeg {_bfe ="\u003f\u003f\u003f";_bdb =0;}else {_bfe =_cd .Base (_bfe );};_feg :=_gb .Sprintf ("\u0025s\u0020\u0025\u0073\u003a\u0025\u0064 ",_gf ,_bfe ,_bdb )+_cdd +"\u000a";_gb .Fprintf (_db ,_feg ,_dc ...);};

// Info logs info message.
func (_gae WriterLogger )Info (format string ,args ...interface{}){if _gae .LogLevel >=LogLevelInfo {_cg :="\u005bI\u004e\u0046\u004f\u005d\u0020";_gae .logToWriter (_gae .Output ,_cg ,format ,args ...);};};
// Logger is the interface used for logging in the unipdf package.
type Logger interface{Error (_f string ,_bg ...interface{});Warning (_cg string ,_e ...interface{});Notice (_cc string ,_bb ...interface{});Info (_bc string ,_ba ...interface{});Debug (_cce string ,_ge ...interface{});Trace (_fg string ,_ee ...interface{});
IsLogLevel (_cga LogLevel )bool ;};var Log Logger =DummyLogger {};

// Trace logs trace message.
func (_bg ConsoleLogger )Trace (format string ,args ...interface{}){if _bg .LogLevel >=LogLevelTrace {_efd :="\u005b\u0054\u0052\u0041\u0043\u0045\u005d\u0020";_bg .output (_a .Stdout ,_efd ,format ,args ...);};};var Log Logger =DummyLogger {};
// ConsoleLogger is a logger that writes logs to the 'os.Stdout'
type ConsoleLogger struct{LogLevel LogLevel ;};

// NewWriterLogger creates new 'writer' logger.
func NewWriterLogger (logLevel LogLevel ,writer _c .Writer )*WriterLogger {logger :=WriterLogger {Output :writer ,LogLevel :logLevel };return &logger ;};
// Notice does nothing for dummy logger.
func (DummyLogger )Notice (format string ,args ...interface{}){};

// Error does nothing for dummy logger.
func (DummyLogger )Error (format string ,args ...interface{}){};
// Info logs info message.
func (_aa ConsoleLogger )Info (format string ,args ...interface{}){if _aa .LogLevel >=LogLevelInfo {_d :="\u005bI\u004e\u0046\u004f\u005d\u0020";_aa .output (_a .Stdout ,_d ,format ,args ...);};};

// Notice does nothing for dummy logger.
func (DummyLogger )Notice (format string ,args ...interface{}){};
// Warning logs warning message.
func (_ab ConsoleLogger )Warning (format string ,args ...interface{}){if _ab .LogLevel >=LogLevelWarning {_fa :="\u005b\u0057\u0041\u0052\u004e\u0049\u004e\u0047\u005d\u0020";_ab .output (_a .Stdout ,_fa ,format ,args ...);};};

// NewConsoleLogger creates new console logger.
func NewConsoleLogger (logLevel LogLevel )*ConsoleLogger {return &ConsoleLogger {LogLevel :logLevel }};
Loading

0 comments on commit 3586f0f

Please sign in to comment.