### Install Dependencies with npm and Lerna Source: https://github.com/guess-js/guess/blob/master/DEVELOPING.md Runs the bootstrap script to install all monorepo and package dependencies, and creates symlinks for cross-package dependencies using lerna bootstrap. ```bash npm run bootstrap ``` -------------------------------- ### Install Dependencies (Shell) Source: https://github.com/guess-js/guess/blob/master/experiments/guess-static-sites/README.md Navigate to the project directory and install the required Node.js dependencies using npm. This is the first step after cloning the repository. ```Shell $ cd experiments/guess-static-sites $ npm install ``` -------------------------------- ### Start Development Server - Gatsby - Shell Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/gatsby/README.md Executes the 'develop' script defined in the project's package.json file. This typically starts a local development server for the Gatsby site, allowing you to preview changes in real-time, usually accessible at http://localhost:8000. ```sh npm run develop ``` -------------------------------- ### Install guess-webpack Package Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/README.md Installs the guess-webpack package as a development dependency using npm. ```bash npm i guess-webpack --save-dev ``` -------------------------------- ### Publish Packages with npm and Lerna Source: https://github.com/guess-js/guess/blob/master/DEVELOPING.md Runs the publish script, which delegates to lerna publish to update versions and publish packages to npm. ```bash npm run publish ``` -------------------------------- ### Install Gatsby CLI - Shell Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/gatsby/README.md Installs the Gatsby command-line interface globally on your system using the npm package manager. This tool is required to create and manage Gatsby projects. ```sh npm install --global gatsby-cli ``` -------------------------------- ### Installing guess-ga with npm Source: https://github.com/guess-js/guess/blob/master/packages/guess-ga/README.md Command to install the guess-ga library using the npm package manager. ```bash npm i guess-ga ``` -------------------------------- ### Create New Gatsby Site - Gatsby CLI - Shell Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/gatsby/README.md Creates a new directory named 'gatsby-example-site' in your current location and initializes a new Gatsby project inside it using the default starter template. This command uses the globally installed Gatsby CLI. ```sh gatsby new gatsby-example-site ``` -------------------------------- ### Run Server (Shell) Source: https://github.com/guess-js/guess/blob/master/experiments/guess-static-sites/README.md Start the Node.js server component of guess-static-sites. This server will handle requests from the client-side script for predictive prefetching URLs. ```Shell $ node server.js ``` -------------------------------- ### Install guess-parser via npm Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/README.md This command demonstrates how to install the guess-parser module as a development dependency using npm. ```bash npm i guess-parser --save-dev ``` -------------------------------- ### Start MongoDB Server (Bash) Source: https://github.com/guess-js/guess/blob/master/experiments/guess-static-sites/README.md Ensure the MongoDB daemon (mongod) is running before executing the prediction script, as it is used to store the generated predictions. ```bash $ mongod ``` -------------------------------- ### Build Packages with npm Source: https://github.com/guess-js/guess/blob/master/DEVELOPING.md Executes the build script to compile all packages in the monorepo, respecting their topological order. ```bash npm run build ``` -------------------------------- ### Example Report Data Structure in JSON Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/README.md Provides a JSON example illustrating the structure defined by the `Report` interface. It shows how transitions from 'foo' to 'bar' (5 times) and 'baz' (2 times), and from 'bar' to 'baz' (3 times) would be represented. ```json { "foo": { "bar": 5, "baz" 2 }, "bar": { "baz": 3 } } ``` -------------------------------- ### Getting Help - Angular CLI Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/ng8/README.md Displays help information for the Angular CLI commands, providing usage details and options for various commands. ```Shell ng help ``` -------------------------------- ### Getting Angular CLI Help (CLI) Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/test/fixtures/angular/README.md Displays help information for the Angular CLI commands and options. Provides usage details and available flags. ```Shell ng help ``` -------------------------------- ### Running Angular Development Server (CLI) Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/test/fixtures/angular/README.md Starts a local development server for the Angular application. The server automatically reloads the application when source files change. Access the app at http://localhost:4200/. ```Shell ng serve ``` -------------------------------- ### Example React Router Syntax (JSX) Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/README.md This JSX snippet illustrates the specific react-router-like syntax convention that the guess-parser supports for extracting routes from React applications, including standard routes and dynamic imports for lazy loading. ```jsx
Intro Main
import('./intro/Intro'))} />
``` -------------------------------- ### Running Development Server - Angular CLI Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/ng8/README.md Starts a local development server for the Angular application. The application will automatically reload upon file changes and is typically accessed at http://localhost:4200/. ```Shell ng serve ``` -------------------------------- ### Basic Usage of guess API Function Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/README.md Imports and invokes the guess function from guess-webpack/api to get predictions for next page visits based on the current location.pathname. ```ts import { guess } from 'guess-webpack/api'; guess(); /** { '/foo': 0.1, '/bar': 0.3, '/baz': 0.6 } */ ``` -------------------------------- ### Navigate to Project Directory - Shell Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/gatsby/README.md Changes the current working directory in your terminal to the newly created Gatsby project folder, 'gatsby-example-site'. This is necessary before running project-specific commands. ```sh cd gatsby-example-site ``` -------------------------------- ### Create .env File (Shell) Source: https://github.com/guess-js/guess/blob/master/experiments/guess-static-sites/README.md Create an empty `.env` file in the project directory. This file will be used to store confidential configuration details like API keys and database credentials. ```Shell $ touch .env ``` -------------------------------- ### Running Unit Tests with Nx Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/nx/libs/home/ui/README.md This command executes the unit tests specifically for the 'feat-home' library using the Nx task runner. It's the standard way to verify the functionality of this library. ```shell nx test feat-home ``` -------------------------------- ### Running Unit Tests with Nx (Shell) Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/nx/libs/customers/ui/README.md This command executes the unit tests specifically for the 'feat-customers' library using the Nx task runner. It's the standard way to verify the functionality of this library. ```Shell nx test feat-customers ``` -------------------------------- ### CLI Commands for Preact App Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/preact-app/README.md Essential command-line interface commands for setting up, running, building, and testing the Preact application using npm scripts. ```bash # install dependencies npm install # serve with hot reload at localhost:8080 npm run dev # build for production with minification npm run build # test the production build locally npm run serve # run tests with jest and preact-render-spy npm run test ``` -------------------------------- ### Building Angular Project (CLI) Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/test/fixtures/angular/README.md Compiles the Angular application into deployable artifacts. The output is stored in the `dist/` directory. ```Shell ng build ``` -------------------------------- ### Building Angular Project for Production (CLI) Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/test/fixtures/angular/README.md Compiles the Angular application for production deployment. This includes optimizations like AOT compilation, minification, and tree-shaking. The output is in `dist/`. ```Shell ng build --prod ``` -------------------------------- ### Building Project - Angular CLI Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/ng8/README.md Compiles the Angular project into output artifacts stored in the `dist/` directory. Use the `--prod` flag for a production build optimized for deployment. ```Shell ng build ``` -------------------------------- ### Explore Predictions in MongoDB (Mongo Shell) Source: https://github.com/guess-js/guess/blob/master/experiments/guess-static-sites/README.md Connect to the MongoDB shell, switch to the development database, and query the 'predictions' collection to inspect the generated results. ```mongo $ mongo $ use guessjs_dev $ db.predictions.find() ``` -------------------------------- ### Configure Google Analytics Credentials (Bash) Source: https://github.com/guess-js/guess/blob/master/experiments/guess-static-sites/README.md Set environment variables for the Google Analytics View ID and Service Account Email. Replace the placeholder values with your actual credentials obtained from Google Analytics and Google Cloud Platform. ```bash VIEW_ID=12345678 SERVICE_ACCOUNT_EMAIL=example@example-project-123456.iam.gserviceaccount.com ``` -------------------------------- ### Configure GuessPlugin for Automatic Prefetching Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/README.md Configures the GuessPlugin to use guess-parser for automatic route detection and prefetching, using JWT credentials for Google Analytics authentication. ```ts import { parseRoutes } from 'guess-parser'; const credentials = require('./credentials.json'); GuessPlugin({ jwt: credentials, GA: 'XXXXXX', routeProvider() { return parseRoutes('.'); }, runtime: { delegate: false } }); ``` -------------------------------- ### Running Angular Unit Tests (CLI) Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/test/fixtures/angular/README.md Executes the unit tests for the Angular application using the Karma test runner. Displays test results in the console or browser. ```Shell ng test ``` -------------------------------- ### Running Unit Tests - Angular CLI Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/ng8/README.md Executes the project's unit tests using the configured test runner, typically Karma. This command provides feedback on code correctness. ```Shell ng test ``` -------------------------------- ### Run Prediction Generation Script (Bash) Source: https://github.com/guess-js/guess/blob/master/experiments/guess-static-sites/README.md Execute the Node.js script responsible for fetching data from Google Analytics and generating page predictions based on user behavior. ```bash $ node generatePredictions.js ``` -------------------------------- ### Generate PEM Certificate (Shell) Source: https://github.com/guess-js/guess/blob/master/experiments/guess-static-sites/README.md Convert the downloaded P12 private key file into a PEM format certificate using OpenSSL. This is required for authenticating with Google Analytics APIs. ```Shell $ openssl pkcs12 -in *.p12 -out key.pem -nodes -clcerts ``` -------------------------------- ### Generating Angular Component (CLI) Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/test/fixtures/angular/README.md Generates a new Angular component with associated files (HTML, CSS, TS, spec). Replace `component-name` with the desired name for the component. ```Shell ng generate component component-name ``` -------------------------------- ### Running Angular End-to-End Tests (CLI) Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/test/fixtures/angular/README.md Executes the end-to-end tests for the Angular application using the Protractor test framework. Tests simulate user interaction in a real browser. ```Shell ng e2e ``` -------------------------------- ### Fetching Google Analytics Data with guess-ga and guess-parser (TypeScript) Source: https://github.com/guess-js/guess/blob/master/packages/guess-ga/README.md Demonstrates how to use guess-ga to fetch Google Analytics data, authenticate using a service account (JWT), parse application routes with guess-parser, and save the aggregated data to a JSON file. Requires a credentials file and a Google Analytics view ID. ```typescript const { fetch } = require('guess-ga'); const { parseRoutes, ProjectType } = require('guess-parser'); const { JWT } = require('google-auth-library'); const { writeFileSync } = require('fs'); const credentials = require('./secret/credentials.json'); const auth = new JWT( credentials.client_email, null, credentials.private_key, ['https://www.googleapis.com/auth/analytics.readonly'] ); const viewId = '000000000'; const applicationRoutes = parseRoutes('tsconfig.app.json', ProjectType.Angular); fetch({ auth, viewId, period: { startDate: new Date('2018-1-1'), endDate: new Date(Date.now()) }, formatter: r => r.replace('/app', ''), routes: applicationRoutes.map(f => f.path) }).then(g => { writeFileSync('data.json', JSON.stringify(g, null, 2)); }); ``` -------------------------------- ### Instantiate GuessPlugin with GA ID (JS) Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/README.md Adds a new instance of the GuessPlugin to the webpack plugins array, configuring it with a Google Analytics view ID for data extraction. ```js new GuessPlugin({ GA: 'GOOGLE_ANALYTICS_VIEW_ID'}); ``` -------------------------------- ### Running End-to-End Tests - Angular CLI Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/ng8/README.md Executes the project's end-to-end tests using the configured test runner, typically Protractor. These tests verify the application's functionality from a user's perspective. ```Shell ng e2e ``` -------------------------------- ### Generating Angular Schematics (CLI) Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/test/fixtures/angular/README.md Generates various Angular artifacts like directives, pipes, services, classes, guards, interfaces, enums, or modules. Choose the desired schematic type and provide a name. ```Shell ng generate directive|pipe|service|class|guard|interface|enum|module ``` -------------------------------- ### Defining Project Metadata and Types (TypeScript) Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/README.md This TypeScript snippet defines the core interfaces and enums used by guess-parser to represent detected project information, including the project type, version, and optional layout details. ```typescript export interface ProjectMetadata { type: ProjectType; version: string; details?: ProjectLayout; } export enum ProjectType { AngularCLI = 'angular-cli', CreateReactApp = 'create-react-app', Gatsby = 'gatsby', CreateReactAppTypeScript = 'create-react-app-typescript' } export interface ProjectLayout { typescript?: string; tsconfigPath?: string; sourceDir?: string; } ``` -------------------------------- ### Advanced Usage of guess API Function Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/README.md Imports and invokes the guess function with a specified current route and an optional whitelist of paths to predict next page visits. ```ts import { guess } from 'guess-webpack/api'; guess('/current/route', ['/link-1', '/link-2', '/unavailable']); ``` -------------------------------- ### Defining Report Data Structure with TypeScript Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/README.md Defines the TypeScript interfaces `PageTransitions` and `Report` which specify the required structure for the custom report data provided to the `GuessPlugin`. `PageTransitions` maps page paths to visit counts, and `Report` maps source page paths to `PageTransitions` objects. ```typescript export interface PageTransitions { [key: string]: number; } export interface Report { [key: string]: PageTransitions; } ``` -------------------------------- ### Instantiate GuessPlugin with GA ID (TS) Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/README.md Adds a new instance of the GuessPlugin to the webpack plugins array, configuring it with a Google Analytics view ID for data extraction. ```ts new GuessPlugin({ GA: 'GA_VIEW_ID' }); ``` -------------------------------- ### Generating Code - Angular CLI Source: https://github.com/guess-js/guess/blob/master/packages/guess-parser/test/fixtures/ng8/README.md Generates new Angular code artifacts like components, directives, pipes, services, classes, guards, interfaces, enums, or modules. Replace `component-name` with the desired name and artifact type. ```Shell ng generate component component-name ``` -------------------------------- ### Import GuessPlugin in Webpack Config (JS) Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/README.md Imports the GuessPlugin class from the guess-webpack package into a JavaScript webpack configuration file. ```js const { GuessPlugin } = require('guess-webpack'); ``` -------------------------------- ### Import GuessPlugin in Webpack Config (TS) Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/README.md Imports the GuessPlugin class from the guess-webpack package into a TypeScript webpack configuration file. ```ts const { GuessPlugin } = require('guess-webpack'); ``` -------------------------------- ### Define RoutingModule Interface Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/README.md Defines the TypeScript interface for the RoutingModule object, which represents a route and its associated module information. ```ts export interface RoutingModule { path: string; modulePath: string; parentModulePath: string | null; lazy: boolean; } ``` -------------------------------- ### Define Custom RouteProvider Type Source: https://github.com/guess-js/guess/blob/master/packages/guess-webpack/README.md Defines the TypeScript type signature required for a custom route provider function used by GuessPlugin. ```ts export type RouteProvider = () => Promise; ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.