summaryrefslogtreecommitdiff
path: root/packages/googleapi/src/googlescript.pp
diff options
context:
space:
mode:
Diffstat (limited to 'packages/googleapi/src/googlescript.pp')
-rw-r--r--packages/googleapi/src/googlescript.pp809
1 files changed, 809 insertions, 0 deletions
diff --git a/packages/googleapi/src/googlescript.pp b/packages/googleapi/src/googlescript.pp
new file mode 100644
index 0000000000..63e9d2a7f7
--- /dev/null
+++ b/packages/googleapi/src/googlescript.pp
@@ -0,0 +1,809 @@
+unit googlescript;
+{$MODE objfpc}
+{$H+}
+
+interface
+
+uses sysutils, classes, googleservice, restbase, googlebase;
+
+type
+
+ //Top-level schema types
+ TExecutionRequest = Class;
+ TOperation = Class;
+ TStatus = Class;
+ TExecutionError = Class;
+ TScriptStackTraceElement = Class;
+ TExecutionResponse = Class;
+ TExecutionRequestArray = Array of TExecutionRequest;
+ TOperationArray = Array of TOperation;
+ TStatusArray = Array of TStatus;
+ TExecutionErrorArray = Array of TExecutionError;
+ TScriptStackTraceElementArray = Array of TScriptStackTraceElement;
+ TExecutionResponseArray = Array of TExecutionResponse;
+ //Anonymous types, using auto-generated names
+ TOperationTypemetadata = Class;
+ TOperationTyperesponse = Class;
+ TStatusTypedetailsItem = Class;
+ TStatusTypedetailsArray = Array of TStatusTypedetailsItem;
+ TExecutionErrorTypescriptStackTraceElementsArray = Array of TScriptStackTraceElement;
+
+ { --------------------------------------------------------------------
+ TExecutionRequest
+ --------------------------------------------------------------------}
+
+ TExecutionRequest = Class(TGoogleBaseObject)
+ Private
+ F_function : String;
+ Fparameters : TTJSONSchemaArray;
+ FsessionState : String;
+ FdevMode : boolean;
+ Protected
+ Class Function ExportPropertyName(Const AName : String) : string; override;
+ //Property setters
+ Procedure Set_function(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setparameters(AIndex : Integer; const AValue : TTJSONSchemaArray); virtual;
+ Procedure SetsessionState(AIndex : Integer; const AValue : String); virtual;
+ Procedure SetdevMode(AIndex : Integer; const AValue : boolean); virtual;
+ //2.6.4. bug workaround
+ {$IFDEF VER2_6}
+ Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
+ {$ENDIF VER2_6}
+ Public
+ Published
+ Property _function : String Index 0 Read F_function Write Set_function;
+ Property parameters : TTJSONSchemaArray Index 8 Read Fparameters Write Setparameters;
+ Property sessionState : String Index 16 Read FsessionState Write SetsessionState;
+ Property devMode : boolean Index 24 Read FdevMode Write SetdevMode;
+ end;
+ TExecutionRequestClass = Class of TExecutionRequest;
+
+ { --------------------------------------------------------------------
+ TOperationTypemetadata
+ --------------------------------------------------------------------}
+
+ TOperationTypemetadata = Class(TGoogleBaseObject)
+ Private
+ Protected
+ //Property setters
+ Public
+ Class Function AllowAdditionalProperties : Boolean; override;
+ Published
+ end;
+ TOperationTypemetadataClass = Class of TOperationTypemetadata;
+
+ { --------------------------------------------------------------------
+ TOperationTyperesponse
+ --------------------------------------------------------------------}
+
+ TOperationTyperesponse = Class(TGoogleBaseObject)
+ Private
+ Protected
+ //Property setters
+ Public
+ Class Function AllowAdditionalProperties : Boolean; override;
+ Published
+ end;
+ TOperationTyperesponseClass = Class of TOperationTyperesponse;
+
+ { --------------------------------------------------------------------
+ TOperation
+ --------------------------------------------------------------------}
+
+ TOperation = Class(TGoogleBaseObject)
+ Private
+ Fname : String;
+ Fmetadata : TOperationTypemetadata;
+ Fdone : boolean;
+ Ferror : TStatus;
+ Fresponse : TOperationTyperesponse;
+ Protected
+ //Property setters
+ Procedure Setname(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setmetadata(AIndex : Integer; const AValue : TOperationTypemetadata); virtual;
+ Procedure Setdone(AIndex : Integer; const AValue : boolean); virtual;
+ Procedure Seterror(AIndex : Integer; const AValue : TStatus); virtual;
+ Procedure Setresponse(AIndex : Integer; const AValue : TOperationTyperesponse); virtual;
+ Public
+ Published
+ Property name : String Index 0 Read Fname Write Setname;
+ Property metadata : TOperationTypemetadata Index 8 Read Fmetadata Write Setmetadata;
+ Property done : boolean Index 16 Read Fdone Write Setdone;
+ Property error : TStatus Index 24 Read Ferror Write Seterror;
+ Property response : TOperationTyperesponse Index 32 Read Fresponse Write Setresponse;
+ end;
+ TOperationClass = Class of TOperation;
+
+ { --------------------------------------------------------------------
+ TStatusTypedetailsItem
+ --------------------------------------------------------------------}
+
+ TStatusTypedetailsItem = Class(TGoogleBaseObject)
+ Private
+ Protected
+ //Property setters
+ Public
+ Class Function AllowAdditionalProperties : Boolean; override;
+ Published
+ end;
+ TStatusTypedetailsItemClass = Class of TStatusTypedetailsItem;
+
+ { --------------------------------------------------------------------
+ TStatus
+ --------------------------------------------------------------------}
+
+ TStatus = Class(TGoogleBaseObject)
+ Private
+ Fcode : integer;
+ Fmessage : String;
+ Fdetails : TStatusTypedetailsArray;
+ Protected
+ //Property setters
+ Procedure Setcode(AIndex : Integer; const AValue : integer); virtual;
+ Procedure Setmessage(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setdetails(AIndex : Integer; const AValue : TStatusTypedetailsArray); virtual;
+ //2.6.4. bug workaround
+ {$IFDEF VER2_6}
+ Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
+ {$ENDIF VER2_6}
+ Public
+ Published
+ Property code : integer Index 0 Read Fcode Write Setcode;
+ Property message : String Index 8 Read Fmessage Write Setmessage;
+ Property details : TStatusTypedetailsArray Index 16 Read Fdetails Write Setdetails;
+ end;
+ TStatusClass = Class of TStatus;
+
+ { --------------------------------------------------------------------
+ TExecutionError
+ --------------------------------------------------------------------}
+
+ TExecutionError = Class(TGoogleBaseObject)
+ Private
+ FscriptStackTraceElements : TExecutionErrorTypescriptStackTraceElementsArray;
+ FerrorMessage : String;
+ FerrorType : String;
+ Protected
+ //Property setters
+ Procedure SetscriptStackTraceElements(AIndex : Integer; const AValue : TExecutionErrorTypescriptStackTraceElementsArray); virtual;
+ Procedure SeterrorMessage(AIndex : Integer; const AValue : String); virtual;
+ Procedure SeterrorType(AIndex : Integer; const AValue : String); virtual;
+ //2.6.4. bug workaround
+ {$IFDEF VER2_6}
+ Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
+ {$ENDIF VER2_6}
+ Public
+ Published
+ Property scriptStackTraceElements : TExecutionErrorTypescriptStackTraceElementsArray Index 0 Read FscriptStackTraceElements Write SetscriptStackTraceElements;
+ Property errorMessage : String Index 8 Read FerrorMessage Write SeterrorMessage;
+ Property errorType : String Index 16 Read FerrorType Write SeterrorType;
+ end;
+ TExecutionErrorClass = Class of TExecutionError;
+
+ { --------------------------------------------------------------------
+ TScriptStackTraceElement
+ --------------------------------------------------------------------}
+
+ TScriptStackTraceElement = Class(TGoogleBaseObject)
+ Private
+ F_function : String;
+ FlineNumber : integer;
+ Protected
+ Class Function ExportPropertyName(Const AName : String) : string; override;
+ //Property setters
+ Procedure Set_function(AIndex : Integer; const AValue : String); virtual;
+ Procedure SetlineNumber(AIndex : Integer; const AValue : integer); virtual;
+ Public
+ Published
+ Property _function : String Index 0 Read F_function Write Set_function;
+ Property lineNumber : integer Index 8 Read FlineNumber Write SetlineNumber;
+ end;
+ TScriptStackTraceElementClass = Class of TScriptStackTraceElement;
+
+ { --------------------------------------------------------------------
+ TExecutionResponse
+ --------------------------------------------------------------------}
+
+ TExecutionResponse = Class(TGoogleBaseObject)
+ Private
+ Fresult : TJSONSchema;
+ Protected
+ //Property setters
+ Procedure Setresult(AIndex : Integer; const AValue : TJSONSchema); virtual;
+ Public
+ Published
+ Property result : TJSONSchema Index 0 Read Fresult Write Setresult;
+ end;
+ TExecutionResponseClass = Class of TExecutionResponse;
+
+ { --------------------------------------------------------------------
+ TScriptsResource
+ --------------------------------------------------------------------}
+
+ TScriptsResource = Class(TGoogleResource)
+ Public
+ Class Function ResourceName : String; override;
+ Class Function DefaultAPI : TGoogleAPIClass; override;
+ Function Run(scriptId: string; aExecutionRequest : TExecutionRequest) : TOperation;
+ end;
+
+
+ { --------------------------------------------------------------------
+ TScriptAPI
+ --------------------------------------------------------------------}
+
+ TScriptAPI = Class(TGoogleAPI)
+ Private
+ FScriptsInstance : TScriptsResource;
+ Function GetScriptsInstance : TScriptsResource;virtual;
+ Public
+ //Override class functions with API info
+ Class Function APIName : String; override;
+ Class Function APIVersion : String; override;
+ Class Function APIRevision : String; override;
+ Class Function APIID : String; override;
+ Class Function APITitle : String; override;
+ Class Function APIDescription : String; override;
+ Class Function APIOwnerDomain : String; override;
+ Class Function APIOwnerName : String; override;
+ Class Function APIIcon16 : String; override;
+ Class Function APIIcon32 : String; override;
+ Class Function APIdocumentationLink : String; override;
+ Class Function APIrootUrl : string; override;
+ Class Function APIbasePath : string;override;
+ Class Function APIbaseURL : String;override;
+ Class Function APIProtocol : string;override;
+ Class Function APIservicePath : string;override;
+ Class Function APIbatchPath : String;override;
+ Class Function APIAuthScopes : TScopeInfoArray;override;
+ Class Function APINeedsAuth : Boolean;override;
+ Class Procedure RegisterAPIResources; override;
+ //Add create function for resources
+ Function CreateScriptsResource(AOwner : TComponent) : TScriptsResource;virtual;overload;
+ Function CreateScriptsResource : TScriptsResource;virtual;overload;
+ //Add default on-demand instances for resources
+ Property ScriptsResource : TScriptsResource Read GetScriptsInstance;
+ end;
+
+implementation
+
+
+{ --------------------------------------------------------------------
+ TExecutionRequest
+ --------------------------------------------------------------------}
+
+
+Procedure TExecutionRequest.Set_function(AIndex : Integer; const AValue : String);
+
+begin
+ If (F_function=AValue) then exit;
+ F_function:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TExecutionRequest.Setparameters(AIndex : Integer; const AValue : TTJSONSchemaArray);
+
+begin
+ If (Fparameters=AValue) then exit;
+ Fparameters:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TExecutionRequest.SetsessionState(AIndex : Integer; const AValue : String);
+
+begin
+ If (FsessionState=AValue) then exit;
+ FsessionState:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TExecutionRequest.SetdevMode(AIndex : Integer; const AValue : boolean);
+
+begin
+ If (FdevMode=AValue) then exit;
+ FdevMode:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Class Function TExecutionRequest.ExportPropertyName(Const AName : String) :String;
+
+begin
+ Case AName of
+ '_function' : Result:='function';
+ else
+ Result:=Inherited ExportPropertyName(AName);
+ end;
+end;
+
+//2.6.4. bug workaround
+{$IFDEF VER2_6}
+Procedure TExecutionRequest.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'parameters' : SetLength(Fparameters,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TOperationTypemetadata
+ --------------------------------------------------------------------}
+
+
+Class Function TOperationTypemetadata.AllowAdditionalProperties : Boolean;
+
+begin
+ Result:=True;
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TOperationTyperesponse
+ --------------------------------------------------------------------}
+
+
+Class Function TOperationTyperesponse.AllowAdditionalProperties : Boolean;
+
+begin
+ Result:=True;
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TOperation
+ --------------------------------------------------------------------}
+
+
+Procedure TOperation.Setname(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fname=AValue) then exit;
+ Fname:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TOperation.Setmetadata(AIndex : Integer; const AValue : TOperationTypemetadata);
+
+begin
+ If (Fmetadata=AValue) then exit;
+ Fmetadata:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TOperation.Setdone(AIndex : Integer; const AValue : boolean);
+
+begin
+ If (Fdone=AValue) then exit;
+ Fdone:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TOperation.Seterror(AIndex : Integer; const AValue : TStatus);
+
+begin
+ If (Ferror=AValue) then exit;
+ Ferror:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TOperation.Setresponse(AIndex : Integer; const AValue : TOperationTyperesponse);
+
+begin
+ If (Fresponse=AValue) then exit;
+ Fresponse:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+
+
+{ --------------------------------------------------------------------
+ TStatusTypedetailsItem
+ --------------------------------------------------------------------}
+
+
+Class Function TStatusTypedetailsItem.AllowAdditionalProperties : Boolean;
+
+begin
+ Result:=True;
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TStatus
+ --------------------------------------------------------------------}
+
+
+Procedure TStatus.Setcode(AIndex : Integer; const AValue : integer);
+
+begin
+ If (Fcode=AValue) then exit;
+ Fcode:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TStatus.Setmessage(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fmessage=AValue) then exit;
+ Fmessage:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TStatus.Setdetails(AIndex : Integer; const AValue : TStatusTypedetailsArray);
+
+begin
+ If (Fdetails=AValue) then exit;
+ Fdetails:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+//2.6.4. bug workaround
+{$IFDEF VER2_6}
+Procedure TStatus.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'details' : SetLength(Fdetails,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TExecutionError
+ --------------------------------------------------------------------}
+
+
+Procedure TExecutionError.SetscriptStackTraceElements(AIndex : Integer; const AValue : TExecutionErrorTypescriptStackTraceElementsArray);
+
+begin
+ If (FscriptStackTraceElements=AValue) then exit;
+ FscriptStackTraceElements:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TExecutionError.SeterrorMessage(AIndex : Integer; const AValue : String);
+
+begin
+ If (FerrorMessage=AValue) then exit;
+ FerrorMessage:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TExecutionError.SeterrorType(AIndex : Integer; const AValue : String);
+
+begin
+ If (FerrorType=AValue) then exit;
+ FerrorType:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+//2.6.4. bug workaround
+{$IFDEF VER2_6}
+Procedure TExecutionError.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'scriptstacktraceelements' : SetLength(FscriptStackTraceElements,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TScriptStackTraceElement
+ --------------------------------------------------------------------}
+
+
+Procedure TScriptStackTraceElement.Set_function(AIndex : Integer; const AValue : String);
+
+begin
+ If (F_function=AValue) then exit;
+ F_function:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TScriptStackTraceElement.SetlineNumber(AIndex : Integer; const AValue : integer);
+
+begin
+ If (FlineNumber=AValue) then exit;
+ FlineNumber:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Class Function TScriptStackTraceElement.ExportPropertyName(Const AName : String) :String;
+
+begin
+ Case AName of
+ '_function' : Result:='function';
+ else
+ Result:=Inherited ExportPropertyName(AName);
+ end;
+end;
+
+
+
+
+{ --------------------------------------------------------------------
+ TExecutionResponse
+ --------------------------------------------------------------------}
+
+
+Procedure TExecutionResponse.Setresult(AIndex : Integer; const AValue : TJSONSchema);
+
+begin
+ If (Fresult=AValue) then exit;
+ Fresult:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+
+
+{ --------------------------------------------------------------------
+ TScriptsResource
+ --------------------------------------------------------------------}
+
+
+Class Function TScriptsResource.ResourceName : String;
+
+begin
+ Result:='scripts';
+end;
+
+Class Function TScriptsResource.DefaultAPI : TGoogleAPIClass;
+
+begin
+ Result:=TscriptAPI;
+end;
+
+Function TScriptsResource.Run(scriptId: string; aExecutionRequest : TExecutionRequest) : TOperation;
+
+Const
+ _HTTPMethod = 'POST';
+ _Path = 'v1/scripts/{scriptId}:run';
+ _Methodid = 'script.scripts.run';
+
+Var
+ _P : String;
+
+begin
+ _P:=SubstitutePath(_Path,['scriptId',scriptId]);
+ Result:=ServiceCall(_HTTPMethod,_P,'',aExecutionRequest,TOperation) as TOperation;
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TScriptAPI
+ --------------------------------------------------------------------}
+
+Class Function TScriptAPI.APIName : String;
+
+begin
+ Result:='script';
+end;
+
+Class Function TScriptAPI.APIVersion : String;
+
+begin
+ Result:='v1';
+end;
+
+Class Function TScriptAPI.APIRevision : String;
+
+begin
+ Result:='20160426';
+end;
+
+Class Function TScriptAPI.APIID : String;
+
+begin
+ Result:='script:v1';
+end;
+
+Class Function TScriptAPI.APITitle : String;
+
+begin
+ Result:='Google Apps Script Execution API';
+end;
+
+Class Function TScriptAPI.APIDescription : String;
+
+begin
+ Result:='Executes Google Apps Script projects.';
+end;
+
+Class Function TScriptAPI.APIOwnerDomain : String;
+
+begin
+ Result:='google.com';
+end;
+
+Class Function TScriptAPI.APIOwnerName : String;
+
+begin
+ Result:='Google';
+end;
+
+Class Function TScriptAPI.APIIcon16 : String;
+
+begin
+ Result:='http://www.google.com/images/icons/product/search-16.gif';
+end;
+
+Class Function TScriptAPI.APIIcon32 : String;
+
+begin
+ Result:='http://www.google.com/images/icons/product/search-32.gif';
+end;
+
+Class Function TScriptAPI.APIdocumentationLink : String;
+
+begin
+ Result:='https://developers.google.com/apps-script/execution/rest/v1/scripts/run';
+end;
+
+Class Function TScriptAPI.APIrootUrl : string;
+
+begin
+ Result:='https://script.googleapis.com/';
+end;
+
+Class Function TScriptAPI.APIbasePath : string;
+
+begin
+ Result:='';
+end;
+
+Class Function TScriptAPI.APIbaseURL : String;
+
+begin
+ Result:='https://script.googleapis.com/';
+end;
+
+Class Function TScriptAPI.APIProtocol : string;
+
+begin
+ Result:='rest';
+end;
+
+Class Function TScriptAPI.APIservicePath : string;
+
+begin
+ Result:='';
+end;
+
+Class Function TScriptAPI.APIbatchPath : String;
+
+begin
+ Result:='batch';
+end;
+
+Class Function TScriptAPI.APIAuthScopes : TScopeInfoArray;
+
+begin
+ SetLength(Result,11);
+ Result[0].Name:='https://mail.google.com/';
+ Result[0].Description:='View and manage your mail';
+ Result[1].Name:='https://www.google.com/calendar/feeds';
+ Result[1].Description:='Manage your calendars';
+ Result[2].Name:='https://www.google.com/m8/feeds';
+ Result[2].Description:='Manage your contacts';
+ Result[3].Name:='https://www.googleapis.com/auth/admin.directory.group';
+ Result[3].Description:='View and manage the provisioning of groups on your domain';
+ Result[4].Name:='https://www.googleapis.com/auth/admin.directory.user';
+ Result[4].Description:='View and manage the provisioning of users on your domain';
+ Result[5].Name:='https://www.googleapis.com/auth/drive';
+ Result[5].Description:='View and manage the files in your Google Drive';
+ Result[6].Name:='https://www.googleapis.com/auth/forms';
+ Result[6].Description:='View and manage your forms in Google Drive';
+ Result[7].Name:='https://www.googleapis.com/auth/forms.currentonly';
+ Result[7].Description:='View and manage forms that this application has been installed in';
+ Result[8].Name:='https://www.googleapis.com/auth/groups';
+ Result[8].Description:='View and manage your Google Groups';
+ Result[9].Name:='https://www.googleapis.com/auth/spreadsheets';
+ Result[9].Description:='View and manage your spreadsheets in Google Drive';
+ Result[10].Name:='https://www.googleapis.com/auth/userinfo.email';
+ Result[10].Description:='View your email address';
+
+end;
+
+Class Function TScriptAPI.APINeedsAuth : Boolean;
+
+begin
+ Result:=True;
+end;
+
+Class Procedure TScriptAPI.RegisterAPIResources;
+
+begin
+ TExecutionRequest.RegisterObject;
+ TOperationTypemetadata.RegisterObject;
+ TOperationTyperesponse.RegisterObject;
+ TOperation.RegisterObject;
+ TStatusTypedetailsItem.RegisterObject;
+ TStatus.RegisterObject;
+ TExecutionError.RegisterObject;
+ TScriptStackTraceElement.RegisterObject;
+ TExecutionResponse.RegisterObject;
+end;
+
+
+Function TScriptAPI.GetScriptsInstance : TScriptsResource;
+
+begin
+ if (FScriptsInstance=Nil) then
+ FScriptsInstance:=CreateScriptsResource;
+ Result:=FScriptsInstance;
+end;
+
+Function TScriptAPI.CreateScriptsResource : TScriptsResource;
+
+begin
+ Result:=CreateScriptsResource(Self);
+end;
+
+
+Function TScriptAPI.CreateScriptsResource(AOwner : TComponent) : TScriptsResource;
+
+begin
+ Result:=TScriptsResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+initialization
+ TScriptAPI.RegisterAPI;
+end.