schema.json 217 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema",
  3. "$id": "ng-cli://config/schema.json",
  4. "title": "Angular CLI Workspace Configuration",
  5. "type": "object",
  6. "properties": {
  7. "$schema": {
  8. "type": "string"
  9. },
  10. "version": {
  11. "$ref": "#/definitions/fileVersion"
  12. },
  13. "cli": {
  14. "$ref": "#/definitions/cliOptions"
  15. },
  16. "schematics": {
  17. "$ref": "#/definitions/schematicOptions"
  18. },
  19. "newProjectRoot": {
  20. "type": "string",
  21. "description": "Path where new projects will be created."
  22. },
  23. "projects": {
  24. "type": "object",
  25. "patternProperties": {
  26. "^(?:@[a-zA-Z0-9._-]+/)?[a-zA-Z0-9._-]+$": {
  27. "$ref": "#/definitions/project"
  28. }
  29. },
  30. "additionalProperties": false
  31. }
  32. },
  33. "additionalProperties": false,
  34. "required": [
  35. "version"
  36. ],
  37. "definitions": {
  38. "cliOptions": {
  39. "type": "object",
  40. "properties": {
  41. "schematicCollections": {
  42. "type": "array",
  43. "description": "The list of schematic collections to use.",
  44. "items": {
  45. "type": "string",
  46. "uniqueItems": true
  47. }
  48. },
  49. "packageManager": {
  50. "description": "Specify which package manager tool to use.",
  51. "type": "string",
  52. "enum": [
  53. "npm",
  54. "cnpm",
  55. "yarn",
  56. "pnpm",
  57. "bun"
  58. ]
  59. },
  60. "warnings": {
  61. "description": "Control CLI specific console warnings",
  62. "type": "object",
  63. "properties": {
  64. "versionMismatch": {
  65. "description": "Show a warning when the global version is newer than the local one.",
  66. "type": "boolean"
  67. }
  68. },
  69. "additionalProperties": false
  70. },
  71. "analytics": {
  72. "type": [
  73. "boolean",
  74. "string"
  75. ],
  76. "description": "Share pseudonymous usage data with the Angular Team at Google."
  77. },
  78. "cache": {
  79. "description": "Control disk cache.",
  80. "type": "object",
  81. "properties": {
  82. "environment": {
  83. "description": "Configure in which environment disk cache is enabled.",
  84. "type": "string",
  85. "enum": [
  86. "local",
  87. "ci",
  88. "all"
  89. ]
  90. },
  91. "enabled": {
  92. "description": "Configure whether disk caching is enabled.",
  93. "type": "boolean"
  94. },
  95. "path": {
  96. "description": "Cache base path.",
  97. "type": "string"
  98. }
  99. },
  100. "additionalProperties": false
  101. }
  102. },
  103. "additionalProperties": false
  104. },
  105. "cliGlobalOptions": {
  106. "type": "object",
  107. "properties": {
  108. "schematicCollections": {
  109. "type": "array",
  110. "description": "The list of schematic collections to use.",
  111. "items": {
  112. "type": "string",
  113. "uniqueItems": true
  114. }
  115. },
  116. "packageManager": {
  117. "description": "Specify which package manager tool to use.",
  118. "type": "string",
  119. "enum": [
  120. "npm",
  121. "cnpm",
  122. "yarn",
  123. "pnpm",
  124. "bun"
  125. ]
  126. },
  127. "warnings": {
  128. "description": "Control CLI specific console warnings",
  129. "type": "object",
  130. "properties": {
  131. "versionMismatch": {
  132. "description": "Show a warning when the global version is newer than the local one.",
  133. "type": "boolean"
  134. }
  135. },
  136. "additionalProperties": false
  137. },
  138. "analytics": {
  139. "type": [
  140. "boolean",
  141. "string"
  142. ],
  143. "description": "Share pseudonymous usage data with the Angular Team at Google."
  144. },
  145. "completion": {
  146. "type": "object",
  147. "description": "Angular CLI completion settings.",
  148. "properties": {
  149. "prompted": {
  150. "type": "boolean",
  151. "description": "Whether the user has been prompted to add completion command prompt."
  152. }
  153. },
  154. "additionalProperties": false
  155. }
  156. },
  157. "additionalProperties": false
  158. },
  159. "schematicOptions": {
  160. "type": "object",
  161. "properties": {
  162. "@schematics/angular:application": {
  163. "$ref": "#/definitions/SchematicsAngularApplicationSchema"
  164. },
  165. "@schematics/angular:class": {
  166. "$ref": "#/definitions/SchematicsAngularClassSchema"
  167. },
  168. "@schematics/angular:component": {
  169. "$ref": "#/definitions/SchematicsAngularComponentSchema"
  170. },
  171. "@schematics/angular:directive": {
  172. "$ref": "#/definitions/SchematicsAngularDirectiveSchema"
  173. },
  174. "@schematics/angular:enum": {
  175. "$ref": "#/definitions/SchematicsAngularEnumSchema"
  176. },
  177. "@schematics/angular:guard": {
  178. "$ref": "#/definitions/SchematicsAngularGuardSchema"
  179. },
  180. "@schematics/angular:interceptor": {
  181. "$ref": "#/definitions/SchematicsAngularInterceptorSchema"
  182. },
  183. "@schematics/angular:interface": {
  184. "$ref": "#/definitions/SchematicsAngularInterfaceSchema"
  185. },
  186. "@schematics/angular:library": {
  187. "$ref": "#/definitions/SchematicsAngularLibrarySchema"
  188. },
  189. "@schematics/angular:pipe": {
  190. "$ref": "#/definitions/SchematicsAngularPipeSchema"
  191. },
  192. "@schematics/angular:ng-new": {
  193. "$ref": "#/definitions/SchematicsAngularNgNewSchema"
  194. },
  195. "@schematics/angular:resolver": {
  196. "$ref": "#/definitions/SchematicsAngularResolverSchema"
  197. },
  198. "@schematics/angular:service": {
  199. "$ref": "#/definitions/SchematicsAngularServiceSchema"
  200. },
  201. "@schematics/angular:web-worker": {
  202. "$ref": "#/definitions/SchematicsAngularWebWorkerSchema"
  203. }
  204. },
  205. "additionalProperties": true
  206. },
  207. "fileVersion": {
  208. "type": "integer",
  209. "description": "File format version",
  210. "minimum": 1
  211. },
  212. "project": {
  213. "type": "object",
  214. "properties": {
  215. "cli": {
  216. "schematicCollections": {
  217. "type": "array",
  218. "description": "The list of schematic collections to use.",
  219. "items": {
  220. "type": "string",
  221. "uniqueItems": true
  222. }
  223. }
  224. },
  225. "schematics": {
  226. "$ref": "#/definitions/schematicOptions"
  227. },
  228. "prefix": {
  229. "type": "string",
  230. "format": "html-selector",
  231. "description": "The prefix to apply to generated selectors."
  232. },
  233. "root": {
  234. "type": "string",
  235. "description": "Root of the project files."
  236. },
  237. "i18n": {
  238. "$ref": "#/definitions/project/definitions/i18n"
  239. },
  240. "sourceRoot": {
  241. "type": "string",
  242. "description": "The root of the source files, assets and index.html file structure."
  243. },
  244. "projectType": {
  245. "type": "string",
  246. "description": "Project type.",
  247. "enum": [
  248. "application",
  249. "library"
  250. ]
  251. },
  252. "architect": {
  253. "type": "object",
  254. "additionalProperties": {
  255. "$ref": "#/definitions/project/definitions/target"
  256. }
  257. },
  258. "targets": {
  259. "type": "object",
  260. "additionalProperties": {
  261. "$ref": "#/definitions/project/definitions/target"
  262. }
  263. }
  264. },
  265. "required": [
  266. "root",
  267. "projectType"
  268. ],
  269. "anyOf": [
  270. {
  271. "required": [
  272. "architect"
  273. ],
  274. "not": {
  275. "required": [
  276. "targets"
  277. ]
  278. }
  279. },
  280. {
  281. "required": [
  282. "targets"
  283. ],
  284. "not": {
  285. "required": [
  286. "architect"
  287. ]
  288. }
  289. },
  290. {
  291. "not": {
  292. "required": [
  293. "targets",
  294. "architect"
  295. ]
  296. }
  297. }
  298. ],
  299. "additionalProperties": false,
  300. "patternProperties": {
  301. "^[a-z]{1,3}-.*": {}
  302. },
  303. "definitions": {
  304. "i18n": {
  305. "description": "Project i18n options",
  306. "type": "object",
  307. "properties": {
  308. "sourceLocale": {
  309. "oneOf": [
  310. {
  311. "type": "string",
  312. "description": "Specifies the source locale of the application.",
  313. "default": "en-US",
  314. "$comment": "IETF BCP 47 language tag (simplified)",
  315. "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$"
  316. },
  317. {
  318. "type": "object",
  319. "description": "Localization options to use for the source locale.",
  320. "properties": {
  321. "code": {
  322. "type": "string",
  323. "description": "Specifies the locale code of the source locale.",
  324. "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$"
  325. },
  326. "baseHref": {
  327. "type": "string",
  328. "description": "Specifies the HTML base HREF for the locale. Defaults to the locale code if not provided."
  329. },
  330. "subPath": {
  331. "type": "string",
  332. "description": "Defines the subpath for accessing this locale. It serves as the HTML base HREF and the directory name for the output. Defaults to the locale code if not specified.",
  333. "pattern": "^[\\w-]*$"
  334. }
  335. },
  336. "anyOf": [
  337. {
  338. "required": [
  339. "subPath"
  340. ],
  341. "not": {
  342. "required": [
  343. "baseHref"
  344. ]
  345. }
  346. },
  347. {
  348. "required": [
  349. "baseHref"
  350. ],
  351. "not": {
  352. "required": [
  353. "subPath"
  354. ]
  355. }
  356. },
  357. {
  358. "not": {
  359. "required": [
  360. "baseHref",
  361. "subPath"
  362. ]
  363. }
  364. }
  365. ],
  366. "additionalProperties": false
  367. }
  368. ]
  369. },
  370. "locales": {
  371. "type": "object",
  372. "additionalProperties": false,
  373. "patternProperties": {
  374. "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$": {
  375. "oneOf": [
  376. {
  377. "type": "string",
  378. "description": "Localization file to use for i18n."
  379. },
  380. {
  381. "type": "array",
  382. "description": "Localization files to use for i18n.",
  383. "items": {
  384. "type": "string",
  385. "uniqueItems": true
  386. }
  387. },
  388. {
  389. "type": "object",
  390. "description": "Localization options to use for the locale.",
  391. "properties": {
  392. "translation": {
  393. "oneOf": [
  394. {
  395. "type": "string",
  396. "description": "Localization file to use for i18n."
  397. },
  398. {
  399. "type": "array",
  400. "description": "Localization files to use for i18n.",
  401. "items": {
  402. "type": "string",
  403. "uniqueItems": true
  404. }
  405. }
  406. ]
  407. },
  408. "baseHref": {
  409. "type": "string",
  410. "description": "Specifies the HTML base HREF for the locale. Defaults to the locale code if not provided."
  411. },
  412. "subPath": {
  413. "type": "string",
  414. "description": "Defines the URL segment for accessing this locale. It serves as the HTML base HREF and the directory name for the output. Defaults to the locale code if not specified.",
  415. "pattern": "^[\\w-]*$"
  416. }
  417. },
  418. "anyOf": [
  419. {
  420. "required": [
  421. "subPath"
  422. ],
  423. "not": {
  424. "required": [
  425. "baseHref"
  426. ]
  427. }
  428. },
  429. {
  430. "required": [
  431. "baseHref"
  432. ],
  433. "not": {
  434. "required": [
  435. "subPath"
  436. ]
  437. }
  438. },
  439. {
  440. "not": {
  441. "required": [
  442. "baseHref",
  443. "subPath"
  444. ]
  445. }
  446. }
  447. ],
  448. "additionalProperties": false
  449. }
  450. ]
  451. }
  452. }
  453. }
  454. },
  455. "additionalProperties": false
  456. },
  457. "target": {
  458. "oneOf": [
  459. {
  460. "$comment": "Extendable target with custom builder",
  461. "type": "object",
  462. "properties": {
  463. "builder": {
  464. "type": "string",
  465. "description": "The builder used for this package.",
  466. "not": {
  467. "enum": [
  468. "@angular/build:application",
  469. "@angular/build:dev-server",
  470. "@angular/build:extract-i18n",
  471. "@angular/build:karma",
  472. "@angular/build:ng-packagr",
  473. "@angular/build:unit-test",
  474. "@angular-devkit/build-angular:application",
  475. "@angular-devkit/build-angular:app-shell",
  476. "@angular-devkit/build-angular:browser",
  477. "@angular-devkit/build-angular:browser-esbuild",
  478. "@angular-devkit/build-angular:dev-server",
  479. "@angular-devkit/build-angular:extract-i18n",
  480. "@angular-devkit/build-angular:karma",
  481. "@angular-devkit/build-angular:ng-packagr",
  482. "@angular-devkit/build-angular:prerender",
  483. "@angular-devkit/build-angular:jest",
  484. "@angular-devkit/build-angular:web-test-runner",
  485. "@angular-devkit/build-angular:server",
  486. "@angular-devkit/build-angular:ssr-dev-server"
  487. ]
  488. }
  489. },
  490. "defaultConfiguration": {
  491. "type": "string",
  492. "description": "A default named configuration to use when a target configuration is not provided."
  493. },
  494. "options": {
  495. "type": "object"
  496. },
  497. "configurations": {
  498. "type": "object",
  499. "description": "A map of alternative target options.",
  500. "additionalProperties": {
  501. "type": "object"
  502. }
  503. }
  504. },
  505. "additionalProperties": false,
  506. "required": [
  507. "builder"
  508. ]
  509. },
  510. {
  511. "type": "object",
  512. "additionalProperties": false,
  513. "properties": {
  514. "builder": {
  515. "const": "@angular/build:application"
  516. },
  517. "defaultConfiguration": {
  518. "type": "string",
  519. "description": "A default named configuration to use when a target configuration is not provided."
  520. },
  521. "options": {
  522. "$ref": "#/definitions/AngularBuildBuildersApplicationSchema"
  523. },
  524. "configurations": {
  525. "type": "object",
  526. "additionalProperties": {
  527. "$ref": "#/definitions/AngularBuildBuildersApplicationSchema"
  528. }
  529. }
  530. }
  531. },
  532. {
  533. "type": "object",
  534. "additionalProperties": false,
  535. "properties": {
  536. "builder": {
  537. "const": "@angular-devkit/build-angular:application"
  538. },
  539. "defaultConfiguration": {
  540. "type": "string",
  541. "description": "A default named configuration to use when a target configuration is not provided."
  542. },
  543. "options": {
  544. "$ref": "#/definitions/AngularBuildBuildersApplicationSchema"
  545. },
  546. "configurations": {
  547. "type": "object",
  548. "additionalProperties": {
  549. "$ref": "#/definitions/AngularBuildBuildersApplicationSchema"
  550. }
  551. }
  552. }
  553. },
  554. {
  555. "type": "object",
  556. "additionalProperties": false,
  557. "properties": {
  558. "builder": {
  559. "const": "@angular-devkit/build-angular:app-shell"
  560. },
  561. "defaultConfiguration": {
  562. "type": "string",
  563. "description": "A default named configuration to use when a target configuration is not provided."
  564. },
  565. "options": {
  566. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersAppShellSchema"
  567. },
  568. "configurations": {
  569. "type": "object",
  570. "additionalProperties": {
  571. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersAppShellSchema"
  572. }
  573. }
  574. }
  575. },
  576. {
  577. "type": "object",
  578. "additionalProperties": false,
  579. "properties": {
  580. "builder": {
  581. "const": "@angular-devkit/build-angular:browser"
  582. },
  583. "defaultConfiguration": {
  584. "type": "string",
  585. "description": "A default named configuration to use when a target configuration is not provided."
  586. },
  587. "options": {
  588. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserSchema"
  589. },
  590. "configurations": {
  591. "type": "object",
  592. "additionalProperties": {
  593. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserSchema"
  594. }
  595. }
  596. }
  597. },
  598. {
  599. "type": "object",
  600. "additionalProperties": false,
  601. "properties": {
  602. "builder": {
  603. "const": "@angular-devkit/build-angular:browser-esbuild"
  604. },
  605. "defaultConfiguration": {
  606. "type": "string",
  607. "description": "A default named configuration to use when a target configuration is not provided."
  608. },
  609. "options": {
  610. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserEsbuildSchema"
  611. },
  612. "configurations": {
  613. "type": "object",
  614. "additionalProperties": {
  615. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserEsbuildSchema"
  616. }
  617. }
  618. }
  619. },
  620. {
  621. "type": "object",
  622. "additionalProperties": false,
  623. "properties": {
  624. "builder": {
  625. "const": "@angular/build:dev-server"
  626. },
  627. "defaultConfiguration": {
  628. "type": "string",
  629. "description": "A default named configuration to use when a target configuration is not provided."
  630. },
  631. "options": {
  632. "$ref": "#/definitions/AngularBuildBuildersDevServerSchema"
  633. },
  634. "configurations": {
  635. "type": "object",
  636. "additionalProperties": {
  637. "$ref": "#/definitions/AngularBuildBuildersDevServerSchema"
  638. }
  639. }
  640. }
  641. },
  642. {
  643. "type": "object",
  644. "additionalProperties": false,
  645. "properties": {
  646. "builder": {
  647. "const": "@angular-devkit/build-angular:dev-server"
  648. },
  649. "defaultConfiguration": {
  650. "type": "string",
  651. "description": "A default named configuration to use when a target configuration is not provided."
  652. },
  653. "options": {
  654. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersDevServerSchema"
  655. },
  656. "configurations": {
  657. "type": "object",
  658. "additionalProperties": {
  659. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersDevServerSchema"
  660. }
  661. }
  662. }
  663. },
  664. {
  665. "type": "object",
  666. "additionalProperties": false,
  667. "properties": {
  668. "builder": {
  669. "const": "@angular/build:extract-i18n"
  670. },
  671. "defaultConfiguration": {
  672. "type": "string",
  673. "description": "A default named configuration to use when a target configuration is not provided."
  674. },
  675. "options": {
  676. "$ref": "#/definitions/AngularBuildBuildersExtractI18nSchema"
  677. },
  678. "configurations": {
  679. "type": "object",
  680. "additionalProperties": {
  681. "$ref": "#/definitions/AngularBuildBuildersExtractI18nSchema"
  682. }
  683. }
  684. }
  685. },
  686. {
  687. "type": "object",
  688. "additionalProperties": false,
  689. "properties": {
  690. "builder": {
  691. "const": "@angular-devkit/build-angular:extract-i18n"
  692. },
  693. "defaultConfiguration": {
  694. "type": "string",
  695. "description": "A default named configuration to use when a target configuration is not provided."
  696. },
  697. "options": {
  698. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersExtractI18nSchema"
  699. },
  700. "configurations": {
  701. "type": "object",
  702. "additionalProperties": {
  703. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersExtractI18nSchema"
  704. }
  705. }
  706. }
  707. },
  708. {
  709. "type": "object",
  710. "additionalProperties": false,
  711. "properties": {
  712. "builder": {
  713. "const": "@angular/build:unit-test"
  714. },
  715. "defaultConfiguration": {
  716. "type": "string",
  717. "description": "A default named configuration to use when a target configuration is not provided."
  718. },
  719. "options": {
  720. "$ref": "#/definitions/AngularBuildBuildersUnitTestSchema"
  721. },
  722. "configurations": {
  723. "type": "object",
  724. "additionalProperties": {
  725. "$ref": "#/definitions/AngularBuildBuildersUnitTestSchema"
  726. }
  727. }
  728. }
  729. },
  730. {
  731. "type": "object",
  732. "additionalProperties": false,
  733. "properties": {
  734. "builder": {
  735. "const": "@angular/build:karma"
  736. },
  737. "defaultConfiguration": {
  738. "type": "string",
  739. "description": "A default named configuration to use when a target configuration is not provided."
  740. },
  741. "options": {
  742. "$ref": "#/definitions/AngularBuildBuildersKarmaSchema"
  743. },
  744. "configurations": {
  745. "type": "object",
  746. "additionalProperties": {
  747. "$ref": "#/definitions/AngularBuildBuildersKarmaSchema"
  748. }
  749. }
  750. }
  751. },
  752. {
  753. "type": "object",
  754. "additionalProperties": false,
  755. "properties": {
  756. "builder": {
  757. "const": "@angular-devkit/build-angular:karma"
  758. },
  759. "defaultConfiguration": {
  760. "type": "string",
  761. "description": "A default named configuration to use when a target configuration is not provided."
  762. },
  763. "options": {
  764. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersKarmaSchema"
  765. },
  766. "configurations": {
  767. "type": "object",
  768. "additionalProperties": {
  769. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersKarmaSchema"
  770. }
  771. }
  772. }
  773. },
  774. {
  775. "type": "object",
  776. "additionalProperties": false,
  777. "properties": {
  778. "builder": {
  779. "const": "@angular-devkit/build-angular:jest"
  780. },
  781. "defaultConfiguration": {
  782. "type": "string",
  783. "description": "A default named configuration to use when a target configuration is not provided."
  784. },
  785. "options": {
  786. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersJestSchema"
  787. },
  788. "configurations": {
  789. "type": "object",
  790. "additionalProperties": {
  791. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersJestSchema"
  792. }
  793. }
  794. }
  795. },
  796. {
  797. "type": "object",
  798. "additionalProperties": false,
  799. "properties": {
  800. "builder": {
  801. "const": "@angular-devkit/build-angular:web-test-runner"
  802. },
  803. "defaultConfiguration": {
  804. "type": "string",
  805. "description": "A default named configuration to use when a target configuration is not provided."
  806. },
  807. "options": {
  808. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersWebTestRunnerSchema"
  809. },
  810. "configurations": {
  811. "type": "object",
  812. "additionalProperties": {
  813. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersWebTestRunnerSchema"
  814. }
  815. }
  816. }
  817. },
  818. {
  819. "type": "object",
  820. "additionalProperties": false,
  821. "properties": {
  822. "builder": {
  823. "const": "@angular-devkit/build-angular:prerender"
  824. },
  825. "defaultConfiguration": {
  826. "type": "string",
  827. "description": "A default named configuration to use when a target configuration is not provided."
  828. },
  829. "options": {
  830. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersPrerenderSchema"
  831. },
  832. "configurations": {
  833. "type": "object",
  834. "additionalProperties": {
  835. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersPrerenderSchema"
  836. }
  837. }
  838. }
  839. },
  840. {
  841. "type": "object",
  842. "additionalProperties": false,
  843. "properties": {
  844. "builder": {
  845. "const": "@angular-devkit/build-angular:ssr-dev-server"
  846. },
  847. "defaultConfiguration": {
  848. "type": "string",
  849. "description": "A default named configuration to use when a target configuration is not provided."
  850. },
  851. "options": {
  852. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersSsrDevServerSchema"
  853. },
  854. "configurations": {
  855. "type": "object",
  856. "additionalProperties": {
  857. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersSsrDevServerSchema"
  858. }
  859. }
  860. }
  861. },
  862. {
  863. "type": "object",
  864. "additionalProperties": false,
  865. "properties": {
  866. "builder": {
  867. "const": "@angular-devkit/build-angular:server"
  868. },
  869. "defaultConfiguration": {
  870. "type": "string",
  871. "description": "A default named configuration to use when a target configuration is not provided."
  872. },
  873. "options": {
  874. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersServerSchema"
  875. },
  876. "configurations": {
  877. "type": "object",
  878. "additionalProperties": {
  879. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersServerSchema"
  880. }
  881. }
  882. }
  883. },
  884. {
  885. "type": "object",
  886. "additionalProperties": false,
  887. "properties": {
  888. "builder": {
  889. "const": "@angular-devkit/build-angular:ng-packagr"
  890. },
  891. "defaultConfiguration": {
  892. "type": "string",
  893. "description": "A default named configuration to use when a target configuration is not provided."
  894. },
  895. "options": {
  896. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersNgPackagrSchema"
  897. },
  898. "configurations": {
  899. "type": "object",
  900. "additionalProperties": {
  901. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersNgPackagrSchema"
  902. }
  903. }
  904. }
  905. },
  906. {
  907. "type": "object",
  908. "additionalProperties": false,
  909. "properties": {
  910. "builder": {
  911. "const": "@angular/build:ng-packagr"
  912. },
  913. "defaultConfiguration": {
  914. "type": "string",
  915. "description": "A default named configuration to use when a target configuration is not provided."
  916. },
  917. "options": {
  918. "$ref": "#/definitions/AngularBuildBuildersNgPackagrSchema"
  919. },
  920. "configurations": {
  921. "type": "object",
  922. "additionalProperties": {
  923. "$ref": "#/definitions/AngularBuildBuildersNgPackagrSchema"
  924. }
  925. }
  926. }
  927. }
  928. ]
  929. }
  930. }
  931. },
  932. "global": {
  933. "type": "object",
  934. "properties": {
  935. "$schema": {
  936. "type": "string"
  937. },
  938. "version": {
  939. "$ref": "#/definitions/fileVersion"
  940. },
  941. "cli": {
  942. "$ref": "#/definitions/cliGlobalOptions"
  943. },
  944. "schematics": {
  945. "$ref": "#/definitions/schematicOptions"
  946. }
  947. },
  948. "required": [
  949. "version"
  950. ]
  951. },
  952. "SchematicsAngularApplicationSchema": {
  953. "title": "Angular Application Options Schema",
  954. "type": "object",
  955. "description": "Generates a new Angular application within your workspace. This schematic sets up the foundational structure of your project, including the root component, module, and configuration files. You can customize various aspects of the application, such as routing, styling, and testing.",
  956. "additionalProperties": false,
  957. "properties": {
  958. "projectRoot": {
  959. "description": "The directory where the new application's files will be created, relative to the workspace root. If not specified, the application will be created in a subfolder within the `projects` directory, using the application's name.",
  960. "type": "string"
  961. },
  962. "name": {
  963. "description": "The name for the new application. This name will be used for the project directory and various identifiers throughout the application's code.",
  964. "type": "string",
  965. "pattern": "^(?:@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*/)?[a-zA-Z0-9-~][a-zA-Z0-9-._~]*$",
  966. "$default": {
  967. "$source": "argv",
  968. "index": 0
  969. }
  970. },
  971. "inlineStyle": {
  972. "description": "Include the styles for the root component directly within the `app.component.ts` file. Only CSS styles can be included inline. By default, a separate stylesheet file (e.g., `app.component.css`) is created.",
  973. "type": "boolean",
  974. "alias": "s"
  975. },
  976. "inlineTemplate": {
  977. "description": "Include the HTML template for the root component directly within the `app.component.ts` file. By default, a separate template file (e.g., `app.component.html`) is created.",
  978. "type": "boolean",
  979. "alias": "t"
  980. },
  981. "viewEncapsulation": {
  982. "description": "Sets the view encapsulation mode for the application's components. This determines how component styles are scoped and applied.",
  983. "enum": [
  984. "Emulated",
  985. "None",
  986. "ShadowDom"
  987. ],
  988. "type": "string"
  989. },
  990. "routing": {
  991. "type": "boolean",
  992. "description": "Generate an application with routing already configured. This sets up the necessary files and modules for managing navigation between different views in your application.",
  993. "default": true
  994. },
  995. "prefix": {
  996. "type": "string",
  997. "format": "html-selector",
  998. "description": "A prefix to be added to the selectors of components generated within this application. For example, if the prefix is `my-app` and you generate a component named `my-component`, the selector will be `my-app-my-component`.",
  999. "default": "app",
  1000. "alias": "p"
  1001. },
  1002. "style": {
  1003. "description": "The type of stylesheet files to be created for components in the application.",
  1004. "type": "string",
  1005. "default": "css",
  1006. "enum": [
  1007. "css",
  1008. "scss",
  1009. "sass",
  1010. "less"
  1011. ]
  1012. },
  1013. "skipTests": {
  1014. "description": "Skip the generation of a unit test files `spec.ts`.",
  1015. "type": "boolean",
  1016. "default": false,
  1017. "alias": "S"
  1018. },
  1019. "skipPackageJson": {
  1020. "type": "boolean",
  1021. "default": false,
  1022. "description": "Do not add dependencies to the `package.json` file."
  1023. },
  1024. "minimal": {
  1025. "description": "Generate a minimal project without any testing frameworks. This is intended for learning purposes and simple experimentation, not for production applications.",
  1026. "type": "boolean",
  1027. "default": false
  1028. },
  1029. "skipInstall": {
  1030. "description": "Skip the automatic installation of packages. You will need to manually install the dependencies later.",
  1031. "type": "boolean",
  1032. "default": false
  1033. },
  1034. "strict": {
  1035. "description": "Enable stricter bundle budget settings for the application. This helps to keep your application's bundle size small and improve performance. For more information, see https://angular.dev/tools/cli/template-typecheck#strict-mode",
  1036. "type": "boolean",
  1037. "default": true
  1038. },
  1039. "standalone": {
  1040. "description": "Create an application that utilizes the standalone API, eliminating the need for NgModules. This can simplify the structure of your application.",
  1041. "type": "boolean",
  1042. "default": true
  1043. },
  1044. "ssr": {
  1045. "description": "Configure the application for Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering).",
  1046. "type": "boolean",
  1047. "default": false
  1048. },
  1049. "zoneless": {
  1050. "description": "Generate an application that does not use `zone.js`.",
  1051. "type": "boolean",
  1052. "default": false
  1053. }
  1054. }
  1055. },
  1056. "SchematicsAngularClassSchema": {
  1057. "title": "Angular Class Options Schema",
  1058. "type": "object",
  1059. "description": "Creates a new class in your project. Classes are the fundamental building blocks for object-oriented programming in TypeScript. They provide a blueprint for creating objects with properties and methods. This schematic helps you generate a new class with the basic structure and optional test files.",
  1060. "additionalProperties": false,
  1061. "properties": {
  1062. "name": {
  1063. "type": "string",
  1064. "description": "The name for the new class. This will be used to create the class file (e.g., `my-class.ts`) and, if enabled, the corresponding test file `my-class.spec.ts`.",
  1065. "$default": {
  1066. "$source": "argv",
  1067. "index": 0
  1068. }
  1069. },
  1070. "path": {
  1071. "type": "string",
  1072. "format": "path",
  1073. "$default": {
  1074. "$source": "workingDirectory"
  1075. },
  1076. "description": "The path where the class file should be created, relative to the workspace root. If not specified, the class will be created in the current directory.",
  1077. "visible": false
  1078. },
  1079. "project": {
  1080. "type": "string",
  1081. "description": "The name of the project where the class should be added. If not specified, the CLI will determine the project from the current directory.",
  1082. "$default": {
  1083. "$source": "projectName"
  1084. }
  1085. },
  1086. "skipTests": {
  1087. "type": "boolean",
  1088. "description": "Skip the generation of a unit test file `spec.ts` for the new class.",
  1089. "default": false
  1090. },
  1091. "type": {
  1092. "type": "string",
  1093. "description": "Adds a custom type to the filename, allowing you to create more descriptive class names. For example, if you set the type to `helper`, the filename will be `my-class.helper.ts`."
  1094. }
  1095. }
  1096. },
  1097. "SchematicsAngularComponentSchema": {
  1098. "title": "Angular Component Options Schema",
  1099. "type": "object",
  1100. "description": "Creates a new Angular component. Components are the basic building blocks of Angular applications. Each component consists of a TypeScript class, an HTML template, and an optional CSS stylesheet. Use this schematic to generate a new component in your project.",
  1101. "additionalProperties": false,
  1102. "properties": {
  1103. "path": {
  1104. "type": "string",
  1105. "format": "path",
  1106. "$default": {
  1107. "$source": "workingDirectory"
  1108. },
  1109. "description": "The path where the component files should be created, relative to the current workspace. If not provided, a folder with the same name as the component will be created in the project's `src/app` directory.",
  1110. "visible": false
  1111. },
  1112. "project": {
  1113. "type": "string",
  1114. "description": "The name of the project where the component should be added. If not specified, the CLI will determine the project from the current directory.",
  1115. "$default": {
  1116. "$source": "projectName"
  1117. }
  1118. },
  1119. "name": {
  1120. "type": "string",
  1121. "description": "The name for the new component. This will be used to create the component's class, template, and stylesheet files. For example, if you provide `my-component`, the files will be named `my-component.component.ts`, `my-component.component.html`, and `my-component.component.css`.",
  1122. "$default": {
  1123. "$source": "argv",
  1124. "index": 0
  1125. }
  1126. },
  1127. "displayBlock": {
  1128. "description": "Adds `:host { display: block; }` to the component's stylesheet, ensuring the component renders as a block-level element. This is useful for layout purposes.",
  1129. "type": "boolean",
  1130. "default": false,
  1131. "alias": "b"
  1132. },
  1133. "inlineStyle": {
  1134. "description": "Include the component's styles directly in the `component.ts` file. By default, a separate stylesheet file (e.g., `my-component.component.css`) is created.",
  1135. "type": "boolean",
  1136. "default": false,
  1137. "alias": "s"
  1138. },
  1139. "inlineTemplate": {
  1140. "description": "Include the component's HTML template directly in the `component.ts` file. By default, a separate template file (e.g., `my-component.component.html`) is created.",
  1141. "type": "boolean",
  1142. "default": false,
  1143. "alias": "t"
  1144. },
  1145. "standalone": {
  1146. "description": "Generate a standalone component. Standalone components are self-contained and don't need to be declared in an NgModule. They can be used independently or imported directly into other standalone components.",
  1147. "type": "boolean",
  1148. "default": true
  1149. },
  1150. "viewEncapsulation": {
  1151. "description": "Sets the view encapsulation mode for the component. This determines how the component's styles are scoped and applied.",
  1152. "enum": [
  1153. "Emulated",
  1154. "None",
  1155. "ShadowDom"
  1156. ],
  1157. "type": "string",
  1158. "alias": "v"
  1159. },
  1160. "changeDetection": {
  1161. "description": "Configures the change detection strategy for the component.",
  1162. "enum": [
  1163. "Default",
  1164. "OnPush"
  1165. ],
  1166. "type": "string",
  1167. "default": "Default",
  1168. "alias": "c"
  1169. },
  1170. "prefix": {
  1171. "type": "string",
  1172. "description": "A prefix to be added to the component's selector. For example, if the prefix is `app` and the component name is `my-component`, the selector will be `app-my-component`.",
  1173. "alias": "p",
  1174. "oneOf": [
  1175. {
  1176. "maxLength": 0
  1177. },
  1178. {
  1179. "minLength": 1,
  1180. "format": "html-selector"
  1181. }
  1182. ]
  1183. },
  1184. "style": {
  1185. "description": "Specify the type of stylesheet to be created for the component, or `none` to skip creating a stylesheet.",
  1186. "type": "string",
  1187. "default": "css",
  1188. "enum": [
  1189. "css",
  1190. "scss",
  1191. "sass",
  1192. "less",
  1193. "none"
  1194. ]
  1195. },
  1196. "type": {
  1197. "type": "string",
  1198. "description": "Append a custom type to the component's filename. For example, if you set the type to `container`, the file will be named `my-component.container.ts`."
  1199. },
  1200. "skipTests": {
  1201. "type": "boolean",
  1202. "description": "Skip the generation of unit test files `spec.ts`.",
  1203. "default": false
  1204. },
  1205. "flat": {
  1206. "type": "boolean",
  1207. "description": "Create the component files directly in the project's `src/app` directory instead of creating a new folder for them.",
  1208. "default": false
  1209. },
  1210. "skipImport": {
  1211. "type": "boolean",
  1212. "description": "Do not automatically import the new component into its closest NgModule.",
  1213. "default": false
  1214. },
  1215. "selector": {
  1216. "type": "string",
  1217. "format": "html-selector",
  1218. "description": "The HTML selector to use for this component. If not provided, a selector will be generated based on the component name (e.g., `app-my-component`)."
  1219. },
  1220. "skipSelector": {
  1221. "type": "boolean",
  1222. "default": false,
  1223. "description": "Skip the generation of an HTML selector for the component."
  1224. },
  1225. "module": {
  1226. "type": "string",
  1227. "description": "Specify the NgModule where the component should be declared. If not provided, the CLI will attempt to find the closest NgModule in the component's path.",
  1228. "alias": "m"
  1229. },
  1230. "export": {
  1231. "type": "boolean",
  1232. "default": false,
  1233. "description": "Automatically export the component from the specified NgModule, making it accessible to other modules in the application."
  1234. },
  1235. "exportDefault": {
  1236. "type": "boolean",
  1237. "default": false,
  1238. "description": "Use a default export for the component in its TypeScript file instead of a named export."
  1239. },
  1240. "ngHtml": {
  1241. "type": "boolean",
  1242. "default": false,
  1243. "description": "Generate component template files with an '.ng.html' file extension instead of '.html'."
  1244. }
  1245. }
  1246. },
  1247. "SchematicsAngularDirectiveSchema": {
  1248. "title": "Angular Directive Options Schema",
  1249. "type": "object",
  1250. "description": "Creates a new directive in your project. Directives are used to extend the behavior or appearance of HTML elements and components. They allow you to manipulate the DOM, add custom attributes, and respond to events. This schematic generates the necessary files and boilerplate code for a new directive.",
  1251. "additionalProperties": false,
  1252. "properties": {
  1253. "name": {
  1254. "type": "string",
  1255. "description": "The name for the new directive. This will be used to create the directive's class and spec files (e.g., `my-directive.directive.ts` and `my-directive.directive.spec.ts`).",
  1256. "$default": {
  1257. "$source": "argv",
  1258. "index": 0
  1259. }
  1260. },
  1261. "path": {
  1262. "type": "string",
  1263. "format": "path",
  1264. "$default": {
  1265. "$source": "workingDirectory"
  1266. },
  1267. "description": "The path where the directive files should be created, relative to the workspace root. If not provided, the directive will be created in the current directory.",
  1268. "visible": false
  1269. },
  1270. "project": {
  1271. "type": "string",
  1272. "description": "The name of the project where the directive should be added. If not specified, the CLI will determine the project from the current directory.",
  1273. "$default": {
  1274. "$source": "projectName"
  1275. }
  1276. },
  1277. "prefix": {
  1278. "type": "string",
  1279. "description": "A prefix to be added to the directive's selector. For example, if the prefix is `app` and the directive name is `highlight`, the selector will be `appHighlight`.",
  1280. "alias": "p",
  1281. "oneOf": [
  1282. {
  1283. "maxLength": 0
  1284. },
  1285. {
  1286. "minLength": 1,
  1287. "format": "html-selector"
  1288. }
  1289. ]
  1290. },
  1291. "skipTests": {
  1292. "type": "boolean",
  1293. "description": "Skip the generation of a unit test file `spec.ts` for the new directive.",
  1294. "default": false
  1295. },
  1296. "skipImport": {
  1297. "type": "boolean",
  1298. "description": "Do not automatically import the new directive into its closest NgModule.",
  1299. "default": false
  1300. },
  1301. "selector": {
  1302. "type": "string",
  1303. "format": "html-selector",
  1304. "description": "The HTML selector to use for this directive. If not provided, a selector will be generated based on the directive's name (e.g., `appHighlight`)."
  1305. },
  1306. "standalone": {
  1307. "description": "Generate a standalone directive. Standalone directives are self-contained and don't need to be declared in an NgModule. They can be used independently or imported directly into other standalone components or directives.",
  1308. "type": "boolean",
  1309. "default": true
  1310. },
  1311. "flat": {
  1312. "type": "boolean",
  1313. "description": "Creates the new directive files at the top level of the current project. If set to false, a new folder with the directive's name will be created to contain the files.",
  1314. "default": true
  1315. },
  1316. "module": {
  1317. "type": "string",
  1318. "description": "Specify the NgModule where the directive should be declared. If not provided, the CLI will attempt to find the closest NgModule in the directive's path.",
  1319. "alias": "m"
  1320. },
  1321. "export": {
  1322. "type": "boolean",
  1323. "default": false,
  1324. "description": "Automatically export the directive from the specified NgModule, making it accessible to other modules in the application."
  1325. },
  1326. "type": {
  1327. "type": "string",
  1328. "description": "Append a custom type to the directive's filename. For example, if you set the type to `directive`, the file will be named `example.directive.ts`."
  1329. }
  1330. }
  1331. },
  1332. "SchematicsAngularEnumSchema": {
  1333. "title": "Angular Enum Options Schema",
  1334. "type": "object",
  1335. "description": "Creates a new enum in your project. Enums (enumerations) are a way to define a set of named constants, making your code more readable and maintainable. This schematic generates a new enum with the specified name and type.",
  1336. "additionalProperties": false,
  1337. "properties": {
  1338. "name": {
  1339. "type": "string",
  1340. "description": "The name for the new enum. This will be used to create the enum file (e.g., `my-enum.enum.ts`).",
  1341. "$default": {
  1342. "$source": "argv",
  1343. "index": 0
  1344. }
  1345. },
  1346. "path": {
  1347. "type": "string",
  1348. "format": "path",
  1349. "$default": {
  1350. "$source": "workingDirectory"
  1351. },
  1352. "description": "The path where the enum file should be created, relative to the current workspace. If not specified, the enum will be created in the current directory.",
  1353. "visible": false
  1354. },
  1355. "project": {
  1356. "type": "string",
  1357. "description": "The name of the project where the enum should be created. If not specified, the CLI will determine the project from the current directory.",
  1358. "$default": {
  1359. "$source": "projectName"
  1360. }
  1361. },
  1362. "type": {
  1363. "type": "string",
  1364. "description": "Adds a custom type to the filename, allowing you to create more descriptive enum names. For example, if you set the type to `status`, the filename will be `my-enum.status.ts`."
  1365. }
  1366. }
  1367. },
  1368. "SchematicsAngularGuardSchema": {
  1369. "title": "Angular Guard Options Schema",
  1370. "type": "object",
  1371. "description": "Creates a new route guard in your project. Route guards are used to control access to parts of your application by checking certain conditions before a route is activated. This schematic generates a new guard with the specified name, type, and options.",
  1372. "additionalProperties": false,
  1373. "properties": {
  1374. "name": {
  1375. "type": "string",
  1376. "description": "The name for the new route guard. This will be used to create the guard's class and spec files (e.g., `my-guard.guard.ts` and `my-guard.guard.spec.ts`).",
  1377. "$default": {
  1378. "$source": "argv",
  1379. "index": 0
  1380. }
  1381. },
  1382. "skipTests": {
  1383. "type": "boolean",
  1384. "description": "Skip the generation of a unit test file `spec.ts` for the new guard.",
  1385. "default": false
  1386. },
  1387. "flat": {
  1388. "type": "boolean",
  1389. "description": "Creates the new guard files at the top level of the current project. If set to false, a new folder with the guard's name will be created to contain the files.",
  1390. "default": true
  1391. },
  1392. "path": {
  1393. "type": "string",
  1394. "format": "path",
  1395. "$default": {
  1396. "$source": "workingDirectory"
  1397. },
  1398. "description": "The path where the guard files should be created, relative to the current workspace. If not provided, the guard will be created in the current directory.",
  1399. "visible": false
  1400. },
  1401. "project": {
  1402. "type": "string",
  1403. "description": "The name of the project where the guard should be created. If not specified, the CLI will determine the project from the current directory.",
  1404. "$default": {
  1405. "$source": "projectName"
  1406. }
  1407. },
  1408. "functional": {
  1409. "type": "boolean",
  1410. "description": "Generate the guard as a function instead of a class. Functional guards can be simpler for basic scenarios.",
  1411. "default": true
  1412. },
  1413. "implements": {
  1414. "alias": "guardType",
  1415. "type": "array",
  1416. "description": "Specifies the type(s) of guard to create. You can choose one or more of the following: `CanActivate` (controls access to a route), `CanActivateChild` (controls access to child routes), `CanDeactivate` (asks for confirmation before leaving a route), `CanMatch` (determines if a route can be matched).",
  1417. "uniqueItems": true,
  1418. "minItems": 1,
  1419. "items": {
  1420. "enum": [
  1421. "CanActivate",
  1422. "CanActivateChild",
  1423. "CanDeactivate",
  1424. "CanMatch"
  1425. ],
  1426. "type": "string"
  1427. },
  1428. "default": [
  1429. "CanActivate"
  1430. ]
  1431. },
  1432. "typeSeparator": {
  1433. "type": "string",
  1434. "default": "-",
  1435. "enum": [
  1436. "-",
  1437. "."
  1438. ],
  1439. "description": "The separator character to use before the type within the generated file's name. For example, if you set the option to `.`, the file will be named `example.guard.ts`."
  1440. }
  1441. }
  1442. },
  1443. "SchematicsAngularInterceptorSchema": {
  1444. "title": "Angular Interceptor Options Schema",
  1445. "type": "object",
  1446. "additionalProperties": false,
  1447. "description": "Creates a new interceptor in your project. Interceptors are used to intercept and modify HTTP requests and responses before they reach their destination. This allows you to perform tasks like adding authentication headers, handling errors, or logging requests. This schematic generates the necessary files and boilerplate code for a new interceptor.",
  1448. "properties": {
  1449. "name": {
  1450. "type": "string",
  1451. "description": "The name for the new interceptor. This will be used to create the interceptor's class and spec files (e.g., `my-interceptor.interceptor.ts` and `my-interceptor.interceptor.spec.ts`).",
  1452. "$default": {
  1453. "$source": "argv",
  1454. "index": 0
  1455. }
  1456. },
  1457. "path": {
  1458. "type": "string",
  1459. "format": "path",
  1460. "$default": {
  1461. "$source": "workingDirectory"
  1462. },
  1463. "description": "The path where the interceptor files should be created, relative to the workspace root. If not provided, the interceptor will be created in the current directory.",
  1464. "visible": false
  1465. },
  1466. "project": {
  1467. "type": "string",
  1468. "description": "The name of the project where the interceptor should be created. If not specified, the CLI will determine the project from the current directory.",
  1469. "$default": {
  1470. "$source": "projectName"
  1471. }
  1472. },
  1473. "flat": {
  1474. "type": "boolean",
  1475. "default": true,
  1476. "description": "Creates the new interceptor files at the top level of the current project. If set to false, a new folder with the interceptor's name will be created to contain the files."
  1477. },
  1478. "skipTests": {
  1479. "type": "boolean",
  1480. "description": "Skip the generation of a unit test file `spec.ts` for the new interceptor.",
  1481. "default": false
  1482. },
  1483. "functional": {
  1484. "type": "boolean",
  1485. "description": "Creates the interceptor as a function `HttpInterceptorFn` instead of a class. Functional interceptors can be simpler for basic scenarios.",
  1486. "default": true
  1487. },
  1488. "typeSeparator": {
  1489. "type": "string",
  1490. "default": "-",
  1491. "enum": [
  1492. "-",
  1493. "."
  1494. ],
  1495. "description": "The separator character to use before the type within the generated file's name. For example, if you set the option to `.`, the file will be named `example.interceptor.ts`."
  1496. }
  1497. }
  1498. },
  1499. "SchematicsAngularInterfaceSchema": {
  1500. "title": "Angular Interface Options Schema",
  1501. "type": "object",
  1502. "additionalProperties": false,
  1503. "description": "Creates a new interface in your project. Interfaces define the structure of objects in TypeScript, ensuring type safety and code clarity. This schematic generates a new interface with the specified name and type.",
  1504. "properties": {
  1505. "name": {
  1506. "type": "string",
  1507. "description": "The name for the new interface. This will be used to create the interface file (e.g., `my-interface.interface.ts`).",
  1508. "$default": {
  1509. "$source": "argv",
  1510. "index": 0
  1511. }
  1512. },
  1513. "path": {
  1514. "type": "string",
  1515. "format": "path",
  1516. "$default": {
  1517. "$source": "workingDirectory"
  1518. },
  1519. "description": "The path where the interface file should be created, relative to the workspace root. If not provided, the interface will be created in the current directory.",
  1520. "visible": false
  1521. },
  1522. "project": {
  1523. "type": "string",
  1524. "description": "The name of the project where the interface should be created. If not specified, the CLI will determine the project from the current directory.",
  1525. "$default": {
  1526. "$source": "projectName"
  1527. }
  1528. },
  1529. "prefix": {
  1530. "type": "string",
  1531. "description": "A prefix to be added to the interface name. This is typically not used for interfaces, as they don't have selectors like components or directives."
  1532. },
  1533. "type": {
  1534. "type": "string",
  1535. "description": "Adds a custom type to the filename, allowing you to create more descriptive interface names. For example, if you set the type to `data`, the filename will be `my-interface.data.ts`.",
  1536. "$default": {
  1537. "$source": "argv",
  1538. "index": 1
  1539. }
  1540. }
  1541. }
  1542. },
  1543. "SchematicsAngularLibrarySchema": {
  1544. "title": "Library Options Schema",
  1545. "type": "object",
  1546. "description": "Creates a new library project in your Angular workspace. Libraries are reusable collections of components, services, and other Angular artifacts that can be shared across multiple applications. This schematic simplifies the process of generating a new library with the necessary files and configurations.",
  1547. "additionalProperties": false,
  1548. "properties": {
  1549. "name": {
  1550. "type": "string",
  1551. "description": "The name for the new library. This name will be used for the project directory and various identifiers within the library's code.",
  1552. "pattern": "^(?:@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*/)?[a-zA-Z0-9-~][a-zA-Z0-9-._~]*$",
  1553. "$default": {
  1554. "$source": "argv",
  1555. "index": 0
  1556. }
  1557. },
  1558. "entryFile": {
  1559. "type": "string",
  1560. "format": "path",
  1561. "description": "The path to the library's public API file, relative to the workspace root. This file defines what parts of the library are accessible to applications that import it.",
  1562. "default": "public-api"
  1563. },
  1564. "prefix": {
  1565. "type": "string",
  1566. "format": "html-selector",
  1567. "description": "A prefix to be added to the selectors of components generated within this library. For example, if the prefix is `my-lib` and you generate a component named `my-component`, the selector will be `my-lib-my-component`.",
  1568. "default": "lib",
  1569. "alias": "p"
  1570. },
  1571. "skipPackageJson": {
  1572. "type": "boolean",
  1573. "default": false,
  1574. "description": "Do not automatically add dependencies to the `package.json` file."
  1575. },
  1576. "skipInstall": {
  1577. "description": "Skip the automatic installation of packages. You will need to manually install the dependencies later.",
  1578. "type": "boolean",
  1579. "default": false
  1580. },
  1581. "skipTsConfig": {
  1582. "type": "boolean",
  1583. "default": false,
  1584. "description": "Do not update the workspace `tsconfig.json` file to add a path mapping for the new library. The path mapping is needed to use the library in an application, but can be disabled here to simplify development."
  1585. },
  1586. "projectRoot": {
  1587. "type": "string",
  1588. "description": "The root directory for the new library, relative to the workspace root. If not specified, the library will be created in a subfolder within the `projects` directory, using the library's name."
  1589. },
  1590. "standalone": {
  1591. "description": "Create a library that utilizes the standalone API, eliminating the need for NgModules. This can simplify the structure of your library and its usage in applications.",
  1592. "type": "boolean",
  1593. "default": true
  1594. }
  1595. }
  1596. },
  1597. "SchematicsAngularPipeSchema": {
  1598. "title": "Angular Pipe Options Schema",
  1599. "type": "object",
  1600. "additionalProperties": false,
  1601. "description": "Creates a new pipe in your project. Pipes are used to transform data for display in templates. They take input values and apply a specific transformation, such as formatting dates, currency, or filtering arrays. This schematic generates the necessary files and boilerplate code for a new pipe.",
  1602. "properties": {
  1603. "name": {
  1604. "type": "string",
  1605. "description": "The name for the new pipe. This will be used to create the pipe's class and spec files (e.g., `my-pipe.pipe.ts` and `my-pipe.pipe.spec.ts`).",
  1606. "$default": {
  1607. "$source": "argv",
  1608. "index": 0
  1609. }
  1610. },
  1611. "path": {
  1612. "type": "string",
  1613. "format": "path",
  1614. "$default": {
  1615. "$source": "workingDirectory"
  1616. },
  1617. "description": "The path where the pipe files should be created, relative to the workspace root. If not provided, the pipe will be created in the current directory.",
  1618. "visible": false
  1619. },
  1620. "project": {
  1621. "type": "string",
  1622. "description": "The name of the project where the pipe should be created. If not specified, the CLI will determine the project from the current directory.",
  1623. "$default": {
  1624. "$source": "projectName"
  1625. }
  1626. },
  1627. "flat": {
  1628. "type": "boolean",
  1629. "default": true,
  1630. "description": "Creates the new pipe files at the top level of the current project. If set to false, a new folder with the pipe's name will be created to contain the files."
  1631. },
  1632. "skipTests": {
  1633. "type": "boolean",
  1634. "description": "Prevent the generation of a unit test file `spec.ts` for the new pipe.",
  1635. "default": false
  1636. },
  1637. "skipImport": {
  1638. "type": "boolean",
  1639. "default": false,
  1640. "description": "Do not automatically import the new pipe into its closest NgModule."
  1641. },
  1642. "standalone": {
  1643. "description": "Generate a standalone pipe. Standalone pipes are self-contained and don't need to be declared in an NgModule. They can be used independently or imported directly into other standalone components, directives, or pipes.",
  1644. "type": "boolean",
  1645. "default": true
  1646. },
  1647. "module": {
  1648. "type": "string",
  1649. "description": "Specify the NgModule where the pipe should be declared. If not provided, the CLI will attempt to find the closest NgModule in the pipe's path.",
  1650. "alias": "m"
  1651. },
  1652. "export": {
  1653. "type": "boolean",
  1654. "default": false,
  1655. "description": "Automatically export the pipe from the specified NgModule, making it accessible to other modules in the application."
  1656. },
  1657. "typeSeparator": {
  1658. "type": "string",
  1659. "default": "-",
  1660. "enum": [
  1661. "-",
  1662. "."
  1663. ],
  1664. "description": "The separator character to use before the type within the generated file's name. For example, if you set the option to `.`, the file will be named `example.pipe.ts`."
  1665. }
  1666. }
  1667. },
  1668. "SchematicsAngularNgNewSchema": {
  1669. "title": "Angular Ng New Options Schema",
  1670. "type": "object",
  1671. "description": "Creates a new Angular workspace and an initial project. This schematic sets up the foundation for your Angular development, generating the workspace configuration files and an optional starter application. You can customize various aspects of the workspace and the initial project, such as routing, styling, and testing.",
  1672. "additionalProperties": false,
  1673. "properties": {
  1674. "directory": {
  1675. "type": "string",
  1676. "description": "The directory where the new workspace and project should be created. If not specified, the workspace will be created in the current directory."
  1677. },
  1678. "name": {
  1679. "description": "The name for the new workspace and the initial project. This name will be used for the root directory and various identifiers throughout the project.",
  1680. "type": "string",
  1681. "$default": {
  1682. "$source": "argv",
  1683. "index": 0
  1684. }
  1685. },
  1686. "skipInstall": {
  1687. "description": "Skip the automatic installation of packages. You will need to manually install the dependencies later.",
  1688. "type": "boolean",
  1689. "default": false
  1690. },
  1691. "skipGit": {
  1692. "description": "Do not initialize a Git repository in the new workspace. By default, a Git repository is initialized to help you track changes to your project.",
  1693. "type": "boolean",
  1694. "default": false,
  1695. "alias": "g"
  1696. },
  1697. "commit": {
  1698. "description": "Configure the initial Git commit for the new repository.",
  1699. "oneOf": [
  1700. {
  1701. "type": "boolean"
  1702. },
  1703. {
  1704. "type": "object",
  1705. "properties": {
  1706. "name": {
  1707. "type": "string"
  1708. },
  1709. "email": {
  1710. "type": "string",
  1711. "format": "email"
  1712. },
  1713. "message": {
  1714. "type": "string"
  1715. }
  1716. }
  1717. }
  1718. ],
  1719. "default": true
  1720. },
  1721. "newProjectRoot": {
  1722. "description": "The path where new projects will be created within the workspace, relative to the workspace root. By default, new projects are created in the `projects` directory.",
  1723. "type": "string",
  1724. "default": "projects"
  1725. },
  1726. "inlineStyle": {
  1727. "description": "Include the styles for the initial application's root component directly within the `app.component.ts` file. By default, a separate stylesheet file (e.g., `app.component.css`) is created.",
  1728. "type": "boolean",
  1729. "alias": "s"
  1730. },
  1731. "inlineTemplate": {
  1732. "description": "Include the HTML template for the initial application's root component directly within the `app.component.ts` file. By default, a separate template file (e.g., `app.component.html`) is created.",
  1733. "type": "boolean",
  1734. "alias": "t"
  1735. },
  1736. "viewEncapsulation": {
  1737. "description": "Sets the view encapsulation mode for components in the initial project. This determines how component styles are scoped and applied. Options include: `Emulated` (default, styles are scoped to the component), `None` (styles are global), and `ShadowDom` (styles are encapsulated using Shadow DOM).",
  1738. "enum": [
  1739. "Emulated",
  1740. "None",
  1741. "ShadowDom"
  1742. ],
  1743. "type": "string"
  1744. },
  1745. "version": {
  1746. "type": "string",
  1747. "description": "The version of the Angular CLI to use.",
  1748. "visible": false,
  1749. "$default": {
  1750. "$source": "ng-cli-version"
  1751. }
  1752. },
  1753. "routing": {
  1754. "type": "boolean",
  1755. "description": "Enable routing in the initial application project. This sets up the necessary files and modules for managing navigation between different views in your application."
  1756. },
  1757. "prefix": {
  1758. "type": "string",
  1759. "format": "html-selector",
  1760. "description": "The prefix to apply to generated selectors for the initial project. For example, if the prefix is `my-app` and you generate a component named `my-component`, the selector will be `my-app-my-component`.",
  1761. "minLength": 1,
  1762. "default": "app",
  1763. "alias": "p"
  1764. },
  1765. "style": {
  1766. "description": "The type of stylesheet files to be created for components in the initial project.",
  1767. "type": "string",
  1768. "enum": [
  1769. "css",
  1770. "scss",
  1771. "sass",
  1772. "less"
  1773. ]
  1774. },
  1775. "skipTests": {
  1776. "description": "Skip the generation of unit test files `spec.ts`.",
  1777. "type": "boolean",
  1778. "default": false,
  1779. "alias": "S"
  1780. },
  1781. "createApplication": {
  1782. "description": "Create a new initial application project in the new workspace. When false, creates an empty workspace with no initial application. You can then use the `ng generate application` command to create applications in the `projects` directory.",
  1783. "type": "boolean",
  1784. "default": true
  1785. },
  1786. "minimal": {
  1787. "description": "Generate a minimal Angular workspace without any testing frameworks. This is intended for learning purposes and simple experimentation, not for production applications.",
  1788. "type": "boolean",
  1789. "default": false
  1790. },
  1791. "strict": {
  1792. "description": "Enable stricter type checking and stricter bundle budgets settings. This setting helps improve maintainability and catch bugs ahead of time. For more information, see https://angular.dev/tools/cli/template-typecheck#strict-mode",
  1793. "type": "boolean",
  1794. "default": true
  1795. },
  1796. "packageManager": {
  1797. "description": "The package manager used to install dependencies.",
  1798. "type": "string",
  1799. "enum": [
  1800. "npm",
  1801. "yarn",
  1802. "pnpm",
  1803. "cnpm",
  1804. "bun"
  1805. ]
  1806. },
  1807. "standalone": {
  1808. "description": "Creates an application based upon the standalone API, without NgModules.",
  1809. "type": "boolean",
  1810. "default": true
  1811. },
  1812. "ssr": {
  1813. "description": "Configure the initial application for Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering).",
  1814. "type": "boolean"
  1815. },
  1816. "zoneless": {
  1817. "description": "Create an initial application that does not utilize `zone.js`.",
  1818. "type": "boolean",
  1819. "default": false
  1820. }
  1821. }
  1822. },
  1823. "SchematicsAngularResolverSchema": {
  1824. "title": "Angular Resolver Options Schema",
  1825. "type": "object",
  1826. "additionalProperties": false,
  1827. "description": "Creates a new resolver in your project. Resolvers are used to pre-fetch data before a route is activated, ensuring that the necessary data is available before the component is displayed. This can improve the user experience by preventing delays and loading states. This schematic generates a new resolver with the specified name and options.",
  1828. "properties": {
  1829. "name": {
  1830. "type": "string",
  1831. "description": "The name for the new resolver. This will be used to create the resolver's class and spec files (e.g., `my-resolver.resolver.ts` and `my-resolver.resolver.spec.ts`).",
  1832. "$default": {
  1833. "$source": "argv",
  1834. "index": 0
  1835. }
  1836. },
  1837. "skipTests": {
  1838. "type": "boolean",
  1839. "description": "Skip the generation of a unit test file `spec.ts` for the new resolver.",
  1840. "default": false
  1841. },
  1842. "flat": {
  1843. "type": "boolean",
  1844. "description": "Creates the new resolver files at the top level of the current project. If set to false, a new folder with the resolver's name will be created to contain the files.",
  1845. "default": true
  1846. },
  1847. "functional": {
  1848. "type": "boolean",
  1849. "description": "Creates the resolver as a function `ResolveFn` instead of a class. Functional resolvers can be simpler for basic scenarios.",
  1850. "default": true
  1851. },
  1852. "path": {
  1853. "type": "string",
  1854. "format": "path",
  1855. "$default": {
  1856. "$source": "workingDirectory"
  1857. },
  1858. "description": "The path where the resolver files should be created, relative to the current workspace. If not provided, the resolver will be created in the current directory.",
  1859. "visible": false
  1860. },
  1861. "project": {
  1862. "type": "string",
  1863. "description": "The name of the project where the resolver should be created. If not specified, the CLI will determine the project from the current directory.",
  1864. "$default": {
  1865. "$source": "projectName"
  1866. }
  1867. },
  1868. "typeSeparator": {
  1869. "type": "string",
  1870. "default": "-",
  1871. "enum": [
  1872. "-",
  1873. "."
  1874. ],
  1875. "description": "The separator character to use before the type within the generated file's name. For example, if you set the option to `.`, the file will be named `example.resolver.ts`."
  1876. }
  1877. }
  1878. },
  1879. "SchematicsAngularServiceSchema": {
  1880. "title": "Angular Service Options Schema",
  1881. "type": "object",
  1882. "additionalProperties": false,
  1883. "description": "Creates a new service in your project. Services are used to encapsulate reusable logic, such as data access, API calls, or utility functions. This schematic simplifies the process of generating a new service with the necessary files and boilerplate code.",
  1884. "properties": {
  1885. "name": {
  1886. "type": "string",
  1887. "description": "The name for the new service. This will be used to create the service's class and spec files (e.g., `my-service.service.ts` and `my-service.service.spec.ts`).",
  1888. "$default": {
  1889. "$source": "argv",
  1890. "index": 0
  1891. }
  1892. },
  1893. "path": {
  1894. "type": "string",
  1895. "$default": {
  1896. "$source": "workingDirectory"
  1897. },
  1898. "description": "The path where the service files should be created, relative to the workspace root. If not provided, the service will be created in the project's `src/app` directory.",
  1899. "visible": false
  1900. },
  1901. "project": {
  1902. "type": "string",
  1903. "description": "The name of the project where the service should be added. If not specified, the CLI will determine the project from the current directory.",
  1904. "$default": {
  1905. "$source": "projectName"
  1906. }
  1907. },
  1908. "flat": {
  1909. "type": "boolean",
  1910. "default": true,
  1911. "description": "Creates files at the top level of the project or the given path. If set to false, a new folder with the service's name will be created to contain the files."
  1912. },
  1913. "skipTests": {
  1914. "type": "boolean",
  1915. "description": "Skip the generation of a unit test file `spec.ts` for the service.",
  1916. "default": false
  1917. },
  1918. "type": {
  1919. "type": "string",
  1920. "description": "Append a custom type to the service's filename. For example, if you set the type to `service`, the file will be named `my-service.service.ts`."
  1921. }
  1922. }
  1923. },
  1924. "SchematicsAngularWebWorkerSchema": {
  1925. "title": "Angular Web Worker Options Schema",
  1926. "type": "object",
  1927. "additionalProperties": false,
  1928. "description": "Creates a new web worker in your project. Web workers allow you to run JavaScript code in the background, improving the performance and responsiveness of your application by offloading computationally intensive tasks. This schematic generates the necessary files for a new web worker and provides an optional code snippet to demonstrate its usage.",
  1929. "properties": {
  1930. "path": {
  1931. "type": "string",
  1932. "format": "path",
  1933. "$default": {
  1934. "$source": "workingDirectory"
  1935. },
  1936. "description": "The path where the web worker file should be created, relative to the current workspace. If not specified, the worker will be created in the current directory.",
  1937. "visible": false
  1938. },
  1939. "project": {
  1940. "type": "string",
  1941. "description": "The name of the project where the web worker should be created. If not specified, the CLI will determine the project from the current directory.",
  1942. "$default": {
  1943. "$source": "projectName"
  1944. }
  1945. },
  1946. "name": {
  1947. "type": "string",
  1948. "description": "The name for the new web worker. This will be used to create the worker file (e.g., `my-worker.worker.ts`).",
  1949. "$default": {
  1950. "$source": "argv",
  1951. "index": 0
  1952. }
  1953. },
  1954. "snippet": {
  1955. "type": "boolean",
  1956. "default": true,
  1957. "description": "Generate a code snippet that demonstrates how to create and use the new web worker."
  1958. }
  1959. }
  1960. },
  1961. "AngularBuildBuildersApplicationSchema": {
  1962. "title": "Application schema for Build Facade.",
  1963. "description": "Application builder target options",
  1964. "type": "object",
  1965. "properties": {
  1966. "assets": {
  1967. "type": "array",
  1968. "description": "List of static application assets.",
  1969. "default": [],
  1970. "items": {
  1971. "$ref": "#/definitions/AngularBuildBuildersApplicationSchema/definitions/assetPattern"
  1972. }
  1973. },
  1974. "browser": {
  1975. "type": "string",
  1976. "description": "The full path for the browser entry point to the application, relative to the current workspace."
  1977. },
  1978. "server": {
  1979. "description": "The full path for the server entry point to the application, relative to the current workspace.",
  1980. "oneOf": [
  1981. {
  1982. "type": "string",
  1983. "description": "The full path for the server entry point to the application, relative to the current workspace."
  1984. },
  1985. {
  1986. "const": false,
  1987. "type": "boolean",
  1988. "description": "Indicates that a server entry point is not provided."
  1989. }
  1990. ]
  1991. },
  1992. "polyfills": {
  1993. "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.",
  1994. "type": "array",
  1995. "items": {
  1996. "type": "string",
  1997. "uniqueItems": true
  1998. },
  1999. "default": []
  2000. },
  2001. "tsConfig": {
  2002. "type": "string",
  2003. "description": "The full path for the TypeScript configuration file, relative to the current workspace."
  2004. },
  2005. "deployUrl": {
  2006. "type": "string",
  2007. "description": "Customize the base path for the URLs of resources in 'index.html' and component stylesheets. This option is only necessary for specific deployment scenarios, such as with Angular Elements or when utilizing different CDN locations."
  2008. },
  2009. "security": {
  2010. "description": "Security features to protect against XSS and other common attacks",
  2011. "type": "object",
  2012. "additionalProperties": false,
  2013. "properties": {
  2014. "autoCsp": {
  2015. "description": "Enables automatic generation of a hash-based Strict Content Security Policy (https://web.dev/articles/strict-csp#choose-hash) based on scripts in index.html. Will default to true once we are out of experimental/preview phases.",
  2016. "default": false,
  2017. "oneOf": [
  2018. {
  2019. "type": "object",
  2020. "properties": {
  2021. "unsafeEval": {
  2022. "type": "boolean",
  2023. "description": "Include the `unsafe-eval` directive (https://web.dev/articles/strict-csp#remove-eval) in the auto-CSP. Please only enable this if you are absolutely sure that you need to, as allowing calls to eval will weaken the XSS defenses provided by the auto-CSP.",
  2024. "default": false
  2025. }
  2026. },
  2027. "additionalProperties": false
  2028. },
  2029. {
  2030. "type": "boolean"
  2031. }
  2032. ]
  2033. }
  2034. }
  2035. },
  2036. "scripts": {
  2037. "description": "Global scripts to be included in the build.",
  2038. "type": "array",
  2039. "default": [],
  2040. "items": {
  2041. "oneOf": [
  2042. {
  2043. "type": "object",
  2044. "properties": {
  2045. "input": {
  2046. "type": "string",
  2047. "description": "The file to include.",
  2048. "pattern": "\\.[cm]?jsx?$"
  2049. },
  2050. "bundleName": {
  2051. "type": "string",
  2052. "pattern": "^[\\w\\-.]*$",
  2053. "description": "The bundle name for this extra entry point."
  2054. },
  2055. "inject": {
  2056. "type": "boolean",
  2057. "description": "If the bundle will be referenced in the HTML file.",
  2058. "default": true
  2059. }
  2060. },
  2061. "additionalProperties": false
  2062. },
  2063. {
  2064. "type": "string",
  2065. "description": "The JavaScript/TypeScript file or package containing the file to include."
  2066. }
  2067. ]
  2068. }
  2069. },
  2070. "styles": {
  2071. "description": "Global styles to be included in the build.",
  2072. "type": "array",
  2073. "default": [],
  2074. "items": {
  2075. "oneOf": [
  2076. {
  2077. "type": "object",
  2078. "properties": {
  2079. "input": {
  2080. "type": "string",
  2081. "description": "The file to include.",
  2082. "pattern": "\\.(?:css|scss|sass|less)$"
  2083. },
  2084. "bundleName": {
  2085. "type": "string",
  2086. "pattern": "^[\\w\\-.]*$",
  2087. "description": "The bundle name for this extra entry point."
  2088. },
  2089. "inject": {
  2090. "type": "boolean",
  2091. "description": "If the bundle will be referenced in the HTML file.",
  2092. "default": true
  2093. }
  2094. },
  2095. "additionalProperties": false
  2096. },
  2097. {
  2098. "type": "string",
  2099. "description": "The file to include.",
  2100. "pattern": "\\.(?:css|scss|sass|less)$"
  2101. }
  2102. ]
  2103. }
  2104. },
  2105. "inlineStyleLanguage": {
  2106. "description": "The stylesheet language to use for the application's inline component styles.",
  2107. "type": "string",
  2108. "default": "css",
  2109. "enum": [
  2110. "css",
  2111. "less",
  2112. "sass",
  2113. "scss"
  2114. ]
  2115. },
  2116. "stylePreprocessorOptions": {
  2117. "description": "Options to pass to style preprocessors.",
  2118. "type": "object",
  2119. "properties": {
  2120. "includePaths": {
  2121. "description": "Paths to include. Paths will be resolved to workspace root.",
  2122. "type": "array",
  2123. "items": {
  2124. "type": "string"
  2125. },
  2126. "default": []
  2127. },
  2128. "sass": {
  2129. "description": "Options to pass to the sass preprocessor.",
  2130. "type": "object",
  2131. "properties": {
  2132. "fatalDeprecations": {
  2133. "description": "A set of deprecations to treat as fatal. If a deprecation warning of any provided type is encountered during compilation, the compiler will error instead. If a Version is provided, then all deprecations that were active in that compiler version will be treated as fatal.",
  2134. "type": "array",
  2135. "items": {
  2136. "type": "string"
  2137. }
  2138. },
  2139. "silenceDeprecations": {
  2140. "description": " A set of active deprecations to ignore. If a deprecation warning of any provided type is encountered during compilation, the compiler will ignore it instead.",
  2141. "type": "array",
  2142. "items": {
  2143. "type": "string"
  2144. }
  2145. },
  2146. "futureDeprecations": {
  2147. "description": "A set of future deprecations to opt into early. Future deprecations passed here will be treated as active by the compiler, emitting warnings as necessary.",
  2148. "type": "array",
  2149. "items": {
  2150. "type": "string"
  2151. }
  2152. }
  2153. },
  2154. "additionalProperties": false
  2155. }
  2156. },
  2157. "additionalProperties": false
  2158. },
  2159. "externalDependencies": {
  2160. "description": "Exclude the listed external dependencies from being bundled into the bundle. Instead, the created bundle relies on these dependencies to be available during runtime. Note: `@foo/bar` marks all paths within the `@foo/bar` package as external, including sub-paths like `@foo/bar/baz`.",
  2161. "type": "array",
  2162. "items": {
  2163. "type": "string"
  2164. },
  2165. "default": []
  2166. },
  2167. "clearScreen": {
  2168. "type": "boolean",
  2169. "default": false,
  2170. "description": "Automatically clear the terminal screen during rebuilds."
  2171. },
  2172. "optimization": {
  2173. "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, inlining of critical CSS and fonts inlining. For more information, see https://angular.dev/reference/configs/workspace-config#optimization-configuration.",
  2174. "default": true,
  2175. "oneOf": [
  2176. {
  2177. "type": "object",
  2178. "properties": {
  2179. "scripts": {
  2180. "type": "boolean",
  2181. "description": "Enables optimization of the scripts output.",
  2182. "default": true
  2183. },
  2184. "styles": {
  2185. "description": "Enables optimization of the styles output.",
  2186. "default": true,
  2187. "oneOf": [
  2188. {
  2189. "type": "object",
  2190. "properties": {
  2191. "minify": {
  2192. "type": "boolean",
  2193. "description": "Minify CSS definitions by removing extraneous whitespace and comments, merging identifiers and minimizing values.",
  2194. "default": true
  2195. },
  2196. "inlineCritical": {
  2197. "type": "boolean",
  2198. "description": "Extract and inline critical CSS definitions to improve first paint time.",
  2199. "default": true
  2200. },
  2201. "removeSpecialComments": {
  2202. "type": "boolean",
  2203. "description": "Remove comments in global CSS that contains '@license' or '@preserve' or that starts with '//!' or '/*!'.",
  2204. "default": true
  2205. }
  2206. },
  2207. "additionalProperties": false
  2208. },
  2209. {
  2210. "type": "boolean"
  2211. }
  2212. ]
  2213. },
  2214. "fonts": {
  2215. "description": "Enables optimization for fonts. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.",
  2216. "default": true,
  2217. "oneOf": [
  2218. {
  2219. "type": "object",
  2220. "properties": {
  2221. "inline": {
  2222. "type": "boolean",
  2223. "description": "Reduce render blocking requests by inlining external Google Fonts and Adobe Fonts CSS definitions in the application's HTML index file. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.",
  2224. "default": true
  2225. }
  2226. },
  2227. "additionalProperties": false
  2228. },
  2229. {
  2230. "type": "boolean"
  2231. }
  2232. ]
  2233. }
  2234. },
  2235. "additionalProperties": false
  2236. },
  2237. {
  2238. "type": "boolean"
  2239. }
  2240. ]
  2241. },
  2242. "loader": {
  2243. "description": "Defines the type of loader to use with a specified file extension when used with a JavaScript `import`. `text` inlines the content as a string; `binary` inlines the content as a Uint8Array; `file` emits the file and provides the runtime location of the file; `empty` considers the content to be empty and not include it in bundles.",
  2244. "type": "object",
  2245. "patternProperties": {
  2246. "^\\.\\S+$": {
  2247. "enum": [
  2248. "text",
  2249. "binary",
  2250. "file",
  2251. "empty"
  2252. ]
  2253. }
  2254. }
  2255. },
  2256. "define": {
  2257. "description": "Defines global identifiers that will be replaced with a specified constant value when found in any JavaScript or TypeScript code including libraries. The value will be used directly. String values must be put in quotes. Identifiers within Angular metadata such as Component Decorators will not be replaced.",
  2258. "type": "object",
  2259. "additionalProperties": {
  2260. "type": "string"
  2261. }
  2262. },
  2263. "conditions": {
  2264. "description": "Custom package resolution conditions used to resolve conditional exports/imports. Defaults to ['module', 'development'/'production']. The following special conditions are always present if the requirements are satisfied: 'default', 'import', 'require', 'browser', 'node'.",
  2265. "type": "array",
  2266. "items": {
  2267. "type": "string"
  2268. }
  2269. },
  2270. "fileReplacements": {
  2271. "description": "Replace compilation source files with other compilation source files in the build.",
  2272. "type": "array",
  2273. "items": {
  2274. "$ref": "#/definitions/AngularBuildBuildersApplicationSchema/definitions/fileReplacement"
  2275. },
  2276. "default": []
  2277. },
  2278. "outputPath": {
  2279. "description": "Specify the output path relative to workspace root.",
  2280. "oneOf": [
  2281. {
  2282. "type": "object",
  2283. "properties": {
  2284. "base": {
  2285. "type": "string",
  2286. "description": "Specify the output path relative to workspace root."
  2287. },
  2288. "browser": {
  2289. "type": "string",
  2290. "pattern": "^[-\\w\\.]*$",
  2291. "default": "browser",
  2292. "description": "The output directory name of your browser build within the output path base. Defaults to 'browser'."
  2293. },
  2294. "server": {
  2295. "type": "string",
  2296. "pattern": "^[-\\w\\.]*$",
  2297. "default": "server",
  2298. "description": "The output directory name of your server build within the output path base. Defaults to 'server'."
  2299. },
  2300. "media": {
  2301. "type": "string",
  2302. "pattern": "^[-\\w\\.]+$",
  2303. "default": "media",
  2304. "description": "The output directory name of your media files within the output browser directory. Defaults to 'media'."
  2305. }
  2306. },
  2307. "additionalProperties": false
  2308. },
  2309. {
  2310. "type": "string"
  2311. }
  2312. ]
  2313. },
  2314. "aot": {
  2315. "type": "boolean",
  2316. "description": "Build using Ahead of Time compilation.",
  2317. "default": true
  2318. },
  2319. "sourceMap": {
  2320. "description": "Output source maps for scripts and styles. For more information, see https://angular.dev/reference/configs/workspace-config#source-map-configuration.",
  2321. "default": false,
  2322. "oneOf": [
  2323. {
  2324. "type": "object",
  2325. "properties": {
  2326. "scripts": {
  2327. "type": "boolean",
  2328. "description": "Output source maps for all scripts.",
  2329. "default": true
  2330. },
  2331. "styles": {
  2332. "type": "boolean",
  2333. "description": "Output source maps for all styles.",
  2334. "default": true
  2335. },
  2336. "hidden": {
  2337. "type": "boolean",
  2338. "description": "Output source maps used for error reporting tools.",
  2339. "default": false
  2340. },
  2341. "vendor": {
  2342. "type": "boolean",
  2343. "description": "Resolve vendor packages source maps.",
  2344. "default": false
  2345. },
  2346. "sourcesContent": {
  2347. "type": "boolean",
  2348. "description": "Output original source content for files within the source map.",
  2349. "default": true
  2350. }
  2351. },
  2352. "additionalProperties": false
  2353. },
  2354. {
  2355. "type": "boolean"
  2356. }
  2357. ]
  2358. },
  2359. "baseHref": {
  2360. "type": "string",
  2361. "description": "Base url for the application being built."
  2362. },
  2363. "verbose": {
  2364. "type": "boolean",
  2365. "description": "Adds more details to output logging.",
  2366. "default": false
  2367. },
  2368. "progress": {
  2369. "type": "boolean",
  2370. "description": "Log progress to the console while building.",
  2371. "default": true
  2372. },
  2373. "i18nMissingTranslation": {
  2374. "type": "string",
  2375. "description": "How to handle missing translations for i18n.",
  2376. "enum": [
  2377. "warning",
  2378. "error",
  2379. "ignore"
  2380. ],
  2381. "default": "warning"
  2382. },
  2383. "i18nDuplicateTranslation": {
  2384. "type": "string",
  2385. "description": "How to handle duplicate translations for i18n.",
  2386. "enum": [
  2387. "warning",
  2388. "error",
  2389. "ignore"
  2390. ],
  2391. "default": "warning"
  2392. },
  2393. "localize": {
  2394. "description": "Translate the bundles in one or more locales.",
  2395. "oneOf": [
  2396. {
  2397. "type": "boolean",
  2398. "description": "Translate all locales."
  2399. },
  2400. {
  2401. "type": "array",
  2402. "description": "List of locales ID's to translate.",
  2403. "minItems": 1,
  2404. "items": {
  2405. "type": "string",
  2406. "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$"
  2407. }
  2408. }
  2409. ]
  2410. },
  2411. "watch": {
  2412. "type": "boolean",
  2413. "description": "Run build when files change.",
  2414. "default": false
  2415. },
  2416. "outputHashing": {
  2417. "type": "string",
  2418. "description": "Define the output filename cache-busting hashing mode.",
  2419. "default": "none",
  2420. "enum": [
  2421. "none",
  2422. "all",
  2423. "media",
  2424. "bundles"
  2425. ]
  2426. },
  2427. "poll": {
  2428. "type": "number",
  2429. "description": "Enable and define the file watching poll time period in milliseconds."
  2430. },
  2431. "deleteOutputPath": {
  2432. "type": "boolean",
  2433. "description": "Delete the output path before building.",
  2434. "default": true
  2435. },
  2436. "preserveSymlinks": {
  2437. "type": "boolean",
  2438. "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
  2439. },
  2440. "extractLicenses": {
  2441. "type": "boolean",
  2442. "description": "Extract all licenses in a separate file.",
  2443. "default": true
  2444. },
  2445. "namedChunks": {
  2446. "type": "boolean",
  2447. "description": "Use file name for lazy loaded chunks.",
  2448. "default": false
  2449. },
  2450. "subresourceIntegrity": {
  2451. "type": "boolean",
  2452. "description": "Enables the use of subresource integrity validation.",
  2453. "default": false
  2454. },
  2455. "serviceWorker": {
  2456. "description": "Generates a service worker configuration.",
  2457. "default": false,
  2458. "oneOf": [
  2459. {
  2460. "type": "string",
  2461. "description": "Path to ngsw-config.json."
  2462. },
  2463. {
  2464. "const": false,
  2465. "type": "boolean",
  2466. "description": "Does not generate a service worker configuration."
  2467. }
  2468. ]
  2469. },
  2470. "index": {
  2471. "description": "Configures the generation of the application's HTML index.",
  2472. "oneOf": [
  2473. {
  2474. "type": "string",
  2475. "description": "The path of a file to use for the application's HTML index. The filename of the specified path will be used for the generated file and will be created in the root of the application's configured output path."
  2476. },
  2477. {
  2478. "type": "object",
  2479. "description": "",
  2480. "properties": {
  2481. "input": {
  2482. "type": "string",
  2483. "minLength": 1,
  2484. "description": "The path of a file to use for the application's generated HTML index."
  2485. },
  2486. "output": {
  2487. "type": "string",
  2488. "minLength": 1,
  2489. "default": "index.html",
  2490. "description": "The output path of the application's generated HTML index file. The full provided path will be used and will be considered relative to the application's configured output path."
  2491. },
  2492. "preloadInitial": {
  2493. "type": "boolean",
  2494. "default": true,
  2495. "description": "Generates 'preload', 'modulepreload', and 'preconnect' link elements for initial application files and resources."
  2496. }
  2497. }
  2498. },
  2499. {
  2500. "const": false,
  2501. "type": "boolean",
  2502. "description": "Does not generate an `index.html` file."
  2503. }
  2504. ]
  2505. },
  2506. "statsJson": {
  2507. "type": "boolean",
  2508. "description": "Generates a 'stats.json' file which can be analyzed with https://esbuild.github.io/analyze/.",
  2509. "default": false
  2510. },
  2511. "budgets": {
  2512. "description": "Budget thresholds to ensure parts of your application stay within boundaries which you set.",
  2513. "type": "array",
  2514. "items": {
  2515. "$ref": "#/definitions/AngularBuildBuildersApplicationSchema/definitions/budget"
  2516. },
  2517. "default": []
  2518. },
  2519. "webWorkerTsConfig": {
  2520. "type": "string",
  2521. "description": "TypeScript configuration for Web Worker modules."
  2522. },
  2523. "crossOrigin": {
  2524. "type": "string",
  2525. "description": "Define the crossorigin attribute setting of elements that provide CORS support.",
  2526. "default": "none",
  2527. "enum": [
  2528. "none",
  2529. "anonymous",
  2530. "use-credentials"
  2531. ]
  2532. },
  2533. "allowedCommonJsDependencies": {
  2534. "description": "A list of CommonJS or AMD packages that are allowed to be used without a build time warning. Use `'*'` to allow all.",
  2535. "type": "array",
  2536. "items": {
  2537. "type": "string"
  2538. },
  2539. "default": []
  2540. },
  2541. "prerender": {
  2542. "description": "Prerender (SSG) pages of your application during build time.",
  2543. "oneOf": [
  2544. {
  2545. "type": "boolean",
  2546. "description": "Enable prerending of pages of your application during build time."
  2547. },
  2548. {
  2549. "type": "object",
  2550. "properties": {
  2551. "routesFile": {
  2552. "type": "string",
  2553. "description": "The path to a file that contains a list of all routes to prerender, separated by newlines. This option is useful if you want to prerender routes with parameterized URLs."
  2554. },
  2555. "discoverRoutes": {
  2556. "type": "boolean",
  2557. "description": "Whether the builder should process the Angular Router configuration to find all unparameterized routes and prerender them.",
  2558. "default": true
  2559. }
  2560. },
  2561. "additionalProperties": false
  2562. }
  2563. ]
  2564. },
  2565. "ssr": {
  2566. "description": "Server side render (SSR) pages of your application during runtime.",
  2567. "default": false,
  2568. "oneOf": [
  2569. {
  2570. "type": "boolean",
  2571. "description": "Enable the server bundles to be written to disk."
  2572. },
  2573. {
  2574. "type": "object",
  2575. "properties": {
  2576. "entry": {
  2577. "type": "string",
  2578. "description": "The server entry-point that when executed will spawn the web server."
  2579. },
  2580. "experimentalPlatform": {
  2581. "description": "Specifies the platform for which the server bundle is generated. This affects the APIs and modules available in the server-side code. \n\n- `node`: (Default) Generates a bundle optimized for Node.js environments. \n- `neutral`: Generates a platform-neutral bundle suitable for environments like edge workers, and other serverless platforms. This option avoids using Node.js-specific APIs, making the bundle more portable. \n\nPlease note that this feature does not provide polyfills for Node.js modules. Additionally, it is experimental, and the schematics may undergo changes in future versions.",
  2582. "default": "node",
  2583. "enum": [
  2584. "node",
  2585. "neutral"
  2586. ]
  2587. }
  2588. },
  2589. "additionalProperties": false
  2590. }
  2591. ]
  2592. },
  2593. "appShell": {
  2594. "type": "boolean",
  2595. "description": "Generates an application shell during build time."
  2596. },
  2597. "outputMode": {
  2598. "type": "string",
  2599. "description": "Defines the build output target. 'static': Generates a static site for deployment on any static hosting service. 'server': Produces an application designed for deployment on a server that supports server-side rendering (SSR).",
  2600. "enum": [
  2601. "static",
  2602. "server"
  2603. ]
  2604. }
  2605. },
  2606. "additionalProperties": false,
  2607. "definitions": {
  2608. "assetPattern": {
  2609. "oneOf": [
  2610. {
  2611. "type": "object",
  2612. "properties": {
  2613. "followSymlinks": {
  2614. "type": "boolean",
  2615. "default": false,
  2616. "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched."
  2617. },
  2618. "glob": {
  2619. "type": "string",
  2620. "description": "The pattern to match."
  2621. },
  2622. "input": {
  2623. "type": "string",
  2624. "description": "The input directory path in which to apply 'glob'. Defaults to the project root."
  2625. },
  2626. "ignore": {
  2627. "description": "An array of globs to ignore.",
  2628. "type": "array",
  2629. "items": {
  2630. "type": "string"
  2631. }
  2632. },
  2633. "output": {
  2634. "type": "string",
  2635. "default": "",
  2636. "description": "Absolute path within the output."
  2637. }
  2638. },
  2639. "additionalProperties": false
  2640. },
  2641. {
  2642. "type": "string"
  2643. }
  2644. ]
  2645. },
  2646. "fileReplacement": {
  2647. "type": "object",
  2648. "properties": {
  2649. "replace": {
  2650. "type": "string",
  2651. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  2652. },
  2653. "with": {
  2654. "type": "string",
  2655. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  2656. }
  2657. },
  2658. "additionalProperties": false
  2659. },
  2660. "budget": {
  2661. "type": "object",
  2662. "properties": {
  2663. "type": {
  2664. "type": "string",
  2665. "description": "The type of budget.",
  2666. "enum": [
  2667. "all",
  2668. "allScript",
  2669. "any",
  2670. "anyScript",
  2671. "anyComponentStyle",
  2672. "bundle",
  2673. "initial"
  2674. ]
  2675. },
  2676. "name": {
  2677. "type": "string",
  2678. "description": "The name of the bundle."
  2679. },
  2680. "baseline": {
  2681. "type": "string",
  2682. "description": "The baseline size for comparison."
  2683. },
  2684. "maximumWarning": {
  2685. "type": "string",
  2686. "description": "The maximum threshold for warning relative to the baseline."
  2687. },
  2688. "maximumError": {
  2689. "type": "string",
  2690. "description": "The maximum threshold for error relative to the baseline."
  2691. },
  2692. "minimumWarning": {
  2693. "type": "string",
  2694. "description": "The minimum threshold for warning relative to the baseline."
  2695. },
  2696. "minimumError": {
  2697. "type": "string",
  2698. "description": "The minimum threshold for error relative to the baseline."
  2699. },
  2700. "warning": {
  2701. "type": "string",
  2702. "description": "The threshold for warning relative to the baseline (min & max)."
  2703. },
  2704. "error": {
  2705. "type": "string",
  2706. "description": "The threshold for error relative to the baseline (min & max)."
  2707. }
  2708. },
  2709. "additionalProperties": false
  2710. }
  2711. }
  2712. },
  2713. "AngularDevkitBuildAngularBuildersAppShellSchema": {
  2714. "title": "App Shell Target",
  2715. "description": "App Shell target options for Build Facade.",
  2716. "type": "object",
  2717. "properties": {
  2718. "browserTarget": {
  2719. "type": "string",
  2720. "description": "A browser builder target use for rendering the application shell in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
  2721. "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$"
  2722. },
  2723. "serverTarget": {
  2724. "type": "string",
  2725. "description": "A server builder target use for rendering the application shell in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
  2726. "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$"
  2727. },
  2728. "appModuleBundle": {
  2729. "type": "string",
  2730. "description": "Script that exports the Server AppModule to render. This should be the main JavaScript outputted by the server target. By default we will resolve the outputPath of the serverTarget and find a bundle named 'main' in it (whether or not there's a hash tag)."
  2731. },
  2732. "route": {
  2733. "type": "string",
  2734. "description": "The route to render.",
  2735. "default": "/"
  2736. },
  2737. "inputIndexPath": {
  2738. "type": "string",
  2739. "description": "The input path for the index.html file. By default uses the output index.html of the browser target."
  2740. },
  2741. "outputIndexPath": {
  2742. "type": "string",
  2743. "description": "The output path of the index.html file. By default will overwrite the input file."
  2744. }
  2745. },
  2746. "additionalProperties": false
  2747. },
  2748. "AngularDevkitBuildAngularBuildersBrowserSchema": {
  2749. "title": "Webpack browser schema for Build Facade.",
  2750. "description": "Browser target options",
  2751. "type": "object",
  2752. "properties": {
  2753. "assets": {
  2754. "type": "array",
  2755. "description": "List of static application assets.",
  2756. "default": [],
  2757. "items": {
  2758. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserSchema/definitions/assetPattern"
  2759. }
  2760. },
  2761. "main": {
  2762. "type": "string",
  2763. "description": "The full path for the main entry point to the app, relative to the current workspace."
  2764. },
  2765. "polyfills": {
  2766. "description": "Polyfills to be included in the build.",
  2767. "oneOf": [
  2768. {
  2769. "type": "array",
  2770. "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.",
  2771. "items": {
  2772. "type": "string",
  2773. "uniqueItems": true
  2774. },
  2775. "default": []
  2776. },
  2777. {
  2778. "type": "string",
  2779. "description": "The full path for the polyfills file, relative to the current workspace or a module specifier. Example: 'zone.js'."
  2780. }
  2781. ]
  2782. },
  2783. "tsConfig": {
  2784. "type": "string",
  2785. "description": "The full path for the TypeScript configuration file, relative to the current workspace."
  2786. },
  2787. "scripts": {
  2788. "description": "Global scripts to be included in the build.",
  2789. "type": "array",
  2790. "default": [],
  2791. "items": {
  2792. "oneOf": [
  2793. {
  2794. "type": "object",
  2795. "properties": {
  2796. "input": {
  2797. "type": "string",
  2798. "description": "The file to include.",
  2799. "pattern": "\\.[cm]?jsx?$"
  2800. },
  2801. "bundleName": {
  2802. "type": "string",
  2803. "pattern": "^[\\w\\-.]*$",
  2804. "description": "The bundle name for this extra entry point."
  2805. },
  2806. "inject": {
  2807. "type": "boolean",
  2808. "description": "If the bundle will be referenced in the HTML file.",
  2809. "default": true
  2810. }
  2811. },
  2812. "additionalProperties": false
  2813. },
  2814. {
  2815. "type": "string",
  2816. "description": "The file to include.",
  2817. "pattern": "\\.[cm]?jsx?$"
  2818. }
  2819. ]
  2820. }
  2821. },
  2822. "styles": {
  2823. "description": "Global styles to be included in the build.",
  2824. "type": "array",
  2825. "default": [],
  2826. "items": {
  2827. "oneOf": [
  2828. {
  2829. "type": "object",
  2830. "properties": {
  2831. "input": {
  2832. "type": "string",
  2833. "description": "The file to include.",
  2834. "pattern": "\\.(?:css|scss|sass|less)$"
  2835. },
  2836. "bundleName": {
  2837. "type": "string",
  2838. "pattern": "^[\\w\\-.]*$",
  2839. "description": "The bundle name for this extra entry point."
  2840. },
  2841. "inject": {
  2842. "type": "boolean",
  2843. "description": "If the bundle will be referenced in the HTML file.",
  2844. "default": true
  2845. }
  2846. },
  2847. "additionalProperties": false
  2848. },
  2849. {
  2850. "type": "string",
  2851. "description": "The file to include.",
  2852. "pattern": "\\.(?:css|scss|sass|less)$"
  2853. }
  2854. ]
  2855. }
  2856. },
  2857. "inlineStyleLanguage": {
  2858. "description": "The stylesheet language to use for the application's inline component styles.",
  2859. "type": "string",
  2860. "default": "css",
  2861. "enum": [
  2862. "css",
  2863. "less",
  2864. "sass",
  2865. "scss"
  2866. ]
  2867. },
  2868. "stylePreprocessorOptions": {
  2869. "description": "Options to pass to style preprocessors.",
  2870. "type": "object",
  2871. "properties": {
  2872. "includePaths": {
  2873. "description": "Paths to include. Paths will be resolved to workspace root.",
  2874. "type": "array",
  2875. "items": {
  2876. "type": "string"
  2877. },
  2878. "default": []
  2879. }
  2880. },
  2881. "additionalProperties": false
  2882. },
  2883. "optimization": {
  2884. "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, inlining of critical CSS and fonts inlining. For more information, see https://angular.dev/reference/configs/workspace-config#optimization-configuration.",
  2885. "default": true,
  2886. "oneOf": [
  2887. {
  2888. "type": "object",
  2889. "properties": {
  2890. "scripts": {
  2891. "type": "boolean",
  2892. "description": "Enables optimization of the scripts output.",
  2893. "default": true
  2894. },
  2895. "styles": {
  2896. "description": "Enables optimization of the styles output.",
  2897. "default": true,
  2898. "oneOf": [
  2899. {
  2900. "type": "object",
  2901. "properties": {
  2902. "minify": {
  2903. "type": "boolean",
  2904. "description": "Minify CSS definitions by removing extraneous whitespace and comments, merging identifiers and minimizing values.",
  2905. "default": true
  2906. },
  2907. "inlineCritical": {
  2908. "type": "boolean",
  2909. "description": "Extract and inline critical CSS definitions to improve first paint time.",
  2910. "default": true
  2911. }
  2912. },
  2913. "additionalProperties": false
  2914. },
  2915. {
  2916. "type": "boolean"
  2917. }
  2918. ]
  2919. },
  2920. "fonts": {
  2921. "description": "Enables optimization for fonts. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.",
  2922. "default": true,
  2923. "oneOf": [
  2924. {
  2925. "type": "object",
  2926. "properties": {
  2927. "inline": {
  2928. "type": "boolean",
  2929. "description": "Reduce render blocking requests by inlining external Google Fonts and Adobe Fonts CSS definitions in the application's HTML index file. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.",
  2930. "default": true
  2931. }
  2932. },
  2933. "additionalProperties": false
  2934. },
  2935. {
  2936. "type": "boolean"
  2937. }
  2938. ]
  2939. }
  2940. },
  2941. "additionalProperties": false
  2942. },
  2943. {
  2944. "type": "boolean"
  2945. }
  2946. ]
  2947. },
  2948. "fileReplacements": {
  2949. "description": "Replace compilation source files with other compilation source files in the build.",
  2950. "type": "array",
  2951. "items": {
  2952. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserSchema/definitions/fileReplacement"
  2953. },
  2954. "default": []
  2955. },
  2956. "outputPath": {
  2957. "type": "string",
  2958. "description": "The full path for the new output directory, relative to the current workspace."
  2959. },
  2960. "resourcesOutputPath": {
  2961. "type": "string",
  2962. "description": "The path where style resources will be placed, relative to outputPath."
  2963. },
  2964. "aot": {
  2965. "type": "boolean",
  2966. "description": "Build using Ahead of Time compilation.",
  2967. "default": true
  2968. },
  2969. "sourceMap": {
  2970. "description": "Output source maps for scripts and styles. For more information, see https://angular.dev/reference/configs/workspace-config#source-map-configuration.",
  2971. "default": false,
  2972. "oneOf": [
  2973. {
  2974. "type": "object",
  2975. "properties": {
  2976. "scripts": {
  2977. "type": "boolean",
  2978. "description": "Output source maps for all scripts.",
  2979. "default": true
  2980. },
  2981. "styles": {
  2982. "type": "boolean",
  2983. "description": "Output source maps for all styles.",
  2984. "default": true
  2985. },
  2986. "hidden": {
  2987. "type": "boolean",
  2988. "description": "Output source maps used for error reporting tools.",
  2989. "default": false
  2990. },
  2991. "vendor": {
  2992. "type": "boolean",
  2993. "description": "Resolve vendor packages source maps.",
  2994. "default": false
  2995. }
  2996. },
  2997. "additionalProperties": false
  2998. },
  2999. {
  3000. "type": "boolean"
  3001. }
  3002. ]
  3003. },
  3004. "vendorChunk": {
  3005. "type": "boolean",
  3006. "description": "Generate a seperate bundle containing only vendor libraries. This option should only be used for development to reduce the incremental compilation time.",
  3007. "default": false
  3008. },
  3009. "commonChunk": {
  3010. "type": "boolean",
  3011. "description": "Generate a seperate bundle containing code used across multiple bundles.",
  3012. "default": true
  3013. },
  3014. "baseHref": {
  3015. "type": "string",
  3016. "description": "Base url for the application being built."
  3017. },
  3018. "deployUrl": {
  3019. "type": "string",
  3020. "description": "Customize the base path for the URLs of resources in 'index.html' and component stylesheets. This option is only necessary for specific deployment scenarios, such as with Angular Elements or when utilizing different CDN locations."
  3021. },
  3022. "verbose": {
  3023. "type": "boolean",
  3024. "description": "Adds more details to output logging.",
  3025. "default": false
  3026. },
  3027. "progress": {
  3028. "type": "boolean",
  3029. "description": "Log progress to the console while building.",
  3030. "default": true
  3031. },
  3032. "i18nMissingTranslation": {
  3033. "type": "string",
  3034. "description": "How to handle missing translations for i18n.",
  3035. "enum": [
  3036. "warning",
  3037. "error",
  3038. "ignore"
  3039. ],
  3040. "default": "warning"
  3041. },
  3042. "i18nDuplicateTranslation": {
  3043. "type": "string",
  3044. "description": "How to handle duplicate translations for i18n.",
  3045. "enum": [
  3046. "warning",
  3047. "error",
  3048. "ignore"
  3049. ],
  3050. "default": "warning"
  3051. },
  3052. "localize": {
  3053. "description": "Translate the bundles in one or more locales.",
  3054. "oneOf": [
  3055. {
  3056. "type": "boolean",
  3057. "description": "Translate all locales."
  3058. },
  3059. {
  3060. "type": "array",
  3061. "description": "List of locales ID's to translate.",
  3062. "minItems": 1,
  3063. "items": {
  3064. "type": "string",
  3065. "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$"
  3066. }
  3067. }
  3068. ]
  3069. },
  3070. "watch": {
  3071. "type": "boolean",
  3072. "description": "Run build when files change.",
  3073. "default": false
  3074. },
  3075. "outputHashing": {
  3076. "type": "string",
  3077. "description": "Define the output filename cache-busting hashing mode.",
  3078. "default": "none",
  3079. "enum": [
  3080. "none",
  3081. "all",
  3082. "media",
  3083. "bundles"
  3084. ]
  3085. },
  3086. "poll": {
  3087. "type": "number",
  3088. "description": "Enable and define the file watching poll time period in milliseconds."
  3089. },
  3090. "deleteOutputPath": {
  3091. "type": "boolean",
  3092. "description": "Delete the output path before building.",
  3093. "default": true
  3094. },
  3095. "preserveSymlinks": {
  3096. "type": "boolean",
  3097. "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
  3098. },
  3099. "extractLicenses": {
  3100. "type": "boolean",
  3101. "description": "Extract all licenses in a separate file.",
  3102. "default": true
  3103. },
  3104. "buildOptimizer": {
  3105. "type": "boolean",
  3106. "description": "Enables advanced build optimizations when using the 'aot' option.",
  3107. "default": true
  3108. },
  3109. "namedChunks": {
  3110. "type": "boolean",
  3111. "description": "Use file name for lazy loaded chunks.",
  3112. "default": false
  3113. },
  3114. "subresourceIntegrity": {
  3115. "type": "boolean",
  3116. "description": "Enables the use of subresource integrity validation.",
  3117. "default": false
  3118. },
  3119. "serviceWorker": {
  3120. "type": "boolean",
  3121. "description": "Generates a service worker config for production builds.",
  3122. "default": false
  3123. },
  3124. "ngswConfigPath": {
  3125. "type": "string",
  3126. "description": "Path to ngsw-config.json."
  3127. },
  3128. "index": {
  3129. "description": "Configures the generation of the application's HTML index.",
  3130. "oneOf": [
  3131. {
  3132. "type": "string",
  3133. "description": "The path of a file to use for the application's HTML index. The filename of the specified path will be used for the generated file and will be created in the root of the application's configured output path."
  3134. },
  3135. {
  3136. "type": "object",
  3137. "description": "",
  3138. "properties": {
  3139. "input": {
  3140. "type": "string",
  3141. "minLength": 1,
  3142. "description": "The path of a file to use for the application's generated HTML index."
  3143. },
  3144. "output": {
  3145. "type": "string",
  3146. "minLength": 1,
  3147. "default": "index.html",
  3148. "description": "The output path of the application's generated HTML index file. The full provided path will be used and will be considered relative to the application's configured output path."
  3149. }
  3150. }
  3151. }
  3152. ]
  3153. },
  3154. "statsJson": {
  3155. "type": "boolean",
  3156. "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.",
  3157. "default": false
  3158. },
  3159. "budgets": {
  3160. "description": "Budget thresholds to ensure parts of your application stay within boundaries which you set.",
  3161. "type": "array",
  3162. "items": {
  3163. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserSchema/definitions/budget"
  3164. },
  3165. "default": []
  3166. },
  3167. "webWorkerTsConfig": {
  3168. "type": "string",
  3169. "description": "TypeScript configuration for Web Worker modules."
  3170. },
  3171. "crossOrigin": {
  3172. "type": "string",
  3173. "description": "Define the crossorigin attribute setting of elements that provide CORS support.",
  3174. "default": "none",
  3175. "enum": [
  3176. "none",
  3177. "anonymous",
  3178. "use-credentials"
  3179. ]
  3180. },
  3181. "allowedCommonJsDependencies": {
  3182. "description": "A list of CommonJS or AMD packages that are allowed to be used without a build time warning. Use `'*'` to allow all.",
  3183. "type": "array",
  3184. "items": {
  3185. "type": "string"
  3186. },
  3187. "default": []
  3188. }
  3189. },
  3190. "additionalProperties": false,
  3191. "definitions": {
  3192. "assetPattern": {
  3193. "oneOf": [
  3194. {
  3195. "type": "object",
  3196. "properties": {
  3197. "followSymlinks": {
  3198. "type": "boolean",
  3199. "default": false,
  3200. "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched."
  3201. },
  3202. "glob": {
  3203. "type": "string",
  3204. "description": "The pattern to match."
  3205. },
  3206. "input": {
  3207. "type": "string",
  3208. "description": "The input directory path in which to apply 'glob'. Defaults to the project root."
  3209. },
  3210. "ignore": {
  3211. "description": "An array of globs to ignore.",
  3212. "type": "array",
  3213. "items": {
  3214. "type": "string"
  3215. }
  3216. },
  3217. "output": {
  3218. "type": "string",
  3219. "default": "",
  3220. "description": "Absolute path within the output."
  3221. }
  3222. },
  3223. "additionalProperties": false
  3224. },
  3225. {
  3226. "type": "string"
  3227. }
  3228. ]
  3229. },
  3230. "fileReplacement": {
  3231. "oneOf": [
  3232. {
  3233. "type": "object",
  3234. "properties": {
  3235. "src": {
  3236. "type": "string",
  3237. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  3238. },
  3239. "replaceWith": {
  3240. "type": "string",
  3241. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  3242. }
  3243. },
  3244. "additionalProperties": false
  3245. },
  3246. {
  3247. "type": "object",
  3248. "properties": {
  3249. "replace": {
  3250. "type": "string",
  3251. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  3252. },
  3253. "with": {
  3254. "type": "string",
  3255. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  3256. }
  3257. },
  3258. "additionalProperties": false
  3259. }
  3260. ]
  3261. },
  3262. "budget": {
  3263. "type": "object",
  3264. "properties": {
  3265. "type": {
  3266. "type": "string",
  3267. "description": "The type of budget.",
  3268. "enum": [
  3269. "all",
  3270. "allScript",
  3271. "any",
  3272. "anyScript",
  3273. "anyComponentStyle",
  3274. "bundle",
  3275. "initial"
  3276. ]
  3277. },
  3278. "name": {
  3279. "type": "string",
  3280. "description": "The name of the bundle."
  3281. },
  3282. "baseline": {
  3283. "type": "string",
  3284. "description": "The baseline size for comparison."
  3285. },
  3286. "maximumWarning": {
  3287. "type": "string",
  3288. "description": "The maximum threshold for warning relative to the baseline."
  3289. },
  3290. "maximumError": {
  3291. "type": "string",
  3292. "description": "The maximum threshold for error relative to the baseline."
  3293. },
  3294. "minimumWarning": {
  3295. "type": "string",
  3296. "description": "The minimum threshold for warning relative to the baseline."
  3297. },
  3298. "minimumError": {
  3299. "type": "string",
  3300. "description": "The minimum threshold for error relative to the baseline."
  3301. },
  3302. "warning": {
  3303. "type": "string",
  3304. "description": "The threshold for warning relative to the baseline (min & max)."
  3305. },
  3306. "error": {
  3307. "type": "string",
  3308. "description": "The threshold for error relative to the baseline (min & max)."
  3309. }
  3310. },
  3311. "additionalProperties": false
  3312. }
  3313. }
  3314. },
  3315. "AngularDevkitBuildAngularBuildersBrowserEsbuildSchema": {
  3316. "title": "Esbuild browser schema for Build Facade.",
  3317. "description": "Browser target options",
  3318. "type": "object",
  3319. "properties": {
  3320. "assets": {
  3321. "type": "array",
  3322. "description": "List of static application assets.",
  3323. "default": [],
  3324. "items": {
  3325. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserEsbuildSchema/definitions/assetPattern"
  3326. }
  3327. },
  3328. "main": {
  3329. "type": "string",
  3330. "description": "The full path for the main entry point to the app, relative to the current workspace."
  3331. },
  3332. "polyfills": {
  3333. "description": "Polyfills to be included in the build.",
  3334. "oneOf": [
  3335. {
  3336. "type": "array",
  3337. "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.",
  3338. "items": {
  3339. "type": "string",
  3340. "uniqueItems": true
  3341. },
  3342. "default": []
  3343. },
  3344. {
  3345. "type": "string",
  3346. "description": "The full path for the polyfills file, relative to the current workspace or a module specifier. Example: 'zone.js'."
  3347. }
  3348. ]
  3349. },
  3350. "tsConfig": {
  3351. "type": "string",
  3352. "description": "The full path for the TypeScript configuration file, relative to the current workspace."
  3353. },
  3354. "scripts": {
  3355. "description": "Global scripts to be included in the build.",
  3356. "type": "array",
  3357. "default": [],
  3358. "items": {
  3359. "oneOf": [
  3360. {
  3361. "type": "object",
  3362. "properties": {
  3363. "input": {
  3364. "type": "string",
  3365. "description": "The file to include.",
  3366. "pattern": "\\.[cm]?jsx?$"
  3367. },
  3368. "bundleName": {
  3369. "type": "string",
  3370. "pattern": "^[\\w\\-.]*$",
  3371. "description": "The bundle name for this extra entry point."
  3372. },
  3373. "inject": {
  3374. "type": "boolean",
  3375. "description": "If the bundle will be referenced in the HTML file.",
  3376. "default": true
  3377. }
  3378. },
  3379. "additionalProperties": false
  3380. },
  3381. {
  3382. "type": "string",
  3383. "description": "The JavaScript/TypeScript file or package containing the file to include."
  3384. }
  3385. ]
  3386. }
  3387. },
  3388. "styles": {
  3389. "description": "Global styles to be included in the build.",
  3390. "type": "array",
  3391. "default": [],
  3392. "items": {
  3393. "oneOf": [
  3394. {
  3395. "type": "object",
  3396. "properties": {
  3397. "input": {
  3398. "type": "string",
  3399. "description": "The file to include.",
  3400. "pattern": "\\.(?:css|scss|sass|less)$"
  3401. },
  3402. "bundleName": {
  3403. "type": "string",
  3404. "pattern": "^[\\w\\-.]*$",
  3405. "description": "The bundle name for this extra entry point."
  3406. },
  3407. "inject": {
  3408. "type": "boolean",
  3409. "description": "If the bundle will be referenced in the HTML file.",
  3410. "default": true
  3411. }
  3412. },
  3413. "additionalProperties": false
  3414. },
  3415. {
  3416. "type": "string",
  3417. "description": "The file to include.",
  3418. "pattern": "\\.(?:css|scss|sass|less)$"
  3419. }
  3420. ]
  3421. }
  3422. },
  3423. "inlineStyleLanguage": {
  3424. "description": "The stylesheet language to use for the application's inline component styles.",
  3425. "type": "string",
  3426. "default": "css",
  3427. "enum": [
  3428. "css",
  3429. "less",
  3430. "sass",
  3431. "scss"
  3432. ]
  3433. },
  3434. "stylePreprocessorOptions": {
  3435. "description": "Options to pass to style preprocessors.",
  3436. "type": "object",
  3437. "properties": {
  3438. "includePaths": {
  3439. "description": "Paths to include. Paths will be resolved to workspace root.",
  3440. "type": "array",
  3441. "items": {
  3442. "type": "string"
  3443. },
  3444. "default": []
  3445. }
  3446. },
  3447. "additionalProperties": false
  3448. },
  3449. "externalDependencies": {
  3450. "description": "Exclude the listed external dependencies from being bundled into the bundle. Instead, the created bundle relies on these dependencies to be available during runtime.",
  3451. "type": "array",
  3452. "items": {
  3453. "type": "string"
  3454. },
  3455. "default": []
  3456. },
  3457. "optimization": {
  3458. "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, inlining of critical CSS and fonts inlining. For more information, see https://angular.dev/reference/configs/workspace-config#optimization-configuration.",
  3459. "default": true,
  3460. "oneOf": [
  3461. {
  3462. "type": "object",
  3463. "properties": {
  3464. "scripts": {
  3465. "type": "boolean",
  3466. "description": "Enables optimization of the scripts output.",
  3467. "default": true
  3468. },
  3469. "styles": {
  3470. "description": "Enables optimization of the styles output.",
  3471. "default": true,
  3472. "oneOf": [
  3473. {
  3474. "type": "object",
  3475. "properties": {
  3476. "minify": {
  3477. "type": "boolean",
  3478. "description": "Minify CSS definitions by removing extraneous whitespace and comments, merging identifiers and minimizing values.",
  3479. "default": true
  3480. },
  3481. "inlineCritical": {
  3482. "type": "boolean",
  3483. "description": "Extract and inline critical CSS definitions to improve first paint time.",
  3484. "default": true
  3485. }
  3486. },
  3487. "additionalProperties": false
  3488. },
  3489. {
  3490. "type": "boolean"
  3491. }
  3492. ]
  3493. },
  3494. "fonts": {
  3495. "description": "Enables optimization for fonts. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.",
  3496. "default": true,
  3497. "oneOf": [
  3498. {
  3499. "type": "object",
  3500. "properties": {
  3501. "inline": {
  3502. "type": "boolean",
  3503. "description": "Reduce render blocking requests by inlining external Google Fonts and Adobe Fonts CSS definitions in the application's HTML index file. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.",
  3504. "default": true
  3505. }
  3506. },
  3507. "additionalProperties": false
  3508. },
  3509. {
  3510. "type": "boolean"
  3511. }
  3512. ]
  3513. }
  3514. },
  3515. "additionalProperties": false
  3516. },
  3517. {
  3518. "type": "boolean"
  3519. }
  3520. ]
  3521. },
  3522. "fileReplacements": {
  3523. "description": "Replace compilation source files with other compilation source files in the build.",
  3524. "type": "array",
  3525. "items": {
  3526. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserEsbuildSchema/definitions/fileReplacement"
  3527. },
  3528. "default": []
  3529. },
  3530. "outputPath": {
  3531. "type": "string",
  3532. "description": "The full path for the new output directory, relative to the current workspace."
  3533. },
  3534. "resourcesOutputPath": {
  3535. "type": "string",
  3536. "description": "The path where style resources will be placed, relative to outputPath."
  3537. },
  3538. "aot": {
  3539. "type": "boolean",
  3540. "description": "Build using Ahead of Time compilation.",
  3541. "default": true
  3542. },
  3543. "sourceMap": {
  3544. "description": "Output source maps for scripts and styles. For more information, see https://angular.dev/reference/configs/workspace-config#source-map-configuration.",
  3545. "default": false,
  3546. "oneOf": [
  3547. {
  3548. "type": "object",
  3549. "properties": {
  3550. "scripts": {
  3551. "type": "boolean",
  3552. "description": "Output source maps for all scripts.",
  3553. "default": true
  3554. },
  3555. "styles": {
  3556. "type": "boolean",
  3557. "description": "Output source maps for all styles.",
  3558. "default": true
  3559. },
  3560. "hidden": {
  3561. "type": "boolean",
  3562. "description": "Output source maps used for error reporting tools.",
  3563. "default": false
  3564. },
  3565. "vendor": {
  3566. "type": "boolean",
  3567. "description": "Resolve vendor packages source maps.",
  3568. "default": false
  3569. }
  3570. },
  3571. "additionalProperties": false
  3572. },
  3573. {
  3574. "type": "boolean"
  3575. }
  3576. ]
  3577. },
  3578. "vendorChunk": {
  3579. "type": "boolean",
  3580. "description": "Generate a seperate bundle containing only vendor libraries. This option should only be used for development to reduce the incremental compilation time.",
  3581. "default": false
  3582. },
  3583. "commonChunk": {
  3584. "type": "boolean",
  3585. "description": "Generate a seperate bundle containing code used across multiple bundles.",
  3586. "default": true
  3587. },
  3588. "baseHref": {
  3589. "type": "string",
  3590. "description": "Base url for the application being built."
  3591. },
  3592. "deployUrl": {
  3593. "type": "string",
  3594. "description": "Customize the base path for the URLs of resources in 'index.html' and component stylesheets. This option is only necessary for specific deployment scenarios, such as with Angular Elements or when utilizing different CDN locations."
  3595. },
  3596. "verbose": {
  3597. "type": "boolean",
  3598. "description": "Adds more details to output logging.",
  3599. "default": false
  3600. },
  3601. "progress": {
  3602. "type": "boolean",
  3603. "description": "Log progress to the console while building.",
  3604. "default": true
  3605. },
  3606. "i18nMissingTranslation": {
  3607. "type": "string",
  3608. "description": "How to handle missing translations for i18n.",
  3609. "enum": [
  3610. "warning",
  3611. "error",
  3612. "ignore"
  3613. ],
  3614. "default": "warning"
  3615. },
  3616. "i18nDuplicateTranslation": {
  3617. "type": "string",
  3618. "description": "How to handle duplicate translations for i18n.",
  3619. "enum": [
  3620. "warning",
  3621. "error",
  3622. "ignore"
  3623. ],
  3624. "default": "warning"
  3625. },
  3626. "localize": {
  3627. "description": "Translate the bundles in one or more locales.",
  3628. "oneOf": [
  3629. {
  3630. "type": "boolean",
  3631. "description": "Translate all locales."
  3632. },
  3633. {
  3634. "type": "array",
  3635. "description": "List of locales ID's to translate.",
  3636. "minItems": 1,
  3637. "items": {
  3638. "type": "string",
  3639. "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$"
  3640. }
  3641. }
  3642. ]
  3643. },
  3644. "watch": {
  3645. "type": "boolean",
  3646. "description": "Run build when files change.",
  3647. "default": false
  3648. },
  3649. "outputHashing": {
  3650. "type": "string",
  3651. "description": "Define the output filename cache-busting hashing mode.",
  3652. "default": "none",
  3653. "enum": [
  3654. "none",
  3655. "all",
  3656. "media",
  3657. "bundles"
  3658. ]
  3659. },
  3660. "poll": {
  3661. "type": "number",
  3662. "description": "Enable and define the file watching poll time period in milliseconds."
  3663. },
  3664. "deleteOutputPath": {
  3665. "type": "boolean",
  3666. "description": "Delete the output path before building.",
  3667. "default": true
  3668. },
  3669. "preserveSymlinks": {
  3670. "type": "boolean",
  3671. "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
  3672. },
  3673. "extractLicenses": {
  3674. "type": "boolean",
  3675. "description": "Extract all licenses in a separate file.",
  3676. "default": true
  3677. },
  3678. "buildOptimizer": {
  3679. "type": "boolean",
  3680. "description": "Enables advanced build optimizations when using the 'aot' option.",
  3681. "default": true
  3682. },
  3683. "namedChunks": {
  3684. "type": "boolean",
  3685. "description": "Use file name for lazy loaded chunks.",
  3686. "default": false
  3687. },
  3688. "subresourceIntegrity": {
  3689. "type": "boolean",
  3690. "description": "Enables the use of subresource integrity validation.",
  3691. "default": false
  3692. },
  3693. "serviceWorker": {
  3694. "type": "boolean",
  3695. "description": "Generates a service worker config for production builds.",
  3696. "default": false
  3697. },
  3698. "ngswConfigPath": {
  3699. "type": "string",
  3700. "description": "Path to ngsw-config.json."
  3701. },
  3702. "index": {
  3703. "description": "Configures the generation of the application's HTML index.",
  3704. "oneOf": [
  3705. {
  3706. "type": "string",
  3707. "description": "The path of a file to use for the application's HTML index. The filename of the specified path will be used for the generated file and will be created in the root of the application's configured output path."
  3708. },
  3709. {
  3710. "type": "object",
  3711. "description": "",
  3712. "properties": {
  3713. "input": {
  3714. "type": "string",
  3715. "minLength": 1,
  3716. "description": "The path of a file to use for the application's generated HTML index."
  3717. },
  3718. "output": {
  3719. "type": "string",
  3720. "minLength": 1,
  3721. "default": "index.html",
  3722. "description": "The output path of the application's generated HTML index file. The full provided path will be used and will be considered relative to the application's configured output path."
  3723. }
  3724. }
  3725. },
  3726. {
  3727. "const": false,
  3728. "type": "boolean",
  3729. "description": "Does not generate an `index.html` file."
  3730. }
  3731. ]
  3732. },
  3733. "statsJson": {
  3734. "type": "boolean",
  3735. "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.",
  3736. "default": false
  3737. },
  3738. "budgets": {
  3739. "description": "Budget thresholds to ensure parts of your application stay within boundaries which you set.",
  3740. "type": "array",
  3741. "items": {
  3742. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserEsbuildSchema/definitions/budget"
  3743. },
  3744. "default": []
  3745. },
  3746. "webWorkerTsConfig": {
  3747. "type": "string",
  3748. "description": "TypeScript configuration for Web Worker modules."
  3749. },
  3750. "crossOrigin": {
  3751. "type": "string",
  3752. "description": "Define the crossorigin attribute setting of elements that provide CORS support.",
  3753. "default": "none",
  3754. "enum": [
  3755. "none",
  3756. "anonymous",
  3757. "use-credentials"
  3758. ]
  3759. },
  3760. "allowedCommonJsDependencies": {
  3761. "description": "A list of CommonJS or AMD packages that are allowed to be used without a build time warning. Use `'*'` to allow all.",
  3762. "type": "array",
  3763. "items": {
  3764. "type": "string"
  3765. },
  3766. "default": []
  3767. }
  3768. },
  3769. "additionalProperties": false,
  3770. "definitions": {
  3771. "assetPattern": {
  3772. "oneOf": [
  3773. {
  3774. "type": "object",
  3775. "properties": {
  3776. "followSymlinks": {
  3777. "type": "boolean",
  3778. "default": false,
  3779. "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched."
  3780. },
  3781. "glob": {
  3782. "type": "string",
  3783. "description": "The pattern to match."
  3784. },
  3785. "input": {
  3786. "type": "string",
  3787. "description": "The input directory path in which to apply 'glob'. Defaults to the project root."
  3788. },
  3789. "ignore": {
  3790. "description": "An array of globs to ignore.",
  3791. "type": "array",
  3792. "items": {
  3793. "type": "string"
  3794. }
  3795. },
  3796. "output": {
  3797. "type": "string",
  3798. "default": "",
  3799. "description": "Absolute path within the output."
  3800. }
  3801. },
  3802. "additionalProperties": false
  3803. },
  3804. {
  3805. "type": "string"
  3806. }
  3807. ]
  3808. },
  3809. "fileReplacement": {
  3810. "type": "object",
  3811. "properties": {
  3812. "replace": {
  3813. "type": "string",
  3814. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  3815. },
  3816. "with": {
  3817. "type": "string",
  3818. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  3819. }
  3820. },
  3821. "additionalProperties": false
  3822. },
  3823. "budget": {
  3824. "type": "object",
  3825. "properties": {
  3826. "type": {
  3827. "type": "string",
  3828. "description": "The type of budget.",
  3829. "enum": [
  3830. "all",
  3831. "allScript",
  3832. "any",
  3833. "anyScript",
  3834. "anyComponentStyle",
  3835. "bundle",
  3836. "initial"
  3837. ]
  3838. },
  3839. "name": {
  3840. "type": "string",
  3841. "description": "The name of the bundle."
  3842. },
  3843. "baseline": {
  3844. "type": "string",
  3845. "description": "The baseline size for comparison."
  3846. },
  3847. "maximumWarning": {
  3848. "type": "string",
  3849. "description": "The maximum threshold for warning relative to the baseline."
  3850. },
  3851. "maximumError": {
  3852. "type": "string",
  3853. "description": "The maximum threshold for error relative to the baseline."
  3854. },
  3855. "minimumWarning": {
  3856. "type": "string",
  3857. "description": "The minimum threshold for warning relative to the baseline."
  3858. },
  3859. "minimumError": {
  3860. "type": "string",
  3861. "description": "The minimum threshold for error relative to the baseline."
  3862. },
  3863. "warning": {
  3864. "type": "string",
  3865. "description": "The threshold for warning relative to the baseline (min & max)."
  3866. },
  3867. "error": {
  3868. "type": "string",
  3869. "description": "The threshold for error relative to the baseline (min & max)."
  3870. }
  3871. },
  3872. "additionalProperties": false
  3873. }
  3874. }
  3875. },
  3876. "AngularBuildBuildersDevServerSchema": {
  3877. "title": "Dev Server Target",
  3878. "description": "Dev Server target options for Build Facade.",
  3879. "type": "object",
  3880. "properties": {
  3881. "buildTarget": {
  3882. "type": "string",
  3883. "description": "A build builder target to serve in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
  3884. "pattern": "^[^:\\s]*:[^:\\s]*(:[^\\s]+)?$"
  3885. },
  3886. "port": {
  3887. "type": "number",
  3888. "description": "Port to listen on.",
  3889. "default": 4200
  3890. },
  3891. "host": {
  3892. "type": "string",
  3893. "description": "Host to listen on.",
  3894. "default": "localhost"
  3895. },
  3896. "proxyConfig": {
  3897. "type": "string",
  3898. "description": "Proxy configuration file. For more information, see https://angular.dev/tools/cli/serve#proxying-to-a-backend-server."
  3899. },
  3900. "ssl": {
  3901. "type": "boolean",
  3902. "description": "Serve using HTTPS.",
  3903. "default": false
  3904. },
  3905. "sslKey": {
  3906. "type": "string",
  3907. "description": "SSL key to use for serving HTTPS."
  3908. },
  3909. "sslCert": {
  3910. "type": "string",
  3911. "description": "SSL certificate to use for serving HTTPS."
  3912. },
  3913. "allowedHosts": {
  3914. "description": "The hosts that the development server will respond to. This option sets the Vite option of the same name. For further details: https://vite.dev/config/server-options.html#server-allowedhosts",
  3915. "default": [],
  3916. "oneOf": [
  3917. {
  3918. "type": "array",
  3919. "description": "A list of hosts that the development server will respond to.",
  3920. "items": {
  3921. "type": "string"
  3922. }
  3923. },
  3924. {
  3925. "type": "boolean",
  3926. "description": "Indicates that all hosts are allowed. This is not recommended and a security risk."
  3927. }
  3928. ]
  3929. },
  3930. "headers": {
  3931. "type": "object",
  3932. "description": "Custom HTTP headers to be added to all responses.",
  3933. "propertyNames": {
  3934. "pattern": "^[-_A-Za-z0-9]+$"
  3935. },
  3936. "additionalProperties": {
  3937. "type": "string"
  3938. }
  3939. },
  3940. "open": {
  3941. "type": "boolean",
  3942. "description": "Opens the url in default browser.",
  3943. "default": false,
  3944. "alias": "o"
  3945. },
  3946. "verbose": {
  3947. "type": "boolean",
  3948. "description": "Adds more details to output logging."
  3949. },
  3950. "liveReload": {
  3951. "type": "boolean",
  3952. "description": "Whether to reload the page on change, using live-reload.",
  3953. "default": true
  3954. },
  3955. "servePath": {
  3956. "type": "string",
  3957. "description": "The pathname where the application will be served."
  3958. },
  3959. "hmr": {
  3960. "type": "boolean",
  3961. "description": "Enable hot module replacement. Defaults to the value of 'liveReload'. Currently, only global and component stylesheets are supported."
  3962. },
  3963. "watch": {
  3964. "type": "boolean",
  3965. "description": "Rebuild on change.",
  3966. "default": true
  3967. },
  3968. "poll": {
  3969. "type": "number",
  3970. "description": "Enable and define the file watching poll time period in milliseconds."
  3971. },
  3972. "inspect": {
  3973. "default": false,
  3974. "description": "Activate debugging inspector. This option only has an effect when 'SSR' or 'SSG' are enabled.",
  3975. "oneOf": [
  3976. {
  3977. "type": "string",
  3978. "description": "Activate the inspector on host and port in the format of `[[host:]port]`. See the security warning in https://nodejs.org/docs/latest-v22.x/api/cli.html#warning-binding-inspector-to-a-public-ipport-combination-is-insecure regarding the host parameter usage."
  3979. },
  3980. {
  3981. "type": "boolean"
  3982. }
  3983. ]
  3984. },
  3985. "prebundle": {
  3986. "description": "Enable and control the Vite-based development server's prebundling capabilities. To enable prebundling, the Angular CLI cache must also be enabled.",
  3987. "default": true,
  3988. "oneOf": [
  3989. {
  3990. "type": "boolean"
  3991. },
  3992. {
  3993. "type": "object",
  3994. "properties": {
  3995. "exclude": {
  3996. "description": "List of package imports that should not be prebundled by the development server. The packages will be bundled into the application code itself. Note: specifying `@foo/bar` marks all paths within the `@foo/bar` package as excluded, including sub-paths like `@foo/bar/baz`.",
  3997. "type": "array",
  3998. "items": {
  3999. "type": "string"
  4000. }
  4001. }
  4002. },
  4003. "additionalProperties": false
  4004. }
  4005. ]
  4006. }
  4007. },
  4008. "additionalProperties": false
  4009. },
  4010. "AngularDevkitBuildAngularBuildersDevServerSchema": {
  4011. "title": "Dev Server Target",
  4012. "description": "Dev Server target options for Build Facade.",
  4013. "type": "object",
  4014. "properties": {
  4015. "buildTarget": {
  4016. "type": "string",
  4017. "description": "A build builder target to serve in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
  4018. "pattern": "^[^:\\s]*:[^:\\s]*(:[^\\s]+)?$"
  4019. },
  4020. "port": {
  4021. "type": "number",
  4022. "description": "Port to listen on.",
  4023. "default": 4200
  4024. },
  4025. "host": {
  4026. "type": "string",
  4027. "description": "Host to listen on.",
  4028. "default": "localhost"
  4029. },
  4030. "proxyConfig": {
  4031. "type": "string",
  4032. "description": "Proxy configuration file. For more information, see https://angular.dev/tools/cli/serve#proxying-to-a-backend-server."
  4033. },
  4034. "ssl": {
  4035. "type": "boolean",
  4036. "description": "Serve using HTTPS.",
  4037. "default": false
  4038. },
  4039. "sslKey": {
  4040. "type": "string",
  4041. "description": "SSL key to use for serving HTTPS."
  4042. },
  4043. "sslCert": {
  4044. "type": "string",
  4045. "description": "SSL certificate to use for serving HTTPS."
  4046. },
  4047. "headers": {
  4048. "type": "object",
  4049. "description": "Custom HTTP headers to be added to all responses.",
  4050. "propertyNames": {
  4051. "pattern": "^[-_A-Za-z0-9]+$"
  4052. },
  4053. "additionalProperties": {
  4054. "type": "string"
  4055. }
  4056. },
  4057. "open": {
  4058. "type": "boolean",
  4059. "description": "Opens the url in default browser.",
  4060. "default": false,
  4061. "alias": "o"
  4062. },
  4063. "verbose": {
  4064. "type": "boolean",
  4065. "description": "Adds more details to output logging."
  4066. },
  4067. "liveReload": {
  4068. "type": "boolean",
  4069. "description": "Whether to reload the page on change, using live-reload.",
  4070. "default": true
  4071. },
  4072. "publicHost": {
  4073. "type": "string",
  4074. "description": "The URL that the browser client (or live-reload client, if enabled) should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies. This option has no effect when using the 'application' or other esbuild-based builders."
  4075. },
  4076. "allowedHosts": {
  4077. "type": "array",
  4078. "description": "List of hosts that are allowed to access the dev server.",
  4079. "default": [],
  4080. "items": {
  4081. "type": "string"
  4082. }
  4083. },
  4084. "servePath": {
  4085. "type": "string",
  4086. "description": "The pathname where the application will be served."
  4087. },
  4088. "disableHostCheck": {
  4089. "type": "boolean",
  4090. "description": "Don't verify connected clients are part of allowed hosts.",
  4091. "default": false
  4092. },
  4093. "hmr": {
  4094. "type": "boolean",
  4095. "description": "Enable hot module replacement."
  4096. },
  4097. "watch": {
  4098. "type": "boolean",
  4099. "description": "Rebuild on change.",
  4100. "default": true
  4101. },
  4102. "poll": {
  4103. "type": "number",
  4104. "description": "Enable and define the file watching poll time period in milliseconds."
  4105. },
  4106. "inspect": {
  4107. "default": false,
  4108. "description": "Activate debugging inspector. This option only has an effect when 'SSR' or 'SSG' are enabled.",
  4109. "oneOf": [
  4110. {
  4111. "type": "string",
  4112. "description": "Activate the inspector on host and port in the format of `[[host:]port]`. See the security warning in https://nodejs.org/docs/latest-v22.x/api/cli.html#warning-binding-inspector-to-a-public-ipport-combination-is-insecure regarding the host parameter usage."
  4113. },
  4114. {
  4115. "type": "boolean"
  4116. }
  4117. ]
  4118. },
  4119. "forceEsbuild": {
  4120. "type": "boolean",
  4121. "description": "Force the development server to use the 'browser-esbuild' builder when building.",
  4122. "default": false
  4123. },
  4124. "prebundle": {
  4125. "description": "Enable and control the Vite-based development server's prebundling capabilities. To enable prebundling, the Angular CLI cache must also be enabled. This option has no effect when using the 'browser' or other Webpack-based builders.",
  4126. "oneOf": [
  4127. {
  4128. "type": "boolean"
  4129. },
  4130. {
  4131. "type": "object",
  4132. "properties": {
  4133. "exclude": {
  4134. "description": "List of package imports that should not be prebundled by the development server. The packages will be bundled into the application code itself.",
  4135. "type": "array",
  4136. "items": {
  4137. "type": "string"
  4138. }
  4139. }
  4140. },
  4141. "additionalProperties": false
  4142. }
  4143. ]
  4144. }
  4145. },
  4146. "additionalProperties": false
  4147. },
  4148. "AngularBuildBuildersExtractI18nSchema": {
  4149. "title": "Extract i18n Target",
  4150. "description": "Extract i18n target options for Build Facade.",
  4151. "type": "object",
  4152. "properties": {
  4153. "buildTarget": {
  4154. "type": "string",
  4155. "description": "A builder target to extract i18n messages in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
  4156. "pattern": "^[^:\\s]*:[^:\\s]*(:[^\\s]+)?$"
  4157. },
  4158. "format": {
  4159. "type": "string",
  4160. "description": "Output format for the generated file.",
  4161. "default": "xlf",
  4162. "enum": [
  4163. "xmb",
  4164. "xlf",
  4165. "xlif",
  4166. "xliff",
  4167. "xlf2",
  4168. "xliff2",
  4169. "json",
  4170. "arb",
  4171. "legacy-migrate"
  4172. ]
  4173. },
  4174. "progress": {
  4175. "type": "boolean",
  4176. "description": "Log progress to the console.",
  4177. "default": true
  4178. },
  4179. "outputPath": {
  4180. "type": "string",
  4181. "description": "Path where output will be placed."
  4182. },
  4183. "outFile": {
  4184. "type": "string",
  4185. "description": "Name of the file to output."
  4186. },
  4187. "i18nDuplicateTranslation": {
  4188. "type": "string",
  4189. "description": "How to handle duplicate translations.",
  4190. "enum": [
  4191. "error",
  4192. "warning",
  4193. "ignore"
  4194. ]
  4195. }
  4196. },
  4197. "additionalProperties": false
  4198. },
  4199. "AngularDevkitBuildAngularBuildersExtractI18nSchema": {
  4200. "title": "Extract i18n Target",
  4201. "description": "Extract i18n target options for Build Facade.",
  4202. "type": "object",
  4203. "properties": {
  4204. "buildTarget": {
  4205. "type": "string",
  4206. "description": "A builder target to extract i18n messages in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
  4207. "pattern": "^[^:\\s]*:[^:\\s]*(:[^\\s]+)?$"
  4208. },
  4209. "format": {
  4210. "type": "string",
  4211. "description": "Output format for the generated file.",
  4212. "default": "xlf",
  4213. "enum": [
  4214. "xmb",
  4215. "xlf",
  4216. "xlif",
  4217. "xliff",
  4218. "xlf2",
  4219. "xliff2",
  4220. "json",
  4221. "arb",
  4222. "legacy-migrate"
  4223. ]
  4224. },
  4225. "progress": {
  4226. "type": "boolean",
  4227. "description": "Log progress to the console.",
  4228. "default": true
  4229. },
  4230. "outputPath": {
  4231. "type": "string",
  4232. "description": "Path where output will be placed."
  4233. },
  4234. "outFile": {
  4235. "type": "string",
  4236. "description": "Name of the file to output."
  4237. },
  4238. "i18nDuplicateTranslation": {
  4239. "type": "string",
  4240. "description": "How to handle duplicate translations.",
  4241. "enum": [
  4242. "error",
  4243. "warning",
  4244. "ignore"
  4245. ]
  4246. }
  4247. },
  4248. "additionalProperties": false
  4249. },
  4250. "AngularBuildBuildersUnitTestSchema": {
  4251. "title": "Unit testing",
  4252. "description": "Unit testing options for Angular applications.",
  4253. "type": "object",
  4254. "properties": {
  4255. "buildTarget": {
  4256. "type": "string",
  4257. "description": "A build builder target to serve in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
  4258. "pattern": "^[^:\\s]*:[^:\\s]*(:[^\\s]+)?$"
  4259. },
  4260. "tsConfig": {
  4261. "type": "string",
  4262. "description": "The name of the TypeScript configuration file."
  4263. },
  4264. "runner": {
  4265. "type": "string",
  4266. "description": "The name of the test runner to use for test execution.",
  4267. "enum": [
  4268. "karma",
  4269. "vitest"
  4270. ]
  4271. },
  4272. "browsers": {
  4273. "description": "A list of browsers to use for test execution. If undefined, jsdom on Node.js will be used instead of a browser.",
  4274. "type": "array",
  4275. "items": {
  4276. "type": "string"
  4277. },
  4278. "minItems": 1
  4279. },
  4280. "include": {
  4281. "type": "array",
  4282. "items": {
  4283. "type": "string"
  4284. },
  4285. "default": [
  4286. "**/*.spec.ts"
  4287. ],
  4288. "description": "Globs of files to include, relative to project root. \nThere are 2 special cases:\n - when a path to directory is provided, all spec files ending \".spec.@(ts|tsx)\" will be included\n - when a path to a file is provided, and a matching spec file exists it will be included instead."
  4289. },
  4290. "exclude": {
  4291. "type": "array",
  4292. "items": {
  4293. "type": "string"
  4294. },
  4295. "default": [],
  4296. "description": "Globs of files to exclude, relative to the project root."
  4297. },
  4298. "watch": {
  4299. "type": "boolean",
  4300. "description": "Run build when files change."
  4301. },
  4302. "debug": {
  4303. "type": "boolean",
  4304. "description": "Initialize the test runner to support using the Node Inspector for test debugging.",
  4305. "default": false
  4306. },
  4307. "codeCoverage": {
  4308. "type": "boolean",
  4309. "description": "Output a code coverage report.",
  4310. "default": false
  4311. },
  4312. "codeCoverageExclude": {
  4313. "type": "array",
  4314. "description": "Globs to exclude from code coverage.",
  4315. "items": {
  4316. "type": "string"
  4317. },
  4318. "default": []
  4319. },
  4320. "reporters": {
  4321. "type": "array",
  4322. "description": "Test runner reporters to use. Directly passed to the test runner.",
  4323. "items": {
  4324. "type": "string"
  4325. }
  4326. },
  4327. "providersFile": {
  4328. "type": "string",
  4329. "description": "TypeScript file that exports an array of Angular providers to use during test execution. The array must be a default export.",
  4330. "minLength": 1
  4331. }
  4332. },
  4333. "additionalProperties": false
  4334. },
  4335. "AngularBuildBuildersKarmaSchema": {
  4336. "title": "Karma Target",
  4337. "description": "Karma target options for Build Facade.",
  4338. "type": "object",
  4339. "properties": {
  4340. "main": {
  4341. "type": "string",
  4342. "description": "The name of the main entry-point file."
  4343. },
  4344. "tsConfig": {
  4345. "type": "string",
  4346. "description": "The name of the TypeScript configuration file."
  4347. },
  4348. "karmaConfig": {
  4349. "type": "string",
  4350. "description": "The name of the Karma configuration file."
  4351. },
  4352. "polyfills": {
  4353. "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.",
  4354. "type": "array",
  4355. "items": {
  4356. "type": "string",
  4357. "uniqueItems": true
  4358. },
  4359. "default": []
  4360. },
  4361. "assets": {
  4362. "type": "array",
  4363. "description": "List of static application assets.",
  4364. "default": [],
  4365. "items": {
  4366. "$ref": "#/definitions/AngularBuildBuildersKarmaSchema/definitions/assetPattern"
  4367. }
  4368. },
  4369. "scripts": {
  4370. "description": "Global scripts to be included in the build.",
  4371. "type": "array",
  4372. "default": [],
  4373. "items": {
  4374. "oneOf": [
  4375. {
  4376. "type": "object",
  4377. "properties": {
  4378. "input": {
  4379. "type": "string",
  4380. "description": "The file to include.",
  4381. "pattern": "\\.[cm]?jsx?$"
  4382. },
  4383. "bundleName": {
  4384. "type": "string",
  4385. "pattern": "^[\\w\\-.]*$",
  4386. "description": "The bundle name for this extra entry point."
  4387. },
  4388. "inject": {
  4389. "type": "boolean",
  4390. "description": "If the bundle will be referenced in the HTML file.",
  4391. "default": true
  4392. }
  4393. },
  4394. "additionalProperties": false
  4395. },
  4396. {
  4397. "type": "string",
  4398. "description": "The file to include.",
  4399. "pattern": "\\.[cm]?jsx?$"
  4400. }
  4401. ]
  4402. }
  4403. },
  4404. "styles": {
  4405. "description": "Global styles to be included in the build.",
  4406. "type": "array",
  4407. "default": [],
  4408. "items": {
  4409. "oneOf": [
  4410. {
  4411. "type": "object",
  4412. "properties": {
  4413. "input": {
  4414. "type": "string",
  4415. "description": "The file to include.",
  4416. "pattern": "\\.(?:css|scss|sass|less)$"
  4417. },
  4418. "bundleName": {
  4419. "type": "string",
  4420. "pattern": "^[\\w\\-.]*$",
  4421. "description": "The bundle name for this extra entry point."
  4422. },
  4423. "inject": {
  4424. "type": "boolean",
  4425. "description": "If the bundle will be referenced in the HTML file.",
  4426. "default": true
  4427. }
  4428. },
  4429. "additionalProperties": false
  4430. },
  4431. {
  4432. "type": "string",
  4433. "description": "The file to include.",
  4434. "pattern": "\\.(?:css|scss|sass|less)$"
  4435. }
  4436. ]
  4437. }
  4438. },
  4439. "inlineStyleLanguage": {
  4440. "description": "The stylesheet language to use for the application's inline component styles.",
  4441. "type": "string",
  4442. "default": "css",
  4443. "enum": [
  4444. "css",
  4445. "less",
  4446. "sass",
  4447. "scss"
  4448. ]
  4449. },
  4450. "stylePreprocessorOptions": {
  4451. "description": "Options to pass to style preprocessors.",
  4452. "type": "object",
  4453. "properties": {
  4454. "includePaths": {
  4455. "description": "Paths to include. Paths will be resolved to workspace root.",
  4456. "type": "array",
  4457. "items": {
  4458. "type": "string"
  4459. },
  4460. "default": []
  4461. },
  4462. "sass": {
  4463. "description": "Options to pass to the sass preprocessor.",
  4464. "type": "object",
  4465. "properties": {
  4466. "fatalDeprecations": {
  4467. "description": "A set of deprecations to treat as fatal. If a deprecation warning of any provided type is encountered during compilation, the compiler will error instead. If a Version is provided, then all deprecations that were active in that compiler version will be treated as fatal.",
  4468. "type": "array",
  4469. "items": {
  4470. "type": "string"
  4471. }
  4472. },
  4473. "silenceDeprecations": {
  4474. "description": " A set of active deprecations to ignore. If a deprecation warning of any provided type is encountered during compilation, the compiler will ignore it instead.",
  4475. "type": "array",
  4476. "items": {
  4477. "type": "string"
  4478. }
  4479. },
  4480. "futureDeprecations": {
  4481. "description": "A set of future deprecations to opt into early. Future deprecations passed here will be treated as active by the compiler, emitting warnings as necessary.",
  4482. "type": "array",
  4483. "items": {
  4484. "type": "string"
  4485. }
  4486. }
  4487. },
  4488. "additionalProperties": false
  4489. }
  4490. },
  4491. "additionalProperties": false
  4492. },
  4493. "externalDependencies": {
  4494. "description": "Exclude the listed external dependencies from being bundled into the bundle. Instead, the created bundle relies on these dependencies to be available during runtime.",
  4495. "type": "array",
  4496. "items": {
  4497. "type": "string"
  4498. },
  4499. "default": []
  4500. },
  4501. "loader": {
  4502. "description": "Defines the type of loader to use with a specified file extension when used with a JavaScript `import`. `text` inlines the content as a string; `binary` inlines the content as a Uint8Array; `file` emits the file and provides the runtime location of the file; `empty` considers the content to be empty and not include it in bundles.",
  4503. "type": "object",
  4504. "patternProperties": {
  4505. "^\\.\\S+$": {
  4506. "enum": [
  4507. "text",
  4508. "binary",
  4509. "file",
  4510. "empty"
  4511. ]
  4512. }
  4513. }
  4514. },
  4515. "define": {
  4516. "description": "Defines global identifiers that will be replaced with a specified constant value when found in any JavaScript or TypeScript code including libraries. The value will be used directly. String values must be put in quotes. Identifiers within Angular metadata such as Component Decorators will not be replaced.",
  4517. "type": "object",
  4518. "additionalProperties": {
  4519. "type": "string"
  4520. }
  4521. },
  4522. "include": {
  4523. "type": "array",
  4524. "items": {
  4525. "type": "string"
  4526. },
  4527. "default": [
  4528. "**/*.spec.ts"
  4529. ],
  4530. "description": "Globs of files to include, relative to project root. \nThere are 2 special cases:\n - when a path to directory is provided, all spec files ending \".spec.@(ts|tsx)\" will be included\n - when a path to a file is provided, and a matching spec file exists it will be included instead."
  4531. },
  4532. "exclude": {
  4533. "type": "array",
  4534. "items": {
  4535. "type": "string"
  4536. },
  4537. "default": [],
  4538. "description": "Globs of files to exclude, relative to the project root."
  4539. },
  4540. "sourceMap": {
  4541. "description": "Output source maps for scripts and styles. For more information, see https://angular.dev/reference/configs/workspace-config#source-map-configuration.",
  4542. "default": true,
  4543. "oneOf": [
  4544. {
  4545. "type": "object",
  4546. "properties": {
  4547. "scripts": {
  4548. "type": "boolean",
  4549. "description": "Output source maps for all scripts.",
  4550. "default": true
  4551. },
  4552. "styles": {
  4553. "type": "boolean",
  4554. "description": "Output source maps for all styles.",
  4555. "default": true
  4556. },
  4557. "vendor": {
  4558. "type": "boolean",
  4559. "description": "Resolve vendor packages source maps.",
  4560. "default": false
  4561. }
  4562. },
  4563. "additionalProperties": false
  4564. },
  4565. {
  4566. "type": "boolean"
  4567. }
  4568. ]
  4569. },
  4570. "progress": {
  4571. "type": "boolean",
  4572. "description": "Log progress to the console while building.",
  4573. "default": true
  4574. },
  4575. "watch": {
  4576. "type": "boolean",
  4577. "description": "Run build when files change."
  4578. },
  4579. "poll": {
  4580. "type": "number",
  4581. "description": "Enable and define the file watching poll time period in milliseconds."
  4582. },
  4583. "preserveSymlinks": {
  4584. "type": "boolean",
  4585. "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
  4586. },
  4587. "browsers": {
  4588. "description": "Override which browsers tests are run against. Set to `false` to not use any browser.",
  4589. "oneOf": [
  4590. {
  4591. "type": "string",
  4592. "description": "A comma seperate list of browsers to run tests against."
  4593. },
  4594. {
  4595. "const": false,
  4596. "type": "boolean",
  4597. "description": "Does use run tests against a browser."
  4598. }
  4599. ]
  4600. },
  4601. "codeCoverage": {
  4602. "type": "boolean",
  4603. "description": "Output a code coverage report.",
  4604. "default": false
  4605. },
  4606. "codeCoverageExclude": {
  4607. "type": "array",
  4608. "description": "Globs to exclude from code coverage.",
  4609. "items": {
  4610. "type": "string"
  4611. },
  4612. "default": []
  4613. },
  4614. "fileReplacements": {
  4615. "description": "Replace compilation source files with other compilation source files in the build.",
  4616. "type": "array",
  4617. "items": {
  4618. "$ref": "#/definitions/AngularBuildBuildersKarmaSchema/definitions/fileReplacement"
  4619. },
  4620. "default": []
  4621. },
  4622. "reporters": {
  4623. "type": "array",
  4624. "description": "Karma reporters to use. Directly passed to the karma runner.",
  4625. "items": {
  4626. "type": "string"
  4627. }
  4628. },
  4629. "webWorkerTsConfig": {
  4630. "type": "string",
  4631. "description": "TypeScript configuration for Web Worker modules."
  4632. },
  4633. "aot": {
  4634. "type": "boolean",
  4635. "description": "Run tests using Ahead of Time compilation.",
  4636. "default": false
  4637. }
  4638. },
  4639. "additionalProperties": false,
  4640. "definitions": {
  4641. "assetPattern": {
  4642. "oneOf": [
  4643. {
  4644. "type": "object",
  4645. "properties": {
  4646. "glob": {
  4647. "type": "string",
  4648. "description": "The pattern to match."
  4649. },
  4650. "input": {
  4651. "type": "string",
  4652. "description": "The input directory path in which to apply 'glob'. Defaults to the project root."
  4653. },
  4654. "output": {
  4655. "type": "string",
  4656. "default": "",
  4657. "description": "Absolute path within the output."
  4658. },
  4659. "ignore": {
  4660. "description": "An array of globs to ignore.",
  4661. "type": "array",
  4662. "items": {
  4663. "type": "string"
  4664. }
  4665. }
  4666. },
  4667. "additionalProperties": false
  4668. },
  4669. {
  4670. "type": "string"
  4671. }
  4672. ]
  4673. },
  4674. "fileReplacement": {
  4675. "type": "object",
  4676. "properties": {
  4677. "replace": {
  4678. "type": "string",
  4679. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  4680. },
  4681. "with": {
  4682. "type": "string",
  4683. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  4684. }
  4685. },
  4686. "additionalProperties": false
  4687. }
  4688. }
  4689. },
  4690. "AngularDevkitBuildAngularBuildersKarmaSchema": {
  4691. "title": "Karma Target",
  4692. "description": "Karma target options for Build Facade.",
  4693. "type": "object",
  4694. "properties": {
  4695. "main": {
  4696. "type": "string",
  4697. "description": "The name of the main entry-point file."
  4698. },
  4699. "tsConfig": {
  4700. "type": "string",
  4701. "description": "The name of the TypeScript configuration file."
  4702. },
  4703. "karmaConfig": {
  4704. "type": "string",
  4705. "description": "The name of the Karma configuration file."
  4706. },
  4707. "polyfills": {
  4708. "description": "Polyfills to be included in the build.",
  4709. "oneOf": [
  4710. {
  4711. "type": "array",
  4712. "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.",
  4713. "items": {
  4714. "type": "string",
  4715. "uniqueItems": true
  4716. },
  4717. "default": []
  4718. },
  4719. {
  4720. "type": "string",
  4721. "description": "The full path for the polyfills file, relative to the current workspace or a module specifier. Example: 'zone.js'."
  4722. }
  4723. ]
  4724. },
  4725. "assets": {
  4726. "type": "array",
  4727. "description": "List of static application assets.",
  4728. "default": [],
  4729. "items": {
  4730. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersKarmaSchema/definitions/assetPattern"
  4731. }
  4732. },
  4733. "scripts": {
  4734. "description": "Global scripts to be included in the build.",
  4735. "type": "array",
  4736. "default": [],
  4737. "items": {
  4738. "oneOf": [
  4739. {
  4740. "type": "object",
  4741. "properties": {
  4742. "input": {
  4743. "type": "string",
  4744. "description": "The file to include.",
  4745. "pattern": "\\.[cm]?jsx?$"
  4746. },
  4747. "bundleName": {
  4748. "type": "string",
  4749. "pattern": "^[\\w\\-.]*$",
  4750. "description": "The bundle name for this extra entry point."
  4751. },
  4752. "inject": {
  4753. "type": "boolean",
  4754. "description": "If the bundle will be referenced in the HTML file.",
  4755. "default": true
  4756. }
  4757. },
  4758. "additionalProperties": false
  4759. },
  4760. {
  4761. "type": "string",
  4762. "description": "The file to include.",
  4763. "pattern": "\\.[cm]?jsx?$"
  4764. }
  4765. ]
  4766. }
  4767. },
  4768. "styles": {
  4769. "description": "Global styles to be included in the build.",
  4770. "type": "array",
  4771. "default": [],
  4772. "items": {
  4773. "oneOf": [
  4774. {
  4775. "type": "object",
  4776. "properties": {
  4777. "input": {
  4778. "type": "string",
  4779. "description": "The file to include.",
  4780. "pattern": "\\.(?:css|scss|sass|less)$"
  4781. },
  4782. "bundleName": {
  4783. "type": "string",
  4784. "pattern": "^[\\w\\-.]*$",
  4785. "description": "The bundle name for this extra entry point."
  4786. },
  4787. "inject": {
  4788. "type": "boolean",
  4789. "description": "If the bundle will be referenced in the HTML file.",
  4790. "default": true
  4791. }
  4792. },
  4793. "additionalProperties": false
  4794. },
  4795. {
  4796. "type": "string",
  4797. "description": "The file to include.",
  4798. "pattern": "\\.(?:css|scss|sass|less)$"
  4799. }
  4800. ]
  4801. }
  4802. },
  4803. "inlineStyleLanguage": {
  4804. "description": "The stylesheet language to use for the application's inline component styles.",
  4805. "type": "string",
  4806. "default": "css",
  4807. "enum": [
  4808. "css",
  4809. "less",
  4810. "sass",
  4811. "scss"
  4812. ]
  4813. },
  4814. "stylePreprocessorOptions": {
  4815. "description": "Options to pass to style preprocessors",
  4816. "type": "object",
  4817. "properties": {
  4818. "includePaths": {
  4819. "description": "Paths to include. Paths will be resolved to workspace root.",
  4820. "type": "array",
  4821. "items": {
  4822. "type": "string"
  4823. },
  4824. "default": []
  4825. }
  4826. },
  4827. "additionalProperties": false
  4828. },
  4829. "include": {
  4830. "type": "array",
  4831. "items": {
  4832. "type": "string"
  4833. },
  4834. "default": [
  4835. "**/*.spec.ts"
  4836. ],
  4837. "description": "Globs of files to include, relative to project root. \nThere are 2 special cases:\n - when a path to directory is provided, all spec files ending \".spec.@(ts|tsx)\" will be included\n - when a path to a file is provided, and a matching spec file exists it will be included instead."
  4838. },
  4839. "exclude": {
  4840. "type": "array",
  4841. "items": {
  4842. "type": "string"
  4843. },
  4844. "default": [],
  4845. "description": "Globs of files to exclude, relative to the project root."
  4846. },
  4847. "sourceMap": {
  4848. "description": "Output source maps for scripts and styles. For more information, see https://angular.dev/reference/configs/workspace-config#source-map-configuration.",
  4849. "default": true,
  4850. "oneOf": [
  4851. {
  4852. "type": "object",
  4853. "properties": {
  4854. "scripts": {
  4855. "type": "boolean",
  4856. "description": "Output source maps for all scripts.",
  4857. "default": true
  4858. },
  4859. "styles": {
  4860. "type": "boolean",
  4861. "description": "Output source maps for all styles.",
  4862. "default": true
  4863. },
  4864. "vendor": {
  4865. "type": "boolean",
  4866. "description": "Resolve vendor packages source maps.",
  4867. "default": false
  4868. }
  4869. },
  4870. "additionalProperties": false
  4871. },
  4872. {
  4873. "type": "boolean"
  4874. }
  4875. ]
  4876. },
  4877. "progress": {
  4878. "type": "boolean",
  4879. "description": "Log progress to the console while building.",
  4880. "default": true
  4881. },
  4882. "watch": {
  4883. "type": "boolean",
  4884. "description": "Run build when files change."
  4885. },
  4886. "poll": {
  4887. "type": "number",
  4888. "description": "Enable and define the file watching poll time period in milliseconds."
  4889. },
  4890. "preserveSymlinks": {
  4891. "type": "boolean",
  4892. "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
  4893. },
  4894. "browsers": {
  4895. "description": "Override which browsers tests are run against. Set to `false` to not use any browser.",
  4896. "oneOf": [
  4897. {
  4898. "type": "string",
  4899. "description": "A comma seperate list of browsers to run tests against."
  4900. },
  4901. {
  4902. "const": false,
  4903. "type": "boolean",
  4904. "description": "Does use run tests against a browser."
  4905. }
  4906. ]
  4907. },
  4908. "codeCoverage": {
  4909. "type": "boolean",
  4910. "description": "Output a code coverage report.",
  4911. "default": false
  4912. },
  4913. "codeCoverageExclude": {
  4914. "type": "array",
  4915. "description": "Globs to exclude from code coverage.",
  4916. "items": {
  4917. "type": "string"
  4918. },
  4919. "default": []
  4920. },
  4921. "fileReplacements": {
  4922. "description": "Replace compilation source files with other compilation source files in the build.",
  4923. "type": "array",
  4924. "items": {
  4925. "oneOf": [
  4926. {
  4927. "type": "object",
  4928. "properties": {
  4929. "src": {
  4930. "type": "string"
  4931. },
  4932. "replaceWith": {
  4933. "type": "string"
  4934. }
  4935. },
  4936. "additionalProperties": false
  4937. },
  4938. {
  4939. "type": "object",
  4940. "properties": {
  4941. "replace": {
  4942. "type": "string"
  4943. },
  4944. "with": {
  4945. "type": "string"
  4946. }
  4947. },
  4948. "additionalProperties": false
  4949. }
  4950. ]
  4951. },
  4952. "default": []
  4953. },
  4954. "reporters": {
  4955. "type": "array",
  4956. "description": "Karma reporters to use. Directly passed to the karma runner.",
  4957. "items": {
  4958. "type": "string"
  4959. }
  4960. },
  4961. "builderMode": {
  4962. "type": "string",
  4963. "description": "Determines how to build the code under test. If set to 'detect', attempts to follow the development builder.",
  4964. "enum": [
  4965. "detect",
  4966. "browser",
  4967. "application"
  4968. ],
  4969. "default": "browser"
  4970. },
  4971. "webWorkerTsConfig": {
  4972. "type": "string",
  4973. "description": "TypeScript configuration for Web Worker modules."
  4974. },
  4975. "aot": {
  4976. "type": "boolean",
  4977. "description": "Run tests using Ahead of Time compilation.",
  4978. "default": false
  4979. }
  4980. },
  4981. "additionalProperties": false,
  4982. "definitions": {
  4983. "assetPattern": {
  4984. "oneOf": [
  4985. {
  4986. "type": "object",
  4987. "properties": {
  4988. "glob": {
  4989. "type": "string",
  4990. "description": "The pattern to match."
  4991. },
  4992. "input": {
  4993. "type": "string",
  4994. "description": "The input directory path in which to apply 'glob'. Defaults to the project root."
  4995. },
  4996. "output": {
  4997. "type": "string",
  4998. "default": "",
  4999. "description": "Absolute path within the output."
  5000. },
  5001. "ignore": {
  5002. "description": "An array of globs to ignore.",
  5003. "type": "array",
  5004. "items": {
  5005. "type": "string"
  5006. }
  5007. }
  5008. },
  5009. "additionalProperties": false
  5010. },
  5011. {
  5012. "type": "string"
  5013. }
  5014. ]
  5015. }
  5016. }
  5017. },
  5018. "AngularDevkitBuildAngularBuildersJestSchema": {
  5019. "title": "Jest browser schema for Build Facade.",
  5020. "description": "Jest target options",
  5021. "type": "object",
  5022. "properties": {
  5023. "include": {
  5024. "type": "array",
  5025. "items": {
  5026. "type": "string"
  5027. },
  5028. "default": [
  5029. "**/*.spec.ts"
  5030. ],
  5031. "description": "Globs of files to include, relative to project root."
  5032. },
  5033. "exclude": {
  5034. "type": "array",
  5035. "items": {
  5036. "type": "string"
  5037. },
  5038. "default": [],
  5039. "description": "Globs of files to exclude, relative to the project root."
  5040. },
  5041. "tsConfig": {
  5042. "type": "string",
  5043. "description": "The name of the TypeScript configuration file."
  5044. },
  5045. "polyfills": {
  5046. "type": "array",
  5047. "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.",
  5048. "items": {
  5049. "type": "string",
  5050. "uniqueItems": true
  5051. },
  5052. "default": []
  5053. },
  5054. "aot": {
  5055. "type": "boolean",
  5056. "description": "Run tests using Ahead of Time compilation.",
  5057. "default": false
  5058. }
  5059. },
  5060. "additionalProperties": false
  5061. },
  5062. "AngularDevkitBuildAngularBuildersWebTestRunnerSchema": {
  5063. "title": "Web Test Runner Target",
  5064. "description": "Web Test Runner target options for Build Facade.",
  5065. "type": "object",
  5066. "properties": {
  5067. "main": {
  5068. "type": "string",
  5069. "description": "The name of the main entry-point file."
  5070. },
  5071. "tsConfig": {
  5072. "type": "string",
  5073. "description": "The name of the TypeScript configuration file."
  5074. },
  5075. "polyfills": {
  5076. "description": "Polyfills to be included in the build.",
  5077. "oneOf": [
  5078. {
  5079. "type": "array",
  5080. "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.",
  5081. "items": {
  5082. "type": "string",
  5083. "uniqueItems": true
  5084. },
  5085. "default": []
  5086. },
  5087. {
  5088. "type": "string",
  5089. "description": "The full path for the polyfills file, relative to the current workspace or a module specifier. Example: 'zone.js'."
  5090. }
  5091. ]
  5092. },
  5093. "assets": {
  5094. "type": "array",
  5095. "description": "List of static application assets.",
  5096. "default": [],
  5097. "items": {
  5098. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersWebTestRunnerSchema/definitions/assetPattern"
  5099. }
  5100. },
  5101. "scripts": {
  5102. "description": "Global scripts to be included in the build.",
  5103. "type": "array",
  5104. "default": [],
  5105. "items": {
  5106. "oneOf": [
  5107. {
  5108. "type": "object",
  5109. "properties": {
  5110. "input": {
  5111. "type": "string",
  5112. "description": "The file to include.",
  5113. "pattern": "\\.[cm]?jsx?$"
  5114. },
  5115. "bundleName": {
  5116. "type": "string",
  5117. "pattern": "^[\\w\\-.]*$",
  5118. "description": "The bundle name for this extra entry point."
  5119. },
  5120. "inject": {
  5121. "type": "boolean",
  5122. "description": "If the bundle will be referenced in the HTML file.",
  5123. "default": true
  5124. }
  5125. },
  5126. "additionalProperties": false
  5127. },
  5128. {
  5129. "type": "string",
  5130. "description": "The file to include.",
  5131. "pattern": "\\.[cm]?jsx?$"
  5132. }
  5133. ]
  5134. }
  5135. },
  5136. "styles": {
  5137. "description": "Global styles to be included in the build.",
  5138. "type": "array",
  5139. "default": [],
  5140. "items": {
  5141. "oneOf": [
  5142. {
  5143. "type": "object",
  5144. "properties": {
  5145. "input": {
  5146. "type": "string",
  5147. "description": "The file to include.",
  5148. "pattern": "\\.(?:css|scss|sass|less)$"
  5149. },
  5150. "bundleName": {
  5151. "type": "string",
  5152. "pattern": "^[\\w\\-.]*$",
  5153. "description": "The bundle name for this extra entry point."
  5154. },
  5155. "inject": {
  5156. "type": "boolean",
  5157. "description": "If the bundle will be referenced in the HTML file.",
  5158. "default": true
  5159. }
  5160. },
  5161. "additionalProperties": false
  5162. },
  5163. {
  5164. "type": "string",
  5165. "description": "The file to include.",
  5166. "pattern": "\\.(?:css|scss|sass|less)$"
  5167. }
  5168. ]
  5169. }
  5170. },
  5171. "inlineStyleLanguage": {
  5172. "description": "The stylesheet language to use for the application's inline component styles.",
  5173. "type": "string",
  5174. "default": "css",
  5175. "enum": [
  5176. "css",
  5177. "less",
  5178. "sass",
  5179. "scss"
  5180. ]
  5181. },
  5182. "stylePreprocessorOptions": {
  5183. "description": "Options to pass to style preprocessors",
  5184. "type": "object",
  5185. "properties": {
  5186. "includePaths": {
  5187. "description": "Paths to include. Paths will be resolved to workspace root.",
  5188. "type": "array",
  5189. "items": {
  5190. "type": "string"
  5191. },
  5192. "default": []
  5193. }
  5194. },
  5195. "additionalProperties": false
  5196. },
  5197. "include": {
  5198. "type": "array",
  5199. "items": {
  5200. "type": "string"
  5201. },
  5202. "default": [
  5203. "**/*.spec.ts"
  5204. ],
  5205. "description": "Globs of files to include, relative to project root. \nThere are 2 special cases:\n - when a path to directory is provided, all spec files ending \".spec.@(ts|tsx)\" will be included\n - when a path to a file is provided, and a matching spec file exists it will be included instead."
  5206. },
  5207. "exclude": {
  5208. "type": "array",
  5209. "items": {
  5210. "type": "string"
  5211. },
  5212. "default": [],
  5213. "description": "Globs of files to exclude, relative to the project root."
  5214. },
  5215. "sourceMap": {
  5216. "description": "Output source maps for scripts and styles. For more information, see https://angular.dev/reference/configs/workspace-config#source-map-configuration.",
  5217. "default": true,
  5218. "oneOf": [
  5219. {
  5220. "type": "object",
  5221. "properties": {
  5222. "scripts": {
  5223. "type": "boolean",
  5224. "description": "Output source maps for all scripts.",
  5225. "default": true
  5226. },
  5227. "styles": {
  5228. "type": "boolean",
  5229. "description": "Output source maps for all styles.",
  5230. "default": true
  5231. },
  5232. "vendor": {
  5233. "type": "boolean",
  5234. "description": "Resolve vendor packages source maps.",
  5235. "default": false
  5236. }
  5237. },
  5238. "additionalProperties": false
  5239. },
  5240. {
  5241. "type": "boolean"
  5242. }
  5243. ]
  5244. },
  5245. "progress": {
  5246. "type": "boolean",
  5247. "description": "Log progress to the console while building.",
  5248. "default": true
  5249. },
  5250. "watch": {
  5251. "type": "boolean",
  5252. "description": "Run build when files change."
  5253. },
  5254. "poll": {
  5255. "type": "number",
  5256. "description": "Enable and define the file watching poll time period in milliseconds."
  5257. },
  5258. "preserveSymlinks": {
  5259. "type": "boolean",
  5260. "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
  5261. },
  5262. "browsers": {
  5263. "type": "string",
  5264. "description": "Override which browsers tests are run against."
  5265. },
  5266. "codeCoverage": {
  5267. "type": "boolean",
  5268. "description": "Output a code coverage report.",
  5269. "default": false
  5270. },
  5271. "codeCoverageExclude": {
  5272. "type": "array",
  5273. "description": "Globs to exclude from code coverage.",
  5274. "items": {
  5275. "type": "string"
  5276. },
  5277. "default": []
  5278. },
  5279. "fileReplacements": {
  5280. "description": "Replace compilation source files with other compilation source files in the build.",
  5281. "type": "array",
  5282. "items": {
  5283. "oneOf": [
  5284. {
  5285. "type": "object",
  5286. "properties": {
  5287. "src": {
  5288. "type": "string"
  5289. },
  5290. "replaceWith": {
  5291. "type": "string"
  5292. }
  5293. },
  5294. "additionalProperties": false
  5295. },
  5296. {
  5297. "type": "object",
  5298. "properties": {
  5299. "replace": {
  5300. "type": "string"
  5301. },
  5302. "with": {
  5303. "type": "string"
  5304. }
  5305. },
  5306. "additionalProperties": false
  5307. }
  5308. ]
  5309. },
  5310. "default": []
  5311. },
  5312. "webWorkerTsConfig": {
  5313. "type": "string",
  5314. "description": "TypeScript configuration for Web Worker modules."
  5315. },
  5316. "aot": {
  5317. "type": "boolean",
  5318. "description": "Run tests using Ahead of Time compilation.",
  5319. "default": false
  5320. }
  5321. },
  5322. "additionalProperties": false,
  5323. "definitions": {
  5324. "assetPattern": {
  5325. "oneOf": [
  5326. {
  5327. "type": "object",
  5328. "properties": {
  5329. "glob": {
  5330. "type": "string",
  5331. "description": "The pattern to match."
  5332. },
  5333. "input": {
  5334. "type": "string",
  5335. "description": "The input directory path in which to apply 'glob'. Defaults to the project root."
  5336. },
  5337. "output": {
  5338. "type": "string",
  5339. "default": "",
  5340. "description": "Absolute path within the output."
  5341. },
  5342. "ignore": {
  5343. "description": "An array of globs to ignore.",
  5344. "type": "array",
  5345. "items": {
  5346. "type": "string"
  5347. }
  5348. }
  5349. },
  5350. "additionalProperties": false
  5351. },
  5352. {
  5353. "type": "string"
  5354. }
  5355. ]
  5356. }
  5357. }
  5358. },
  5359. "AngularDevkitBuildAngularBuildersPrerenderSchema": {
  5360. "title": "Prerender Target",
  5361. "type": "object",
  5362. "properties": {
  5363. "browserTarget": {
  5364. "type": "string",
  5365. "description": "Target to build.",
  5366. "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$"
  5367. },
  5368. "serverTarget": {
  5369. "type": "string",
  5370. "description": "Server target to use for prerendering the app.",
  5371. "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$"
  5372. },
  5373. "routesFile": {
  5374. "type": "string",
  5375. "description": "The path to a file that contains a list of all routes to prerender, separated by newlines. This option is useful if you want to prerender routes with parameterized URLs."
  5376. },
  5377. "routes": {
  5378. "type": "array",
  5379. "description": "The routes to render.",
  5380. "items": {
  5381. "minItems": 1,
  5382. "type": "string",
  5383. "uniqueItems": true
  5384. },
  5385. "default": []
  5386. },
  5387. "discoverRoutes": {
  5388. "type": "boolean",
  5389. "description": "Whether the builder should process the Angular Router configuration to find all unparameterized routes and prerender them.",
  5390. "default": true
  5391. }
  5392. },
  5393. "anyOf": [
  5394. {},
  5395. {}
  5396. ],
  5397. "additionalProperties": false
  5398. },
  5399. "AngularDevkitBuildAngularBuildersSsrDevServerSchema": {
  5400. "title": "SSR Dev Server Target",
  5401. "description": "SSR Dev Server target options for Build Facade.",
  5402. "type": "object",
  5403. "properties": {
  5404. "browserTarget": {
  5405. "type": "string",
  5406. "description": "Browser target to build.",
  5407. "pattern": ".+:.+(:.+)?"
  5408. },
  5409. "serverTarget": {
  5410. "type": "string",
  5411. "description": "Server target to build.",
  5412. "pattern": ".+:.+(:.+)?"
  5413. },
  5414. "host": {
  5415. "type": "string",
  5416. "description": "Host to listen on.",
  5417. "default": "localhost"
  5418. },
  5419. "port": {
  5420. "type": "number",
  5421. "default": 4200,
  5422. "description": "Port to start the development server at. Default is 4200. Pass 0 to get a dynamically assigned port."
  5423. },
  5424. "watch": {
  5425. "type": "boolean",
  5426. "description": "Rebuild on change.",
  5427. "default": true
  5428. },
  5429. "publicHost": {
  5430. "type": "string",
  5431. "description": "The URL that the browser client should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies."
  5432. },
  5433. "open": {
  5434. "type": "boolean",
  5435. "description": "Opens the url in default browser.",
  5436. "default": false,
  5437. "alias": "o"
  5438. },
  5439. "progress": {
  5440. "type": "boolean",
  5441. "description": "Log progress to the console while building."
  5442. },
  5443. "inspect": {
  5444. "type": "boolean",
  5445. "description": "Launch the development server in inspector mode and listen on address and port '127.0.0.1:9229'.",
  5446. "default": false
  5447. },
  5448. "ssl": {
  5449. "type": "boolean",
  5450. "description": "Serve using HTTPS.",
  5451. "default": false
  5452. },
  5453. "sslKey": {
  5454. "type": "string",
  5455. "description": "SSL key to use for serving HTTPS."
  5456. },
  5457. "sslCert": {
  5458. "type": "string",
  5459. "description": "SSL certificate to use for serving HTTPS."
  5460. },
  5461. "proxyConfig": {
  5462. "type": "string",
  5463. "description": "Proxy configuration file."
  5464. },
  5465. "verbose": {
  5466. "type": "boolean",
  5467. "description": "Adds more details to output logging."
  5468. }
  5469. },
  5470. "additionalProperties": false
  5471. },
  5472. "AngularDevkitBuildAngularBuildersServerSchema": {
  5473. "title": "Universal Target",
  5474. "type": "object",
  5475. "properties": {
  5476. "assets": {
  5477. "type": "array",
  5478. "description": "List of static application assets.",
  5479. "default": [],
  5480. "items": {
  5481. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersServerSchema/definitions/assetPattern"
  5482. }
  5483. },
  5484. "main": {
  5485. "type": "string",
  5486. "description": "The name of the main entry-point file."
  5487. },
  5488. "tsConfig": {
  5489. "type": "string",
  5490. "default": "tsconfig.app.json",
  5491. "description": "The name of the TypeScript configuration file."
  5492. },
  5493. "inlineStyleLanguage": {
  5494. "description": "The stylesheet language to use for the application's inline component styles.",
  5495. "type": "string",
  5496. "default": "css",
  5497. "enum": [
  5498. "css",
  5499. "less",
  5500. "sass",
  5501. "scss"
  5502. ]
  5503. },
  5504. "stylePreprocessorOptions": {
  5505. "description": "Options to pass to style preprocessors",
  5506. "type": "object",
  5507. "properties": {
  5508. "includePaths": {
  5509. "description": "Paths to include. Paths will be resolved to workspace root.",
  5510. "type": "array",
  5511. "items": {
  5512. "type": "string"
  5513. },
  5514. "default": []
  5515. }
  5516. },
  5517. "additionalProperties": false
  5518. },
  5519. "optimization": {
  5520. "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking and dead-code elimination. For more information, see https://angular.dev/reference/configs/workspace-config#optimization-configuration.",
  5521. "default": true,
  5522. "oneOf": [
  5523. {
  5524. "type": "object",
  5525. "properties": {
  5526. "scripts": {
  5527. "type": "boolean",
  5528. "description": "Enables optimization of the scripts output.",
  5529. "default": true
  5530. },
  5531. "styles": {
  5532. "type": "boolean",
  5533. "description": "Enables optimization of the styles output.",
  5534. "default": true
  5535. }
  5536. },
  5537. "additionalProperties": false
  5538. },
  5539. {
  5540. "type": "boolean"
  5541. }
  5542. ]
  5543. },
  5544. "fileReplacements": {
  5545. "description": "Replace compilation source files with other compilation source files in the build.",
  5546. "type": "array",
  5547. "items": {
  5548. "$ref": "#/definitions/AngularDevkitBuildAngularBuildersServerSchema/definitions/fileReplacement"
  5549. },
  5550. "default": []
  5551. },
  5552. "outputPath": {
  5553. "type": "string",
  5554. "description": "Path where output will be placed."
  5555. },
  5556. "resourcesOutputPath": {
  5557. "type": "string",
  5558. "description": "The path where style resources will be placed, relative to outputPath."
  5559. },
  5560. "sourceMap": {
  5561. "description": "Output source maps for scripts and styles. For more information, see https://angular.dev/reference/configs/workspace-config#source-map-configuration.",
  5562. "default": false,
  5563. "oneOf": [
  5564. {
  5565. "type": "object",
  5566. "properties": {
  5567. "scripts": {
  5568. "type": "boolean",
  5569. "description": "Output source maps for all scripts.",
  5570. "default": true
  5571. },
  5572. "styles": {
  5573. "type": "boolean",
  5574. "description": "Output source maps for all styles.",
  5575. "default": true
  5576. },
  5577. "hidden": {
  5578. "type": "boolean",
  5579. "description": "Output source maps used for error reporting tools.",
  5580. "default": false
  5581. },
  5582. "vendor": {
  5583. "type": "boolean",
  5584. "description": "Resolve vendor packages source maps.",
  5585. "default": false
  5586. }
  5587. },
  5588. "additionalProperties": false
  5589. },
  5590. {
  5591. "type": "boolean"
  5592. }
  5593. ]
  5594. },
  5595. "deployUrl": {
  5596. "type": "string",
  5597. "description": "Customize the base path for the URLs of resources in 'index.html' and component stylesheets. This option is only necessary for specific deployment scenarios, such as with Angular Elements or when utilizing different CDN locations."
  5598. },
  5599. "vendorChunk": {
  5600. "type": "boolean",
  5601. "description": "Generate a seperate bundle containing only vendor libraries. This option should only be used for development to reduce the incremental compilation time.",
  5602. "default": false
  5603. },
  5604. "verbose": {
  5605. "type": "boolean",
  5606. "description": "Adds more details to output logging.",
  5607. "default": false
  5608. },
  5609. "progress": {
  5610. "type": "boolean",
  5611. "description": "Log progress to the console while building.",
  5612. "default": true
  5613. },
  5614. "i18nMissingTranslation": {
  5615. "type": "string",
  5616. "description": "How to handle missing translations for i18n.",
  5617. "enum": [
  5618. "warning",
  5619. "error",
  5620. "ignore"
  5621. ],
  5622. "default": "warning"
  5623. },
  5624. "i18nDuplicateTranslation": {
  5625. "type": "string",
  5626. "description": "How to handle duplicate translations for i18n.",
  5627. "enum": [
  5628. "warning",
  5629. "error",
  5630. "ignore"
  5631. ],
  5632. "default": "warning"
  5633. },
  5634. "localize": {
  5635. "description": "Translate the bundles in one or more locales.",
  5636. "oneOf": [
  5637. {
  5638. "type": "boolean",
  5639. "description": "Translate all locales."
  5640. },
  5641. {
  5642. "type": "array",
  5643. "description": "List of locales ID's to translate.",
  5644. "minItems": 1,
  5645. "items": {
  5646. "type": "string",
  5647. "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$"
  5648. }
  5649. }
  5650. ]
  5651. },
  5652. "outputHashing": {
  5653. "type": "string",
  5654. "description": "Define the output filename cache-busting hashing mode.",
  5655. "default": "none",
  5656. "enum": [
  5657. "none",
  5658. "all",
  5659. "media",
  5660. "bundles"
  5661. ]
  5662. },
  5663. "deleteOutputPath": {
  5664. "type": "boolean",
  5665. "description": "Delete the output path before building.",
  5666. "default": true
  5667. },
  5668. "preserveSymlinks": {
  5669. "type": "boolean",
  5670. "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
  5671. },
  5672. "extractLicenses": {
  5673. "type": "boolean",
  5674. "description": "Extract all licenses in a separate file, in the case of production builds only.",
  5675. "default": true
  5676. },
  5677. "buildOptimizer": {
  5678. "type": "boolean",
  5679. "description": "Enables advanced build optimizations.",
  5680. "default": true
  5681. },
  5682. "namedChunks": {
  5683. "type": "boolean",
  5684. "description": "Use file name for lazy loaded chunks.",
  5685. "default": false
  5686. },
  5687. "externalDependencies": {
  5688. "description": "Exclude the listed external dependencies from being bundled into the bundle. Instead, the created bundle relies on these dependencies to be available during runtime.",
  5689. "type": "array",
  5690. "items": {
  5691. "type": "string"
  5692. },
  5693. "default": []
  5694. },
  5695. "statsJson": {
  5696. "type": "boolean",
  5697. "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.",
  5698. "default": false
  5699. },
  5700. "watch": {
  5701. "type": "boolean",
  5702. "description": "Run build when files change.",
  5703. "default": false
  5704. },
  5705. "poll": {
  5706. "type": "number",
  5707. "description": "Enable and define the file watching poll time period in milliseconds."
  5708. }
  5709. },
  5710. "additionalProperties": false,
  5711. "definitions": {
  5712. "assetPattern": {
  5713. "oneOf": [
  5714. {
  5715. "type": "object",
  5716. "properties": {
  5717. "followSymlinks": {
  5718. "type": "boolean",
  5719. "default": false,
  5720. "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched."
  5721. },
  5722. "glob": {
  5723. "type": "string",
  5724. "description": "The pattern to match."
  5725. },
  5726. "input": {
  5727. "type": "string",
  5728. "description": "The input directory path in which to apply 'glob'. Defaults to the project root."
  5729. },
  5730. "ignore": {
  5731. "description": "An array of globs to ignore.",
  5732. "type": "array",
  5733. "items": {
  5734. "type": "string"
  5735. }
  5736. },
  5737. "output": {
  5738. "type": "string",
  5739. "default": "",
  5740. "description": "Absolute path within the output."
  5741. }
  5742. },
  5743. "additionalProperties": false
  5744. },
  5745. {
  5746. "type": "string"
  5747. }
  5748. ]
  5749. },
  5750. "fileReplacement": {
  5751. "oneOf": [
  5752. {
  5753. "type": "object",
  5754. "properties": {
  5755. "src": {
  5756. "type": "string",
  5757. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  5758. },
  5759. "replaceWith": {
  5760. "type": "string",
  5761. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  5762. }
  5763. },
  5764. "additionalProperties": false
  5765. },
  5766. {
  5767. "type": "object",
  5768. "properties": {
  5769. "replace": {
  5770. "type": "string",
  5771. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  5772. },
  5773. "with": {
  5774. "type": "string",
  5775. "pattern": "\\.(([cm]?[jt])sx?|json)$"
  5776. }
  5777. },
  5778. "additionalProperties": false
  5779. }
  5780. ]
  5781. }
  5782. }
  5783. },
  5784. "AngularDevkitBuildAngularBuildersNgPackagrSchema": {
  5785. "title": "ng-packagr Target",
  5786. "description": "ng-packagr target options for Build Architect. Use to build library projects.",
  5787. "type": "object",
  5788. "properties": {
  5789. "project": {
  5790. "type": "string",
  5791. "description": "The file path for the ng-packagr configuration file, relative to the current workspace."
  5792. },
  5793. "tsConfig": {
  5794. "type": "string",
  5795. "description": "The full path for the TypeScript configuration file, relative to the current workspace."
  5796. },
  5797. "watch": {
  5798. "type": "boolean",
  5799. "description": "Run build when files change.",
  5800. "default": false
  5801. },
  5802. "poll": {
  5803. "type": "number",
  5804. "description": "Enable and define the file watching poll time period in milliseconds."
  5805. }
  5806. },
  5807. "additionalProperties": false
  5808. },
  5809. "AngularBuildBuildersNgPackagrSchema": {
  5810. "title": "ng-packagr Target",
  5811. "description": "ng-packagr target options for Build Architect. Use to build library projects.",
  5812. "type": "object",
  5813. "properties": {
  5814. "project": {
  5815. "type": "string",
  5816. "description": "The file path for the ng-packagr configuration file, relative to the current workspace."
  5817. },
  5818. "tsConfig": {
  5819. "type": "string",
  5820. "description": "The full path for the TypeScript configuration file, relative to the current workspace."
  5821. },
  5822. "watch": {
  5823. "type": "boolean",
  5824. "description": "Run build when files change.",
  5825. "default": false
  5826. },
  5827. "poll": {
  5828. "type": "number",
  5829. "description": "Enable and define the file watching poll time period in milliseconds."
  5830. }
  5831. },
  5832. "additionalProperties": false
  5833. }
  5834. }
  5835. }