diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..51c4859 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.merlin +_build \ No newline at end of file diff --git a/.merlin b/.merlin deleted file mode 100644 index 0ab9e39..0000000 --- a/.merlin +++ /dev/null @@ -1,3 +0,0 @@ -B _build/default -FLG -w -40 -PKG gen_js_api diff --git a/doc/html/highlight.pack.js b/doc/html/highlight.pack.js new file mode 100644 index 0000000..2e55d49 --- /dev/null +++ b/doc/html/highlight.pack.js @@ -0,0 +1,2 @@ +/*! highlight.js v9.15.8 | BSD3 License | git.io/hljslicense */ +!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(a){var f=[],u=Object.keys,N={},c={},n=/^(no-?highlight|plain|text)$/i,s=/\blang(?:uage)?-([\w-]+)\b/i,t=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,r={case_insensitive:"cI",lexemes:"l",contains:"c",keywords:"k",subLanguage:"sL",className:"cN",begin:"b",beginKeywords:"bK",end:"e",endsWithParent:"eW",illegal:"i",excludeBegin:"eB",excludeEnd:"eE",returnBegin:"rB",returnEnd:"rE",relevance:"r",variants:"v",IDENT_RE:"IR",UNDERSCORE_IDENT_RE:"UIR",NUMBER_RE:"NR",C_NUMBER_RE:"CNR",BINARY_NUMBER_RE:"BNR",RE_STARTERS_RE:"RSR",BACKSLASH_ESCAPE:"BE",APOS_STRING_MODE:"ASM",QUOTE_STRING_MODE:"QSM",PHRASAL_WORDS_MODE:"PWM",C_LINE_COMMENT_MODE:"CLCM",C_BLOCK_COMMENT_MODE:"CBCM",HASH_COMMENT_MODE:"HCM",NUMBER_MODE:"NM",C_NUMBER_MODE:"CNM",BINARY_NUMBER_MODE:"BNM",CSS_NUMBER_MODE:"CSSNM",REGEXP_MODE:"RM",TITLE_MODE:"TM",UNDERSCORE_TITLE_MODE:"UTM",COMMENT:"C",beginRe:"bR",endRe:"eR",illegalRe:"iR",lexemesRe:"lR",terminators:"t",terminator_end:"tE"},b="",h={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function _(e){return e.replace(/&/g,"&").replace(//g,">")}function E(e){return e.nodeName.toLowerCase()}function v(e,n){var t=e&&e.exec(n);return t&&0===t.index}function l(e){return n.test(e)}function g(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function R(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?t+=r.nodeValue.length:1===r.nodeType&&(a.push({event:"start",offset:t,node:r}),t=e(r,t),E(r).match(/br|hr|img|input/)||a.push({event:"stop",offset:t,node:r}));return t}(e,0),a}function i(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!0,r)e[n]&&(e[r[n]]=e[n]);(e.c||[]).concat(e.v||[]).forEach(i)}}function m(o){function s(e){return e&&e.source||e}function c(e,n){return new RegExp(s(e),"m"+(o.cI?"i":"")+(n?"g":""))}!function n(t,e){if(!t.compiled){if(t.compiled=!0,t.k=t.k||t.bK,t.k){function r(t,e){o.cI&&(e=e.toLowerCase()),e.split(" ").forEach(function(e){var n=e.split("|");a[n[0]]=[t,n[1]?Number(n[1]):1]})}var a={};"string"==typeof t.k?r("keyword",t.k):u(t.k).forEach(function(e){r(e,t.k[e])}),t.k=a}t.lR=c(t.l||/\w+/,!0),e&&(t.bK&&(t.b="\\b("+t.bK.split(" ").join("|")+")\\b"),t.b||(t.b=/\B|\b/),t.bR=c(t.b),t.endSameAsBegin&&(t.e=t.b),t.e||t.eW||(t.e=/\B|\b/),t.e&&(t.eR=c(t.e)),t.tE=s(t.e)||"",t.eW&&e.tE&&(t.tE+=(t.e?"|":"")+e.tE)),t.i&&(t.iR=c(t.i)),null==t.r&&(t.r=1),t.c||(t.c=[]),t.c=Array.prototype.concat.apply([],t.c.map(function(e){return function(n){return n.v&&!n.cached_variants&&(n.cached_variants=n.v.map(function(e){return g(n,{v:null},e)})),n.cached_variants||n.eW&&[g(n)]||[n]}("self"===e?t:e)})),t.c.forEach(function(e){n(e,t)}),t.starts&&n(t.starts,e);var i=t.c.map(function(e){return e.bK?"\\.?(?:"+e.b+")\\.?":e.b}).concat([t.tE,t.i]).map(s).filter(Boolean);t.t=i.length?c(function(e,n){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i')+n+(t?"":b):n}function o(){E+=null!=l.sL?function(){var e="string"==typeof l.sL;if(e&&!N[l.sL])return _(g);var n=e?C(l.sL,g,!0,f[l.sL]):O(g,l.sL.length?l.sL:void 0);return 0")+'"');return g+=n,n.length||1}var s=B(e);if(!s)throw new Error('Unknown language: "'+e+'"');m(s);var a,l=t||s,f={},E="";for(a=l;a!==s;a=a.parent)a.cN&&(E=c(a.cN,"",!0)+E);var g="",R=0;try{for(var d,p,M=0;l.t.lastIndex=M,d=l.t.exec(n);)p=r(n.substring(M,d.index),d[0]),M=d.index+p;for(r(n.substr(M)),a=l;a.parent;a=a.parent)a.cN&&(E+=b);return{r:R,value:E,language:e,top:l}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{r:0,value:_(n)};throw e}}function O(t,e){e=e||h.languages||u(N);var r={r:0,value:_(t)},a=r;return e.filter(B).filter(M).forEach(function(e){var n=C(e,t,!1);n.language=e,n.r>a.r&&(a=n),n.r>r.r&&(a=r,r=n)}),a.language&&(r.second_best=a),r}function d(e){return h.tabReplace||h.useBR?e.replace(t,function(e,n){return h.useBR&&"\n"===e?"
":h.tabReplace?n.replace(/\t/g,h.tabReplace):""}):e}function o(e){var n,t,r,a,i,o=function(e){var n,t,r,a,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",t=s.exec(i))return B(t[1])?t[1]:"no-highlight";for(n=0,r=(i=i.split(/\s+/)).length;n/g,"\n"):n=e,i=n.textContent,r=o?C(o,i,!0):O(i),(t=R(n)).length&&((a=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=r.value,r.value=function(e,n,t){var r=0,a="",i=[];function o(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function u(e){a+=""}function s(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var l=o();if(a+=_(t.substring(r,l[0].offset)),r=l[0].offset,l===e){for(i.reverse().forEach(u);s(l.splice(0,1)[0]),(l=o())===e&&l.length&&l[0].offset===r;);i.reverse().forEach(c)}else"start"===l[0].event?i.push(l[0].node):i.pop(),s(l.splice(0,1)[0])}return a+_(t.substr(r))}(t,R(a),i)),r.value=d(r.value),e.innerHTML=r.value,e.className=function(e,n,t){var r=n?c[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}(e.className,o,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function p(){if(!p.called){p.called=!0;var e=document.querySelectorAll("pre code");f.forEach.call(e,o)}}function B(e){return e=(e||"").toLowerCase(),N[e]||N[c[e]]}function M(e){var n=B(e);return n&&!n.disableAutodetect}return a.highlight=C,a.highlightAuto=O,a.fixMarkup=d,a.highlightBlock=o,a.configure=function(e){h=g(h,e)},a.initHighlighting=p,a.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",p,!1),addEventListener("load",p,!1)},a.registerLanguage=function(n,e){var t=N[n]=e(a);i(t),t.aliases&&t.aliases.forEach(function(e){c[e]=n})},a.listLanguages=function(){return u(N)},a.getLanguage=B,a.autoDetection=M,a.inherit=g,a.IR=a.IDENT_RE="[a-zA-Z]\\w*",a.UIR=a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NR=a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.CNR=a.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BNR=a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RSR=a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BE=a.BACKSLASH_ESCAPE={b:"\\\\[\\s\\S]",r:0},a.ASM=a.APOS_STRING_MODE={cN:"string",b:"'",e:"'",i:"\\n",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:"string",b:'"',e:'"',i:"\\n",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},a.C=a.COMMENT=function(e,n,t){var r=a.inherit({cN:"comment",b:e,e:n,c:[]},t||{});return r.c.push(a.PWM),r.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),r},a.CLCM=a.C_LINE_COMMENT_MODE=a.C("//","$"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C("/\\*","\\*/"),a.HCM=a.HASH_COMMENT_MODE=a.C("#","$"),a.NM=a.NUMBER_MODE={cN:"number",b:a.NR,r:0},a.CNM=a.C_NUMBER_MODE={cN:"number",b:a.CNR,r:0},a.BNM=a.BINARY_NUMBER_MODE={cN:"number",b:a.BNR,r:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:"number",b:a.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},a.RM=a.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[a.BE,{b:/\[/,e:/\]/,r:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:"title",b:a.IR,r:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:"title",b:a.UIR,r:0},a.METHOD_GUARD={b:"\\.\\s*"+a.UIR,r:0},a});hljs.registerLanguage("ocaml",function(e){return{aliases:["ml"],k:{keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},i:/\/\/|>>/,l:"[a-z_]\\w*!?",c:[{cN:"literal",b:"\\[(\\|\\|)?\\]|\\(\\)",r:0},e.C("\\(\\*","\\*\\)",{c:["self"]}),{cN:"symbol",b:"'[A-Za-z_](?!')[\\w']*"},{cN:"type",b:"`[A-Z][\\w']*"},{cN:"type",b:"\\b[A-Z][\\w']*",r:0},{b:"[a-z_]\\w*'[\\w']*",r:0},e.inherit(e.ASM,{cN:"string",r:0}),e.inherit(e.QSM,{i:null}),{cN:"number",b:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",r:0},{b:/[-=]>/}]}});hljs.registerLanguage("reasonml",function(r){var e="~?[a-z$_][0-9a-zA-Z$_]*",a="`?[A-Z$_][0-9a-zA-Z$_]*",c="("+["||","&&","++","**","+.","*","/","*.","/.","...","|>"].map(function(r){return r.split("").map(function(r){return"\\"+r}).join("")}).join("|")+"|==|===)",n="\\s+"+c+"\\s+",t={keyword:"and as asr assert begin class constraint do done downto else end exception externalfor fun function functor if in include inherit initializerland lazy let lor lsl lsr lxor match method mod module mutable new nonrecobject of open or private rec sig struct then to try type val virtual when while with",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ",literal:"true false"},i="\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",s={cN:"number",r:0,v:[{b:i},{b:"\\(\\-"+i+"\\)"}]},b={cN:"operator",r:0,b:c},o=[{cN:"identifier",r:0,b:e},b,s],l=[r.QSM,b,{cN:"module",b:"\\b"+a,rB:!0,e:".",c:[{cN:"identifier",b:a,r:0}]}],u=[{cN:"module",b:"\\b"+a,rB:!0,e:".",r:0,c:[{cN:"identifier",b:a,r:0}]}],_={cN:"function",r:0,k:t,v:[{b:"\\s(\\(\\.?.*?\\)|"+e+")\\s*=>",e:"\\s*=>",rB:!0,r:0,c:[{cN:"params",v:[{b:e},{b:"~?[a-z$_][0-9a-zA-Z$_]*(s*:s*[a-z$_][0-9a-z$_]*((s*('?[a-z$_][0-9a-z$_]*s*(,'?[a-z$_][0-9a-z$_]*)*)?s*))?)?(s*:s*[a-z$_][0-9a-z$_]*((s*('?[a-z$_][0-9a-z$_]*s*(,'?[a-z$_][0-9a-z$_]*)*)?s*))?)?"},{b:/\(\s*\)/}]}]},{b:"\\s\\(\\.?[^;\\|]*\\)\\s*=>",e:"\\s=>",rB:!0,r:0,c:[{cN:"params",r:0,v:[{b:e,e:"(,|\\n|\\))",r:0,c:[b,{cN:"typing",b:":",e:"(,|\\n)",rB:!0,r:0,c:u}]}]}]},{b:"\\(\\.\\s"+e+"\\)\\s*=>"}]};l.push(_);var N={cN:"constructor",b:a+"\\(",e:"\\)",i:"\\n",k:t,c:[r.QSM,b,{cN:"params",b:"\\b"+e}]},d={cN:"pattern-match",b:"\\|",rB:!0,k:t,e:"=>",r:0,c:[N,b,{r:0,cN:"constructor",b:a}]},z={cN:"module-access",k:t,rB:!0,v:[{b:"\\b("+a+"\\.)+"+e},{b:"\\b("+a+"\\.)+\\(",e:"\\)",rB:!0,c:[_,{b:"\\(",e:"\\)",skip:!0}].concat(l)},{b:"\\b("+a+"\\.)+{",e:"}"}],c:l};return u.push(z),{aliases:["re"],k:t,i:"(:\\-|:=|\\${|\\+=)",c:[r.C("/\\*","\\*/",{i:"^(\\#,\\/\\/)"}),{cN:"character",b:"'(\\\\[^']+|[^'])'",i:"\\n",r:0},r.QSM,{cN:"literal",b:"\\(\\)",r:0},{cN:"literal",b:"\\[\\|",e:"\\|\\]",r:0,c:o},{cN:"literal",b:"\\[",e:"\\]",r:0,c:o},N,{cN:"operator",b:n,i:"\\-\\->",r:0},s,r.CLCM,d,_,{cN:"module-def",b:"\\bmodule\\s+"+e+"\\s+"+a+"\\s+=\\s+{",e:"}",rB:!0,k:t,r:0,c:[{cN:"module",r:0,b:a},{b:"{",e:"}",skip:!0}].concat(l)},z]}}); \ No newline at end of file diff --git a/doc/html/index.html b/doc/html/index.html new file mode 100644 index 0000000..320e04c --- /dev/null +++ b/doc/html/index.html @@ -0,0 +1,19 @@ + + + + index + + + + + +
+
+

OCaml package documentation

+
    +
  1. ocaml-google-apps
  2. +
+
+
+ + \ No newline at end of file diff --git a/dune-workspace b/doc/html/ocaml-google-apps/GoogleApps/.dune-keep similarity index 100% rename from dune-workspace rename to doc/html/ocaml-google-apps/GoogleApps/.dune-keep diff --git a/doc/html/ocaml-google-apps/GoogleApps/Contacts/Group/index.html b/doc/html/ocaml-google-apps/GoogleApps/Contacts/Group/index.html new file mode 100644 index 0000000..0863dfb --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/Contacts/Group/index.html @@ -0,0 +1,2 @@ + +Group (ocaml-google-apps.GoogleApps.Contacts.Group)

Module Contacts.Group

A Group.t is is a group of contacts.

type g
val get_contact_group : string -> g
val get_contacts : g -> t list
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/Contacts/index.html b/doc/html/ocaml-google-apps/GoogleApps/Contacts/index.html new file mode 100644 index 0000000..5696482 --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/Contacts/index.html @@ -0,0 +1,2 @@ + +Contacts (ocaml-google-apps.GoogleApps.Contacts)

Module GoogleApps.Contacts

A Contact.t contains the name, address, and various contact details of a contact.

type t
module Group : sig ... end

A Group.t is is a group of contacts.

val get_contacts : unit -> t list
val create : given_name:string -> family_name:string -> email:string -> t

Create a contact

val get_emails : t -> EmailField.t list
val get_family_name : t -> string
val get_given_name : t -> string
val get_full_name : t -> string
val get_phones : t -> PhoneField.t list
val get_contact_groups : t -> Group.g list
val add_phone : t -> field:PhoneField.Field.t -> number:string -> PhoneField.t
val add_to_group : t -> group:Group.g -> t

Adds a Contact.t to a Group.t

\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/Date/index.html b/doc/html/ocaml-google-apps/GoogleApps/Date/index.html new file mode 100644 index 0000000..0c617f3 --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/Date/index.html @@ -0,0 +1,2 @@ + +Date (ocaml-google-apps.GoogleApps.Date)

Module GoogleApps.Date

Standard JavaScript Date

type t
val t_of_js : Ojs.t -> t
val t_to_js : t -> Ojs.t
val now : unit -> t
val get_day : t -> int
returns

day of the week (0-6)

val get_full_year : t -> int
returns

year (4 digits)

val get_month : t -> int
returns

month (0-11)

val get_date : t -> int
returns

day of the month (1-31)

val get_hours : t -> int
returns

hour (0-23)

val get_minutes : t -> int
returns

minutes (0-59)

val get_seconds : t -> int
returns

seconds (0-59)

val to_date_string : t -> string
val to_ISO_string : t -> string
val to_locale_date_string : t -> string
val to_string : t -> string
val set_date : t -> date:int -> unit
val set_month : t -> month:int -> unit
val set_full_year : t -> year:int -> unit
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/EmailField/index.html b/doc/html/ocaml-google-apps/GoogleApps/EmailField/index.html new file mode 100644 index 0000000..3ec92c6 --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/EmailField/index.html @@ -0,0 +1,2 @@ + +EmailField (ocaml-google-apps.GoogleApps.EmailField)

Module GoogleApps.EmailField

An email field in a Contact.t.

type t
val get_address : t -> string
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/File/index.html b/doc/html/ocaml-google-apps/GoogleApps/File/index.html new file mode 100644 index 0000000..67fae8f --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/File/index.html @@ -0,0 +1,2 @@ + +File (ocaml-google-apps.GoogleApps.File)

Module GoogleApps.File

Files in Google Drive.

type folder
val get_folder_by_id : string -> folder
type t
val t_of_js : Ojs.t -> t
val get_file_by_id : string -> t
val get_id : t -> string
val get_name : t -> string
val get_size : t -> int
val make_copy : t -> name:string -> folder:folder -> t
val set_content : t -> content:string -> t
type iterator

An iterator that allows scripts to iterate over a potentially large collection of File.t.

val get_files : unit -> iterator
returns

a FileIterator.t for all files of the drive

val has_next : iterator -> bool
val next : iterator -> t
type blob
val blob_to_js : blob -> Ojs.t
val new_blob : string -> blob
val get_blob : t -> blob
val copy_blob : blob -> blob
val get_blob_data_as_string : blob -> string
val set_blob_data_from_string : blob -> data:string -> blob
val set_blob_name : blob -> name:string -> blob
val set_blob_content_type : blob -> content_type:string -> blob
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/GmailMessage/index.html b/doc/html/ocaml-google-apps/GoogleApps/GmailMessage/index.html new file mode 100644 index 0000000..17ddcd4 --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/GmailMessage/index.html @@ -0,0 +1,2 @@ + +GmailMessage (ocaml-google-apps.GoogleApps.GmailMessage)

Module GoogleApps.GmailMessage

type t
type thread
type label
val get_message_by_id : string -> t
val get_body : t -> string
val get_subject : t -> string
val get_from : t -> string
val get_id : t -> string
val mark_read : t -> t
val mark_unread : t -> t
val refresh : t -> t
val is_unread : t -> bool
val is_starred : t -> bool
val star : t -> t
val unstar : t -> t
val get_thread : t -> thread
val get_messages : thread -> t list
val move_to_archive : thread -> thread
val search_thread : string -> thread list
val get_user_label_by_name : string -> label
val add_label_to_thread : label -> thread:thread -> label
val add_label : thread -> label:label -> thread
val remove_label : thread -> label:label -> thread
val send_email : recipient:string -> subject:string -> body:string -> unit
val send_email_with_options : recipient:string -> subject:string -> body:string -> Ojs.t -> unit
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/HtmlOutput/index.html b/doc/html/ocaml-google-apps/GoogleApps/HtmlOutput/index.html new file mode 100644 index 0000000..e0e79ef --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/HtmlOutput/index.html @@ -0,0 +1,2 @@ + +HtmlOutput (ocaml-google-apps.GoogleApps.HtmlOutput)

Module GoogleApps.HtmlOutput

type t
val create_html_output_from_file : string -> t
val set_sandbox_mode : t -> mode:SandboxMode.t -> t
val set_title : t -> title:string -> t
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/Menu/index.html b/doc/html/ocaml-google-apps/GoogleApps/Menu/index.html new file mode 100644 index 0000000..0a4d246 --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/Menu/index.html @@ -0,0 +1,2 @@ + +Menu (ocaml-google-apps.GoogleApps.Menu)

Module GoogleApps.Menu

type t
val add_to_ui : t -> unit
val add_separator : t -> t
val add_item : t -> caption:string -> function_name:string -> t
val add_sub_menu : t -> submenu:t -> t
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/PhoneField/Field/index.html b/doc/html/ocaml-google-apps/GoogleApps/PhoneField/Field/index.html new file mode 100644 index 0000000..c45e3c7 --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/PhoneField/Field/index.html @@ -0,0 +1,2 @@ + +Field (ocaml-google-apps.GoogleApps.PhoneField.Field)

Module PhoneField.Field

type t
val work : t
val mobile : t
val home : t
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/PhoneField/index.html b/doc/html/ocaml-google-apps/GoogleApps/PhoneField/index.html new file mode 100644 index 0000000..b33dca2 --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/PhoneField/index.html @@ -0,0 +1,2 @@ + +PhoneField (ocaml-google-apps.GoogleApps.PhoneField)

Module GoogleApps.PhoneField

An email field in a Contact.t.

type t
module Field : sig ... end
val get_phone_number : t -> string
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/Range/index.html b/doc/html/ocaml-google-apps/GoogleApps/Range/index.html new file mode 100644 index 0000000..a4f546a --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/Range/index.html @@ -0,0 +1,2 @@ + +Range (ocaml-google-apps.GoogleApps.Range)

Module GoogleApps.Range

spreadsheet ranges

type t
val get_a1_notation : t -> string
val get_background : t -> string
val get_row : t -> int
val get_last_row : t -> int
val get_column : t -> int
val get_last_column : t -> int
val get_num_columns : t -> int
val get_num_rows : t -> int
val get_values : t -> Ojs.t array array
val get_formulas : t -> string array array
val get_display_values : t -> string array array
val set_background : t -> background:string -> t
val set_value : t -> new_val:Ojs.t -> t
val set_values : t -> new_vals:Ojs.t array array -> t
val offset : t -> row_offset:int -> column_offset:int -> num_rows:int -> num_columns:int -> t
val get_cell : t -> row:int -> column:int -> t

Returns a given cell within a range.

val set_border : t -> top:bool -> left:bool -> bottom:bool -> right:bool -> vertical:bool -> horizontal:bool -> t
val set_horizontal_alignment : t -> align:string -> t

'left', 'center' or 'right'

val set_vertical_alignment : t -> align:string -> t

'top', 'middle' or 'bottom'e

val set_number_format : t -> format:string -> t
val clear_format : t -> t
val clear_content : t -> t
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/SandboxMode/index.html b/doc/html/ocaml-google-apps/GoogleApps/SandboxMode/index.html new file mode 100644 index 0000000..9f66692 --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/SandboxMode/index.html @@ -0,0 +1,2 @@ + +SandboxMode (ocaml-google-apps.GoogleApps.SandboxMode)

Module GoogleApps.SandboxMode

type t
val iframe : t
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/Sheet/index.html b/doc/html/ocaml-google-apps/GoogleApps/Sheet/index.html new file mode 100644 index 0000000..7836cf4 --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/Sheet/index.html @@ -0,0 +1,2 @@ + +Sheet (ocaml-google-apps.GoogleApps.Sheet)

Module GoogleApps.Sheet

Access and modify spreadsheet sheets.

type spreadsheet
val open_spreadsheet : File.t -> spreadsheet
type t
val get_sheet_by_name : spreadsheet -> name:string -> t
val get_active_sheet : unit -> t
val get_last_row : t -> int
val get_last_column : t -> int
val get_sheet_values : t -> start_row:int -> start_column:int -> num_rows:int -> num_columns:int -> Ojs.t array array
val get_range : t -> start_row:int -> start_column:int -> num_rows:int -> num_columns:int -> Range.t
val get_data_range : t -> Range.t
val get_name : t -> string
val insert_row : t -> index:int -> t
val hide_row : t -> index:int -> unit
val show_row : t -> index:int -> unit
val hide_column : t -> index:int -> unit
val show_column : t -> index:int -> unit
val show_columns : t -> from:int -> num:int -> unit
type ui
type menu
val get_ui : unit -> ui
val show_sidebar : ui -> html:HtmlOutput.t -> unit
val create_menu : ui -> caption:string -> Menu.t
val alert : ui -> msg:string -> unit
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/GoogleApps/index.html b/doc/html/ocaml-google-apps/GoogleApps/index.html new file mode 100644 index 0000000..ca05845 --- /dev/null +++ b/doc/html/ocaml-google-apps/GoogleApps/index.html @@ -0,0 +1,2 @@ + +GoogleApps (ocaml-google-apps.GoogleApps)

Module GoogleApps

OCaml binding for Google Apps (https://developers.google.com/apps-script/)

val log : string -> unit
module Date : sig ... end

Standard JavaScript Date

module File : sig ... end

Files in Google Drive.

module Range : sig ... end

spreadsheet ranges

module SandboxMode : sig ... end
module HtmlOutput : sig ... end
module Menu : sig ... end
module Sheet : sig ... end

Access and modify spreadsheet sheets.

module EmailField : sig ... end

An email field in a Contact.t.

module PhoneField : sig ... end

An email field in a Contact.t.

module Contacts : sig ... end

A Contact.t contains the name, address, and various contact details of a contact.

module GmailMessage : sig ... end
\ No newline at end of file diff --git a/doc/html/ocaml-google-apps/index.html b/doc/html/ocaml-google-apps/index.html new file mode 100644 index 0000000..05e0710 --- /dev/null +++ b/doc/html/ocaml-google-apps/index.html @@ -0,0 +1,2 @@ + +index (ocaml-google-apps.index)

ocaml-google-apps index

Library ocaml-google-apps

The entry point of this library is the module: GoogleApps.

\ No newline at end of file diff --git a/doc/html/odoc.css b/doc/html/odoc.css new file mode 100644 index 0000000..b099c0b --- /dev/null +++ b/doc/html/odoc.css @@ -0,0 +1,764 @@ +@charset "UTF-8"; +/* Copyright (c) 2016 The odoc contributors. All rights reserved. + Distributed under the ISC license, see terms at the end of the file. + odoc 1.5.1 */ + +/* Fonts */ +@import url('https://fonts.googleapis.com/css?family=Fira+Mono:400,500'); +@import url('https://fonts.googleapis.com/css?family=Noticia+Text:400,400i,700'); +@import url('https://fonts.googleapis.com/css?family=Fira+Sans:400,400i,500,500i,600,600i,700,700i'); + + +/* Reset a few things. */ + +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: inherit; + font: inherit; + line-height: inherit; + vertical-align: baseline; + text-align: inherit; + color: inherit; + background: transparent; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +*, *:before, *:after { + box-sizing: border-box; +} + +html { + font-size: 15px; +} + +body { + font-family: "Fira Sans", Helvetica, Arial, sans-serif; + text-align: left; + color: #333; + background: #FFFFFF; +} + +.content { + max-width: 90ex; + margin-left: calc(10vw + 20ex); + margin-right: 4ex; + margin-top: 20px; + margin-bottom: 50px; + font-family: "Noticia Text", Georgia, serif; + line-height: 1.5; +} + +.content>header { + margin-bottom: 30px; +} + +.content>header nav { + font-family: "Fira Sans", Helvetica, Arial, sans-serif; +} + +/* Basic markup elements */ + +b, strong { + font-weight: 500; +} + +i, em { + font-style: italic; +} + +sup { + vertical-align: super; +} + +sub { + vertical-align: sub; +} + +sup, sub { + font-size: 12px; + line-height: 0; + margin-left: 0.2ex; +} + +pre { + margin-top: 0.8em; + margin-bottom: 1.2em; +} + +p, ul, ol { + margin-top: 0.5em; + margin-bottom: 1em; +} +ul, ol { + list-style-position: outside +} + +ul>li { + margin-left: 22px; +} + +ol>li { + margin-left: 27.2px; +} + +li>*:first-child { + margin-top: 0 +} + +/* Text alignements, this should be forbidden. */ + +.left { + text-align: left; +} + +.right { + text-align: right; +} + +.center { + text-align: center; +} + +/* Links and anchors */ + +a { + text-decoration: none; + color: #2C5CBD; +} + +a:hover { + box-shadow: 0 1px 0 0 #2C5CBD; +} + +/* Linked highlight */ +*:target { + background-color: rgba(187,239,253,0.3) !important; + box-shadow: 0 0px 0 1px rgba(187,239,253,0.8) !important; + border-radius: 1px; +} + +*:hover>a.anchor { + visibility: visible; +} + +a.anchor:before { + content: "#" +} + +a.anchor:hover { + box-shadow: none; + text-decoration: none; + color: #555; +} + +a.anchor { + visibility: hidden; + position: absolute; + /* top: 0px; */ + /* margin-left: -3ex; */ + margin-left: -1.3em; + font-weight: normal; + font-style: normal; + padding-right: 0.4em; + padding-left: 0.4em; + /* To remain selectable */ + color: #d5d5d5; +} + +.spec > a.anchor { + margin-left: -2.3em; + padding-right: 0.9em; +} + +.xref-unresolved { + color: #2C5CBD; +} +.xref-unresolved:hover { + box-shadow: 0 1px 0 0 #CC6666; +} + +/* Section and document divisions. + Until at least 4.03 many of the modules of the stdlib start at .h7, + we restart the sequence there like h2 */ + +h1, h2, h3, h4, h5, h6, .h7, .h8, .h9, .h10 { + font-family: "Fira Sans", Helvetica, Arial, sans-serif; + font-weight: 400; + margin: 0.5em 0 0.5em 0; + padding-top: 0.1em; + line-height: 1.2; + overflow-wrap: break-word; +} + +h1 { + font-weight: 500; + font-size: 2.441em; + margin-top: 1.214em; +} + +h1 { + font-weight: 500; + font-size: 1.953em; + box-shadow: 0 1px 0 0 #ddd; +} + +h2 { + font-size: 1.563em; +} + +h3 { + font-size: 1.25em; +} + +small, .font_small { + font-size: 0.8em; +} + +h1 code, h1 tt { + font-size: inherit; + font-weight: inherit; +} + +h2 code, h2 tt { + font-size: inherit; + font-weight: inherit; +} + +h3 code, h3 tt { + font-size: inherit; + font-weight: inherit; +} + +h3 code, h3 tt { + font-size: inherit; + font-weight: inherit; +} + +h4 { + font-size: 1.12em; +} + + +/* Preformatted and code */ + +tt, code, pre { + font-family: "Fira Mono", courier; + font-weight: 400; +} + +pre { + padding: 0.1em; + border: 1px solid #eee; + border-radius: 5px; + overflow-x: auto; +} + +p code, li code { + background-color: #f6f8fa; + color: #0d2b3e; + border-radius: 3px; + padding: 0 0.3ex; +} + +p a > code { + color: #2C5CBD; +} + +/* Code blocks (e.g. Examples) */ + +pre code { + font-size: 0.893rem; +} + +/* Code lexemes */ + +.keyword { + font-weight: 500; +} + +/* Module member specification */ + +.spec:not(.include), .spec.include details summary { + background-color: #f6f8fa; + border-radius: 3px; + border-left: 4px solid #5c9cf5; + border-right: 5px solid transparent; + padding: 0.35em 0.5em; +} + +.spec.include details summary:hover { + background-color: #ebeff2; +} + +dl, div.spec, .doc, aside { + margin-bottom: 20px; +} + +dl > dd { + padding: 0.5em; +} + +dd> :first-child { + margin-top: 0; +} + +dl:last-child, dd> :last-child, aside:last-child, article:last-child { + margin-bottom: 0; +} + +dt+dt { + margin-top: 15px; +} + +section+section, section > header + dl { + margin-top: 25px; +} + +.spec.type .variant { + margin-left: 2ch; +} +.spec.type .variant p { + margin: 0; + font-style: italic; +} +.spec.type .record { + margin-left: 2ch; +} +.spec.type .record p { + margin: 0; + font-style: italic; +} + +div.def { + margin-top: 0; + text-indent: -2ex; + padding-left: 2ex; +} + +div.def+div.doc { + margin-left: 1ex; + margin-top: 2.5px +} + +div.doc>*:first-child { + margin-top: 0; +} + +/* The elements other than heading should be wrapped in