{"id":13658848,"url":"https://github.com/gonzofish/angular-librarian","last_synced_at":"2025-04-24T11:32:55.013Z","repository":{"id":57104630,"uuid":"79459541","full_name":"gonzofish/angular-librarian","owner":"gonzofish","description":"An Angular 2+ scaffolding setup for creating libraries","archived":true,"fork":false,"pushed_at":"2018-06-27T14:01:54.000Z","size":370,"stargazers_count":91,"open_issues_count":10,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-20T16:03:49.647Z","etag":null,"topics":["angular","angular-library","angular2","cli","generator","karma-configuration","library","ngl-command","scaffold","typescript","webpack","webpack-configuration"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/angular-librarian","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gonzofish.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-01-19T14:09:12.000Z","updated_at":"2024-01-02T14:58:02.000Z","dependencies_parsed_at":"2022-08-20T20:40:56.256Z","dependency_job_id":null,"html_url":"https://github.com/gonzofish/angular-librarian","commit_stats":null,"previous_names":["gonzofish/angular-library-set"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gonzofish%2Fangular-librarian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gonzofish%2Fangular-librarian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gonzofish%2Fangular-librarian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gonzofish%2Fangular-librarian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gonzofish","download_url":"https://codeload.github.com/gonzofish/angular-librarian/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250618677,"owners_count":21460136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","angular-library","angular2","cli","generator","karma-configuration","library","ngl-command","scaffold","typescript","webpack","webpack-configuration"],"created_at":"2024-08-02T05:01:03.128Z","updated_at":"2025-04-24T11:32:54.551Z","avatar_url":"https://github.com/gonzofish.png","language":"JavaScript","readme":"# With the addition of `ng generate library` to the Angular CLI, you should be using the CLI, as it will be the most up-to-date and consistent method of creating your library. [Docs on `generate library`](https://github.com/angular/angular-cli/wiki/generate-library).\n\nFeel free to keep using Angular Librarian, though, but it will receive few, if any, more updates. Thanks to everyone who helped in its development and utilized it!\n\n\n# Angular Librarian\n\n[![Build Status](https://semaphoreci.com/api/v1/gonzofish/angular-librarian/branches/master/badge.svg)](https://semaphoreci.com/gonzofish/angular-librarian)\n[![codecov](https://codecov.io/gh/gonzofish/angular-librarian/branch/master/graph/badge.svg)](https://codecov.io/gh/gonzofish/angular-librarian)\n[![npm version](https://badge.fury.io/js/angular-librarian.svg)](https://badge.fury.io/js/angular-librarian)\n\nAn Angular 2+ scaffolding setup. Generates AOT-compliant code using similar\nparadigms to the [Angular CLI](https://github.com/angular/angular-cli).\n\n- [Migration Guides](MIGRATION.md)\n- [To Use the `ngl` Command](#ngl-command)\n- [Usage](#usage)\n- [Generative Commands](#generative-commands)\n    - [initialize](#init)\n    - [component](#component)\n    - [directive](#directive)\n    - [pipe](#pipe)\n    - [service](#service)\n- [Project Commands](#project-commands)\n    - [build](#build)\n    - [lint](#lint)\n    - [publish](#publish)\n    - [server](#serve)\n    - [test](#test)\n    - [upgrade](#upgrade)\n- [Unit Testing](#unit)\n- [Custom Configurations](#custom-config)\n    - [Karma Configuration](#karma-config)\n    - [Rollup Configuration](#rollup-config)\n    - [Webpack Configurations](#webpack-configs)\n- [Packaging](#pack)\n- [Contributing](#contribute)\n\n\n\n## \u003ca id=\"ngl-command\"\u003e\u003c/a\u003eTo Use the ngl Command\n\nThe `ngl` command does _not_ install globally by default. To get it working\nthere are some additional steps. To learn how to install it on your system,\ntake a look at [`CLI.md`](CLI.md).\n\nIf you do _not_ want to use the `ngl` command, please see the commands in\n\"[Generative Commands](#generative-commands)\" and\n\"[Project Commands](#project-commands)\" for the alternative usage.\n\n\n## Usage\n\nCreate a new folder and initialize an NPM project:\n\n```shell\n\u003e mkdir my-lib\n\u003e cd my-lib\n\u003e npm init -f\n```\n\nInstall this package to your project:\n\n```shell\n\u003e npm i -D angular-librarian\n```\n\nThe following command (`ngl`) is not available out of the box. To set it up, see\n\"[To Use the ngl Command](#to-use-the-ngl-command)\".\n\nThen initialize your project:\n\n```shell\n\u003e ngl i\n\nLibrary name: my-lib\nREADME Title: My Library\nRepository URL: https://github.com/me/my-lib\nReinitialize Git project (y/N)?\nInstalling Node modules\n...NPM install occurs\nNode modules installed\n```\n\n## Generative Commands\n\nGenerative commands create files for different parts of your library.\nThere are multiple ways to execute commands:\n\n```shell\nngl \u003ccommand_name\u003e [\u003cargs\u003e]\n```\n\nor\n\n```shell\nnpm run g \u003ccommand_name\u003e [\u003cargs\u003e]\n```\n\nor\n\n```shell\nnode ./node_modules/angular-librarian \u003ccommand_name\u003e [\u003cargs\u003e]\n```\n\nThe `ngl` command-line tool and `npm run g` are both aliases for calling\n`node ./node_modules/angular-librarian`. Note that all arguments are optional.\n\nCommand | Purpose\n--- | ---\n[initial](#init) | Sets up the project\n[component](#component) | Creates a component\n[directive](#directive) | Creates a directive\n[pipe](#pipe) | Creates a pipe\n[service](#service) | Creates a service\n\n### \u003ca id=\"init\"\u003e\u003c/a\u003einitialize (aliases: i, init)\n\nSets up the project. Can also be run to update a project to the latest Angular Librarian configuration.\n\n#### Call signature\n\n```shell\nngl i \u003coptions\u003e\nngl init \u003coptions\u003e\nngl initialize \u003coptions\u003e\nnpm run g i \u003coptions\u003e\nnpm run g init \u003coptions\u003e\nnpm run g initialize \u003coptions\u003e\n```\n\n#### Options\n\n- `--no-install` / `--ni`: Skip installing Node modules\n\n#### Prompts\n- `Library name:` a dash-cased name that is used in constructing the `package.json`\n    and `*.module.ts` file. It is also used to create the class name of the module.\n- `Prefix (component/directive selector):` an optional prefix to prepend to any\n    components and directives in your library; leave blank to use no prefix\n- `README Title:` the string to insert in the `README.md` file\n- `Repository URL:` the repository where the code will be held\n- `Reinitialize Git project (y/N)?`: if left blank, defaults to no. If yes or y are\n    entered, it will reinitialize a git project.\n\n#### Output\n\nCreates the project structure and a slew of files:\n\n```\n|__examples/\n   |__example.component.html\n   |__example.component.ts\n   |__example.main.ts\n   |__example.module.ts\n   |__index.html\n|__node_modules/\n   |__...\n|__src/\n   |__\u003clibrary name\u003e.module.ts\n   |__index.ts\n   |__test.ts\n|__webpack/\n   |__webpack.dev.js\n   |__webpack.test.js\n|__.gitignore\n|__.npmignore\n|__index.ts\n|__karma.conf.js\n|__package.json\n|__README.md\n|__tsconfig.json\n|__tsconfig.doc.json\n|__tsconfig.es5.json\n|__tsconfig.es2015.json\n|__tsconfig.test.json\n|__tslint.json\n```\n\n- `examples/`: where the example usage of the library can be shown\n- `examples/example.component.html`: the example application's root component template\n- `examples/example.component.ts`: the example application's root component\n- `examples/example.main.ts`: the example application's main file\n- `examples/example.module.ts`: the example application module\n- `examples/index.html`: the example application's main HTML file\n- `node_modules/`: where the dependencies installed via NPM are stored\n- `src/`: where the bulk of application \u0026 test code is.\n- `src/\u003clibrary name\u003e.module.ts`: the main module of the library\n- `src/index.ts`: a barrel file for easy exporting of classes; makes it easier\n    on consumers to access parts of the code for importing.\n- `webpack/`: contains the Wepack configuration files\n- `webpack/webpack.dev.js`: this file is used when running the webpack-dev-server\n- `webpack/webpack.test.js`: used when running unit tests\n- `.gitignore`: the list of file \u0026 folder patterns to not commit to git\n- `.npmignore`: the list of file \u0026 folder patterns to not publish to NPM\n- `index.ts`: another barrel file\n- `karma.conf.js`: the testing setup for the project\n- `package.json`: holds the list of dependencides for the project, scripts, and\n    other metadata about the library\n- `README.md`: a markdown file best used for providing users with an overview of\n    the library\n- `test.ts`: contains code needed to get the Angular test environment bootstrapped\n- `tsconfig.json`: the TypeScript configuration for the project\n- `tsconfig.*.json`: the TypeScript configuration for specific tasks (`doc` is for\n    documentation generationg, `es5` \u0026 `es2015` are for builds, and `test` is for\n    testing)\n- `tslint.json`: the linting rules for the project\n- `vendor.ts`: contains a list of dependencies that Angular needs loaded before the\n    application is loaded\n\n\n### \u003ca id=\"component\"\u003e\u003c/a\u003ecomponent (alias: c)\n\nGenerates a component\n\n#### Call signatures\n\n```shell\nngl c \u003coptions\u003e\nngl component \u003cselector\u003e \u003coptions\u003e\nnpm run g c \u003coptions\u003e\nnpm run g component \u003cselector\u003e \u003coptions\u003e\n```\n\n#### Options\n\n- `--defaults` / `-d`: Create a component with file-based templates \u0026 styles, no\n   lifecycle hooks\n- `--examples` / `-x`: Generate the component in the `examples` directory\n- `--hooks=\u003clist of hooks\u003e` / `--h=\u003clist of hooks\u003e`: Use the provided lifecycle\n   hooks.\n- `--inline-styles` / `--is`: Use inline styles\n- `--inline-template` / `--it`: Use an inline template\n\n\n#### Prompts\n\n- `What is the component selector (in dash-case)?`: the selector for the component.\n   This prompt is skipped if a selector is provided when the command is made.\n   The selector is used to generate the component filenames and class name.\n- `Use inline styles (y/N)?`: if the user provides `n`, `no`, or a blank, the\n    component is set up with non-inline styles. If the user provides `y` or `yes`,\n    the component is set up with inline styles.\n- `Use inline template (y/N)?`: if the user provides `n`, `no`, or a blank, the\n    component is set up with a non-inline template. If the user provides `y` or\n    `yes`, the component is set up with an inline template.\n- `Lifecycle hooks (comma-separated):` users can pass a list of lifecycle hooks in\n    a comma-separated list which will then be added to the component. Understood\n    values are: `changes`, `check`, `destroy`, `init`, `onchanges`, `docheck`,\n    `ondestroy`, and `oninit`.\n\n#### Output\n\nIn the `src` directory, a sub-directory will be created with the `selector` name\nand a `component.ts`, `component.spec.ts`, and, if necessary, `component.html` and\n`component.scss` files.\n\n```shell\n|__src\n   |__\u003cselector\u003e\n      |__\u003cselector\u003e.component.html\n      |__\u003cselector\u003e.component.scss\n      |__\u003cselector\u003e.component.spec.ts\n      |__\u003cselector\u003e.component.ts\n```\n\n### \u003ca id=\"directive\"\u003e\u003c/a\u003edirective (alias: d)\n\nGenerates a directive\n\n#### Call signatures\n\n```shell\nngl d \u003coptions\u003e\nngl directive \u003cdirective-name\u003e \u003coptions\u003e\nnpm run g d \u003coptions\u003e\nnpm run g directive \u003cdirective-name\u003e \u003coptions\u003e\n```\n\n#### Options\n\n- `--examples` / `-x`: Generate the directive in the `examples` directory\n\n#### Prompts\n\n- `Directive name (in dash-case):` this prompt is asking for the name of the directive,\n    in dash-case. If the directive name is provided when the command is executed,\n    this prompt is skipped. The directive name is used to generate the directive's\n    filenames, class name and the actual directive used in templates.\n\n#### Output\n\nIn the `src` directory, under a `directives` sub-directory, two files will be added\nfor a service--a `directive.ts` and `directive.spec.ts` file.\n\n```shell\n|__src\n   |__directives\n      |__\u003cdirective-name\u003e.directive.spec.ts\n      |__\u003cdirective-name\u003e.directive.ts\n```\n\n### \u003ca id=\"service\"\u003e\u003c/a\u003eservice (alias: s)\n\nGenerates a service\n\n#### Call signatures\n\n```shell\nngl s \u003coptions\u003e\nngl service \u003cservice-name\u003e \u003coptions\u003e\nnpm run g s \u003coptions\u003e\nnpm run g service \u003cservice-name\u003e \u003coptions\u003e\n```\n\n- `--examples` / `-x`: Generate the service in the `examples` directory\n\n#### Prompts\n\n- `Service name (in dash-case):` this prompt is asking for the name of the service,\n    in dash-case. If the service name is provided when the command is executed,\n    this prompt is skipped. The service name is used to generate the service's\n    filenames and class name.\n\n#### Output\n\nIn the `src` directory, under a `services` sub-directory, two files will be added\nfor a service--a `service.ts` and `service.spec.ts` file.\n\n```shell\n|__src\n   |__services\n      |__\u003cservice-name\u003e.service.spec.ts\n      |__\u003cservice-name\u003e.service.ts\n```\n\n### \u003ca id=\"pipe\"\u003e\u003c/a\u003epipe (alias: p)\n\nGenerates a pipe\n\n#### Call signatures\n\n```shell\nngl p \u003coptions\u003e\nngl p \u003cpipe-name\u003e \u003coptions\u003e\nnpm run g p \u003coptions\u003e\nnpm run g p \u003cpipe-name\u003e \u003coptions\u003e\n```\n\n- `--examples` / `-x`: Generate the pipe in the `examples` directory\n\n#### Prompts\n\n- `Pipe name (in dash-case):` this prompt is asking for the name of the pipe,\n    in dash-case. If the pipe name is provided when the command is executed,\n    this prompt is skipped. The pipe name is used to generate the pipe's\n    filenames, class name and the actual pipe used in templates.\n\n#### Output\n\nIn the `src` directory, under a `pipes` sub-directory, two files will be added\nfor a service--a `pipe.ts` and `pipe.spec.ts` file.\n\n```shell\n|__src\n   |__pipes\n      |__\u003cpipe-name\u003e.pipe.spec.ts\n      |__\u003cpipe-name\u003e.pipe.ts\n```\n\n## \u003ca id=\"project-commands\"\u003e\u003c/a\u003eProject Commands\n\nThere are commands provided out of the box, as NPM scripts. They are:\n\nCommand     | Purpose\n---         | ---\n[build](#build) | Runs code through build process via Angular compiler (ngc)\n[lint](#lint) | Verify code matches linting rules\n[publish](#publish) | Creates tag for new version and publishes\n[serve](#serve) | Run Webpack's dev-server on project\n[test](#test) | Execute unit tests\n[upgrade](#upgrade) | Upgrade current project to latest Angular Librarian\n\n### \u003ca id=\"build\"\u003e\u003c/a\u003ebuild (alias: b)\n\nBuild the library's code. This will run the code through\nthe `ngc` compiler and compile the code for distribution.\n\n#### Call signatures\n\n```shell\nngl build\nngl b\nnpm run build\n```\n\n### \u003ca id=\"lint\"\u003e\u003c/a\u003elint (alias: l)\n\nLint code through TSLint\n\n#### Call signatures\n\n```shell\nngl lint\nngl l\nnpm run lint\n```\n\n### \u003ca id=\"publish\"\u003e\u003c/a\u003epublish (alias: pub)\n\nCreate a tag and publish the library code using the\n[`np` library](https://github.com/sindresorhus/np). Optionally, arguments can\nbe passe to make the build work faster.\n\n\u003e **Note**: only use the optional arguments if you are 100% confident\n\u003e your code works with the current dependencies \u0026 passes all tests!\n\n\u003e **Important!** To use Librarian's publishing capabilities, you need to have\n\u003e `np` installed globally. This is required because Angular \u0026 `np` require\n\u003e separate versions of [RxJS](https://github.com/ReactiveX/rxjs). Using the\n\u003e Angular-required version of RxJS will break `np` and using `np`'s will raise\n\u003e a `peerDependency` warning.\n\u003e\n\u003e You can install `np` by running the following command:\n\u003e ```shell\n\u003e npm install -g np\n\u003e ```\n\n#### Call signatures\n\n```shell\nngl publish \u003coption\u003e\nngl pub \u003coption\u003e\nnpm run tagVersion \u003coption\u003e\n```\n\n- `no-cleanup`/`nc`: publishes but does not do a cleanup of `node_modules`\n- `yolo`/`y`: publishes but does not do a cleanup of `node_modules` nor\n    does it run tests.\n\n### \u003ca id=\"serve\"\u003e\u003c/a\u003eserve (alias: v)\n\nStart the webpack dev server and run the library\ncode through it.\n\n#### Call signatures\n\n```shell\nngl serve\nngl v\nnpm start\n```\n\nWe use `start` for direct `npm` commands to keep the command as\nconcise as possible.\n\n### \u003ca id=\"test\"\u003e\u003c/a\u003etest (alias: t)\n\nRun unit tests on code. For unit test types, see the\n[unit testing](#unit) section below.\n\n#### Call signatures\n\n```shell\nngl test \u003ctype\u003e\nngl t \u003ctype\u003e\nnpm test \u003ctype\u003e\n\n```\n\n### \u003ca id=\"upgrade\"\u003e\u003c/a\u003eupgrade (alias: u, up)\n\nUpgrades the current project to the latest Angular Librarian (if necessary) and\nupdate managed files to the latest versions.\n\nManaged files are:\n\n- `.gitignore`*\n- `.npmignore`*\n- karma.conf.js\n- `package.json`*\n- `tsconfig.es2015.json`\n- `tsconfig.es5.json`\n- `tsconfig.json`\n- `tsconfig.test.json`\n- `tslint`\n- `src/test.js`\n- `tasks/`\n- `webpack/`\n\nAny files with a asterisk (*) next to their name have a merge strategy associated with them:\n- `.gitignore` and `.npmignore` will take any custom lines (case-sensitive) and add them to the new file\n- `package.json` will ensure any dependencies you've added are kept in the `dependencies` and `devDependencies` attributes, as necessary.\n\n#### Call signatures\n\n```shell\nngl upgrade\nngl up\nngl u\nnpm run g upgrade\nnpm run g up\nnpm run g u\n```\n\n## \u003ca id=\"unit\"\u003e\u003c/a\u003eUnit Testing\n\nUnit testing is done using Karma and Webpack. The setup is all done during the `initialize` command.\nThe provided testing commands will watch your files for changes.\n\nThe following commands are described in the [`test` command](#test) section.\n\n\nThese commands call the script at `tasks/test.js` and runs the Karma test runner to execute the tests.\nPrior to running Karma, the `test` command looks for a command line argument, if the argument is known,\nit will run the associated configuration, otherwise it will run the default configuration.\n\nConfigurations:\n\nCommand | Testing TypeScript\n---     | ---\ndefault | Run through PhantomJS one time with no file watching\nheadless (aliases: hl, h)| Run through PhantomJS with files being watched \u0026 tests automatically re-run\nwatch (alias: w)| Run through Chrome with files being watched \u0026 tests automatically re-run\n\nNote that Chrome still requires a manual refresh on the Debug tab to see updated test results.\n\n## \u003ca id=\"custom-config\"\u003e\u003c/a\u003eCustom Configurations\n\nSome configurations can be extended with custom properties. These\nconfigurations should be placed in a `configs` directory under the project's\nroot directory with the corresponding name:\n\n- [Karma configuration](#karma-config) (`karma.conf.js`)\n- [Rollup configuration](#rollup-config) (`rollup.config.js`)\n- [Webpack configurations](#webpack-configs)\n    - `webpack.dev.js`\n    - `webpack.test.js`\n\n### \u003ca id=\"karma-config\"\u003e\u003c/a\u003eKarma Configuration\n\nA custom Karma configuration should be a Node module that exports a function.\nThe exported function will be relay the Karma `config` variable. If provided,\nany supported attributes provided will be merged.\n\nThose attributes and their merge strategies are:\n\n- Array attributes will create an array of unique values for that attribute and\n    append the existing attribute; these fields are:\n    - `browsers`\n    - `files`\n    - `plugins`\n    - `reporters`\n- Objects will append new keys, but keep any existing ones--making it so values\n    provided by Angular Librarian can _not_ be overridden:\n    - `preprocessors`\n- Primitive values will be replaced:\n    - `color`\n    - `logLevel`\n    - `port`\n\n### \u003ca id=\"rollup-config\"\u003e\u003c/a\u003eRollup Configuration\n\nThe rollup configuration will append the provided attributes to create a new\nattribute of unique values. The attributes supported:\n\n- `commonjs`: a list of CommonJS dependencies to pull in. Will always include `node_modules/rxjs/**` to properly rollup RxJS.\n- `external`: creates a new array of unique values\n- `globals`: adds new attributes to the object\n\n_Note_: there is no file provided named `rollup.config.js` like other\nconfiguration files--instead the configuration is maintained in\n`tasks/rollup.js`.\n\n### \u003ca id=\"webpack-configs\"\u003e\u003c/a\u003eWebpack Configurations\n\nEither of the Webpack configurations can be extended by providing a file with a\nmatching name in `configs`. The configuration is applied using the\n`webpack-merge` library.\n\n## \u003ca id=\"pack\"\u003e\u003c/a\u003ePackaging\n\nTo test your packages output before publishing, run the following commands:\n\n```shell\nngl build\ncd dist\nnpm pack\n```\n\nThese commands will build the output files into a `dist` directory, change into\nthe `dist` directory, and generate a compressed file containing your library as\nit will look when packaged up and published to NPM. The packaging process\nremoves any files specific to developing your library, such as `*.spec.ts` files\nand `.npmignore`.\n\n### Unscoped Structure\n\nThe basic structure of a published, unscoped library is:\n\n```\n|__bundles/\n   |__\u003clibrary name\u003e.umd.js\n   |__\u003clibrary name\u003e.umd.js.map\n   |__\u003clibrary name\u003e.umd.min.js\n   |__\u003clibrary name\u003e.bundle.min.js.map\n|__index.d.ts\n|__package.json\n|__README.md\n|__*.d.ts\n|__\u003clibrary name\u003e.d.ts\n|__\u003clibrary name\u003e.es5.js\n|__\u003clibrary name\u003e.es5.js.map\n|__\u003clibrary name\u003e.js\n|__\u003clibrary name\u003e.js.map\n|__\u003clibrary name\u003e.metadata.json\n|__\u003clibrary name\u003e.module.d.ts\n```\n\n### Scoped Structure\n\nFor a scoped package, the structure will appear slightly different:\n\n```\n|__@\u003cscope name\u003e/\n   |__\u003clibrary name\u003e.es5.js\n   |__\u003clibrary name\u003e.es5.js.map\n   |__\u003clibrary name\u003e.js\n   |__\u003clibrary name\u003e.js.map\n|__bundles/\n   |__\u003clibrary name\u003e.umd.js\n   |__\u003clibrary name\u003e.umd.js.map\n   |__\u003clibrary name\u003e.umd.min.js\n   |__\u003clibrary name\u003e.bundle.min.js.map\n|__index.d.ts\n|__package.json\n|__README.md\n|__*.d.ts\n|__\u003clibrary name\u003e.d.ts\n|__\u003clibrary name\u003e.metadata.json\n|__\u003clibrary name\u003e.module.d.ts\n```\n\n## \u003ca id=\"contribute\"\u003e\u003c/a\u003eContributing\n\nIf you'd like to contribute to Angular Librarian, please see the\n[contributing guide](.github/CONTRIBUTING.md)!\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgonzofish%2Fangular-librarian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgonzofish%2Fangular-librarian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgonzofish%2Fangular-librarian/lists"}