diff --git a/README.md b/README.md index 5121d05f3b2fda..7dee7987637514 100755 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ List of Definitions * [Google App Engine Channel API](https://developers.google.com/appengine/docs/java/channel/javascript) (by [vvakame](https://github.com/vvakame)) * [GoogleMaps](https://developers.google.com/maps/) (by [Esben Nepper](https://github.com/eNepper)) * [Google Geolocation](https://code.google.com/p/geo-location-javascript/) (by [Vincent Bortone](https://github.com/vbortone)) +* [Google Page Speed Online API](https://developers.google.com/speed/pagespeed/) (by [Frank M](https://github.com/sgtfrankieboy)) * [Google Translate API](https://developers.google.com/translate/) (by [Frank M](https://github.com/sgtfrankieboy)) * [Google Url Shortener](https://developers.google.com/url-shortener/) (by [Frank M](https://github.com/sgtfrankieboy)) * [Hammer.js](http://eightmedia.github.com/hammer.js/) (by [Boris Yankov](https://github.com/borisyankov)) diff --git a/gapi.pagespeedonline/gapi.pagespeedonline.d.ts b/gapi.pagespeedonline/gapi.pagespeedonline.d.ts new file mode 100644 index 00000000000000..4fe23abd287e13 --- /dev/null +++ b/gapi.pagespeedonline/gapi.pagespeedonline.d.ts @@ -0,0 +1,279 @@ +// Type definitions for Google Page Speed Online Api +// Project: https://developers.google.com/speed/pagespeed/ +// Definitions by: Frank M +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module gapi.client.pagespeedonline { + + export interface pagespeedapi { + + /** + * Runs Page Speed analysis on the page at the specified URL, and returns a Page Speed score, a list of suggestions to make that page faster, and other information. + */ + runpagespeed(object: { + /** + * The URL of the page for which the PageSpeed Insights API should generate results. + */ + url: string; + /** + * The locale that results should be generated in. + */ + locale?: string; + /** + * The PageSpeed rules to run. Can be specified multiple times + */ + rule?: string[]; + /** + * Indicates if binary data containing a screenshot should be included + */ + screenshot?: boolean; + /** + * The strategy to use when analyzing the page. Valid values are desktop and mobile. + */ + stategy?: string; + /** + * Selector specifying which fields to include in a partial response. + */ + fields?: string; + }): HttpRequest; + } + +} + +interface GoogleApiPageSpeedOnlineResource { + /** + * Kind of result. + */ + kind: string; + /** + * Canonicalized and final URL for the document, after following page redirects (if any). + */ + id: string; + /** + * Response code for the document. 200 indicates a normal page load. 4xx/5xx indicates an error. + */ + responseCode: number; + /** + * Title of the page, as displayed in the browser's title bar. + */ + title: string; + /** + * The PageSpeed Score (0-100), which indicates how much faster a page could be. A high score indicates little room for improvement, while a lower score indicates more room for improvement. + */ + score: number; + /** + * Summary statistics for the page, such as number of JavaScript bytes, number of HTML bytes, etc. + */ + pageStats: + { + /** + * Number of HTTP resources loaded by the page. + */ + numberResources: number; + /** + * Number of unique hosts referenced by the page. + */ + numberHosts: number; + /** + * Total size of all request bytes sent by the page. + */ + totalRequestBytes: string; + /** + * Number of static (that is, cacheable) resources on the page. + */ + numberStaticResources: number; + /** + * Number of uncompressed response bytes for the main HTML document and all iframes on the page. + */ + htmlResponseBytes: string; + /** + * Number of uncompressed response bytes for text resources on the page that aren't covered by other statistics; that is, non-HTML, non-script, non-CSS resources. + */ + textResponseBytes: string; + /** + * Number of uncompressed response bytes for CSS resources on the page. + */ + cssResponsebytes: string; + /** + * Number of response bytes for image resources on the page. + */ + imageResponseBytes: string; + /** + * Number of uncompressed response bytes for JS resources on the page. + */ + javascriptResponsebytes: string; + /** + * Number of response bytes for Flash resources on the page. + */ + flashResponseBytes: string; + /** + * Number of response bytes for other resources on the page. + */ + otherResponsebytes: string; + /** + * Number of JavaScript resources referenced by the page. + */ + numberJsResources: number; + /** + * Number of CSS resources referenced by the page. + */ + numberCssResources: number; + } + /** + * Localized PageSpeed results. Contains a ruleResults entry for each PageSpeed rule instantiated and run by the server. + */ + formattedResults: { + /** + * The locale of the formattedResults, such as en_US. + */ + locale: string; + /** + * Dictionary of formatted rule results, with one entry for each PageSpeed rule instantiated and run by the server. + */ + ruleResults: { + AvoidBadRequests: GoogleApiPageSpeedOnlineRuleResource; + AvoidCharsetInMetaTag: GoogleApiPageSpeedOnlineRuleResource; + AvoidCssImport: GoogleApiPageSpeedOnlineRuleResource; + AvoidLandingPageRedirects: GoogleApiPageSpeedOnlineRuleResource; + AvoidLongRunningScripts: GoogleApiPageSpeedOnlineRuleResource; + DeferParsingJavaScript: GoogleApiPageSpeedOnlineRuleResource; + EnableGzipCompression: GoogleApiPageSpeedOnlineRuleResource; + InlineSmallCss: GoogleApiPageSpeedOnlineRuleResource; + InlineSmallJavaScript: GoogleApiPageSpeedOnlineRuleResource; + LeverageBrowserCaching: GoogleApiPageSpeedOnlineRuleResource; + MinifyCss: GoogleApiPageSpeedOnlineRuleResource; + MinifyHTML: GoogleApiPageSpeedOnlineRuleResource; + MinifyJavaScript: GoogleApiPageSpeedOnlineRuleResource; + MinimizeRedirects: GoogleApiPageSpeedOnlineRuleResource; + MinimizeRequestSize: GoogleApiPageSpeedOnlineRuleResource; + OptimizeImages: GoogleApiPageSpeedOnlineRuleResource; + OptimizeTheOrderOfStylesAndScripts: GoogleApiPageSpeedOnlineRuleResource; + PreferAsyncResources: GoogleApiPageSpeedOnlineRuleResource; + PutCssInTheDocumentHead: GoogleApiPageSpeedOnlineRuleResource; + RemoveQueryStringsFromStaticResources: GoogleApiPageSpeedOnlineRuleResource; + ServerResourcesFromAConsistentUrl: GoogleApiPageSpeedOnlineRuleResource; + ServerScaledImages: GoogleApiPageSpeedOnlineRuleResource; + ServeResponseTime: GoogleApiPageSpeedOnlineRuleResource; + SpecifyACacheValidator: GoogleApiPageSpeedOnlineRuleResource; + SpecifyAVaryAcceptEncodingHeader: GoogleApiPageSpeedOnlineRuleResource; + SpecifyCharsetEarly: GoogleApiPageSpeedOnlineRuleResource; + SpecifyImageDimensions: GoogleApiPageSpeedOnlineRuleResource; + SpriteImages: GoogleApiPageSpeedOnlineRuleResource; + } + } + /** + * The version of the PageSpeed SDK used to generate these results. + */ + version: { + /** + * The major version number of the PageSpeed SDK used to generate these results. + */ + major: number; + /** + * The minor version number of the PageSpeed SDK used to generate these results. + */ + minor: number; + } + /** + * List of rules that were specified in the request, but which the server did not know how to instantiate. + */ + invalidRules: string[]; +} + +interface GoogleApiPageSpeedOnlineRuleResource { + /** + * Localized name of the rule, intended for presentation to a user. + */ + localizedRuleName: string; + /** + * The score (0-100) for this rule. The rule score indicates how well a page implements the recommendations for the given rule. + */ + ruleScore: number; + /** + * The impact (unbounded floating point value) that implementing the suggestions for this rule would have on making the page faster. + */ + ruleImpact: number; + /** + * List of blocks of URLs. Each block may contain a heading and a list of URLs. Each URL may optionally include additional details. + */ + urlBlocks: { + /** + * Heading to be displayed with the list of URLs. + */ + header: { + /** + * A localized format string with $N placeholders, where N is the 1-indexed argument number. + */ + format: string; + /** + * List of arguments for the format string. + */ + args: { + /** + * Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION. + */ + type: string; + /** + * Argument value, as a localized string. + */ + value: string; + }[]; + } + /** + * List of entries that provide information about URLs in the URL block. Optional. + */ + urls: { + /** + * A format string that gives information about the URL, and a list of arguments for that format string. + */ + result: { + /** + * A localized format string with $N placeholders, where N is the 1-indexed argument number. For example: 'Minifying the resource at URL $1 can save $2 bytes'. + */ + format: string; + /** + * List of arguments for the format string. + */ + args: { + /** + * Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION. + */ + type: string; + /** + * Argument value, as a localized string. + */ + value: string; + }[]; + } + /** + * List of entries that provide additional details about a single URL. Optional. + */ + details: { + /** + * A localized format string with $N placeholders, where N is the 1-indexed argument number. + */ + format: string; + /** + * List of arguments for the format string. + */ + args: { + /** + * Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION. + */ + type: string; + /** + * Argument value, as a localized string. + */ + value: string; + }[]; + }[]; + }[]; + }[]; +} + + + /** + * + */ \ No newline at end of file