Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Schematic: исправить использование #409

Open
2 tasks
Nelfimov opened this issue Sep 6, 2024 · 36 comments · May be fixed by #488
Open
2 tasks

Schematic: исправить использование #409

Nelfimov opened this issue Sep 6, 2024 · 36 comments · May be fixed by #488
Assignees
Labels
feature New feature or request

Comments

@Nelfimov
Copy link
Member

Nelfimov commented Sep 6, 2024

С чем связан запрос на фичу?

Необходимо восстановить использование плагина schematic.

Расскажите как вы это себе видите

  • восстановить работу плагина, протестировать
  • обновить миграции на актуальные для нового бандла

Приложите пример реализаций

No response

@Nelfimov Nelfimov added the feature New feature or request label Sep 6, 2024
@kirill-ivanovvv
Copy link
Member

kirill-ivanovvv commented Jan 27, 2025

@Nelfimov подскажи пожалуйста, не могу разобраться

  • при сборке schematics ошибка типов в одном из сторонних пакетов:
[operator@archlinux atls_raijin]$ yarn workspace @atls/schematics build
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                                                                                                           │
│  ../../.yarn/__virtual__/@angular-devkit-core-virtual-0f554eec4d/0/cache/@angular-devkit-core-npm-18.2.12-1abbd7e095-793c54cc9a.zip/node_modules/@angular-devk     TS241  │
│  it/core/src/utils/partially-ordered-set.d.ts:21:4                                                                                                                 6      │
│                                                                                                                                                                           │
│───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
│  19 |     has(item: T): boolean;                                                                                                                                          │
│  20 |     get size(): number;                                                                                                                                             │
│> 21 |     forEach(callbackfn: (value: T, value2: T, set: PartiallyOrderedSet<T>) => void, thisArg?: any): void;                                                           │
│     |    ^                                                                                                                                                                │
│  22 |     /**                                                                                                                                                             │
│  23 |      * Returns an iterable of [v,v] pairs for every value `v` in the set.                                                                                           │
│  24 |      */                                                                                                                                                             │
│───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
│                                                                                                                                                                           │
│  Property 'forEach' in type 'PartiallyOrderedSet<T>' is not assignable to the same property in base type 'Set<T>'.                                                        │
│    Type '(callbackfn: (value: T, value2: T, set: PartiallyOrderedSet<T>) => void, thisArg?: any) => void' is not assignable to type '(callbackfn: (value: T, value2: T,   │
│  set: Set<T>) => void, thisArg?: any) => void'.                                                                                                                           │
│      Types of parameters 'callbackfn' and 'callbackfn' are incompatible.                                                                                                  │
│        Types of parameters 'set' and 'set' are incompatible.                                                                                                              │
│          Type 'PartiallyOrderedSet<T>' is missing the following properties from type 'Set<T>': union, intersection, difference, symmetricDifference, and 3 more.          │
│                                                                                                                                                                           │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
  • пробовал отключить эту проверку в tsconfig вот так, не помогает:
  "exclude": [
    ".yarn/cache/@angular-devkit-core-npm-18.2.12-1abbd7e095-793c54cc9a.zip/**/*"
  ],
  • ставил последнюю patch-версию пакета в рамках текущей мажорной
  • можно обновиться до 19

  • а вот это должно нормально работать?
    yarnPath: yarn/cli/src/cli.dev.mjs

у меня вот такая ошибка:

node:internal/modules/esm/get_format:218
  throw new ERR_UNKNOWN_FILE_EXTENSION(ext, filepath);
        ^

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /home/operator/Documents/atls_raijin/yarn/cli/src/cli.ts
    at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:218:9)
    at defaultGetFormat (node:internal/modules/esm/get_format:244:36)
    at defaultLoad (node:internal/modules/esm/load:122:22)
    at async ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:479:32)
    at async ModuleJob._link (node:internal/modules/esm/module_job:112:19) {
  code: 'ERR_UNKNOWN_FILE_EXTENSION'
}

Node.js v22.11.0
  • меняю путь на сбилженный - все ок.

@Nelfimov
Copy link
Member Author

  • при сборке schematics ошибка типов в одном из сторонних пакетов:

Обновляй зависимости. Ставь typecheckSkipLibCheck. Патчь зависимость.

  • а вот это должно нормально работать?

Да

у меня вот такая ошибка:

node:internal/modules/esm/get_format:218
throw new ERR_UNKNOWN_FILE_EXTENSION(ext, filepath);
^

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /home/operator/Documents/atls_raijin/yarn/cli/src/cli.ts
at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:218:9)
at defaultGetFormat (node:internal/modules/esm/get_format:244:36)
at defaultLoad (node:internal/modules/esm/load:122:22)
at async ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:479:32)
at async ModuleJob._link (node:internal/modules/esm/module_job:112:19) {
code: 'ERR_UNKNOWN_FILE_EXTENSION'
}

Node.js v22.11.0

В корне проекта source .env && export NODE_OPTIONS

@kirill-ivanovvv
Copy link
Member

@Nelfimov

  • не понимаю, как этот плагин должен триггериься.
  • доки направляют на использование @angular/cli@latest - ng generate my-schematic-collection:my-schematic-name
  • а эта команда дает ошибку о том, что у нас не angular-project - Error: This command is not available when running the Angular CLI outside a workspace.

@Nelfimov
Copy link
Member Author

Из твоего сообщения не понятно что ты делал/делаешь.

У плагина простая задача - приводить в порядок существующие проекты. Добавлять конфиги, удалять, править.

Работает в основном за счет миграций.

Сам плагин скорее всего старый, минимум полтора года он был "не у дел". Вероятно изменилось и API.

Пользуйся gpt

@kirill-ivanovvv
Copy link
Member

Из твоего сообщения не понятно что ты делал/делаешь.

У плагина простая задача - приводить в порядок существующие проекты. Добавлять конфиги, удалять, править.

Работает в основном за счет миграций.

Сам плагин скорее всего старый, минимум полтора года он был "не у дел". Вероятно изменилось и API.

Пользуйся gpt

  • ключевой пакет не съедает esm-module
  • посмотрел по исходнимкам, ключ типа cjs не обнаружил
  • допишу ключ, чтобы при билде сохранялись файлы в формате cjs

Image

Image

@Nelfimov
Copy link
Member Author

  1. пробуй через createRequire либо динамический импорт
  2. с гпт общайся на русском - посмотри соседние чаты

@kirill-ivanovvv
Copy link
Member

kirill-ivanovvv commented Jan 27, 2025

Что сделано:

  • разбирался с schematic
  • перебил schematics под esm
  • бампнул, проверил esm
  • патчи не помогли

Что дальше:

Актуальная ветка:

@kirill-ivanovvv
Copy link
Member

@Nelfimov нам же не критичен angular? переписываю на plop? https://plopjs.com/

@Nelfimov
Copy link
Member Author

@Nelfimov нам же не критичен angular? переписываю на plop? https://plopjs.com/

А он подходит для наших задач? Генерация файлов - это одно. А вот работать с уже существующими? Он будет делать дубликат или определять изменения? В пример тебе tsconfig.json - мы изменили в atls/raijin его опции. Как с этим будет работать либа?

@kirill-ivanovvv
Copy link
Member

@Nelfimov нам же не критичен angular? переписываю на plop? https://plopjs.com/

А он подходит для наших задач? Генерация файлов - это одно. А вот работать с уже существующими? Он будет делать дубликат или определять изменения? В пример тебе tsconfig.json - мы изменили в atls/raijin его опции. Как с этим будет работать либа?

такаого функционала не нашел. в других либах тоже.
тогда делаю сборку в cjs

@Nelfimov
Copy link
Member Author

тогда делаю сборку в cjs

Не делай. Зафиксируй, сделай соседнюю таску на правку линт и чек ошибок пока.

@kirill-ivanovvv
Copy link
Member

Что сделано:

  • код в schematics собирается в формате esm
  • cli-инструменты angular работают в формате cjs, поэтому не могут прянть esm-модули
  • при патче angular-cli сыпятся более глубокие ошибки, связанные с конфликтами модулей
  • у аналогов сильно меньше функционала

Что дальше:

  • на данный момент придумал тольлько один вариант - собрать пакет в формате cjs
  • сборка typescript происходит по стандартному нашему конфигу
  • можно добавить флаг в сборку, типа --cjs или --module commonjs для того, чтобы переписать необходимые параметры в конфиге при сборке

Актуальная ветка:

@kirill-ivanovvv
Copy link
Member

@Nelfimov

  • вот такой есть проект - https://nx.dev/nx-api/node
  • и генерация есть и миграции и вообще много функций

https://chatgpt.com/c/679a1516-6d50-8004-9ae0-90b903c18621

@Nelfimov
Copy link
Member Author

Сделай кейс - обнови tsconfig в существующем проекте. Можно скринкастом - не могу найти время на эту траблу

@kirill-ivanovvv
Copy link
Member

Сделай кейс - обнови tsconfig в существующем проекте. Можно скринкастом - не могу найти время на эту траблу

правильно понял задачу:

  • эта либа должна по заготовленному шаблону поменять tsconfig в руте?
  • подготовить шаблон, отличающийся от текущего tsconfig (для теста)
  • запустить через cli
  • на выходе должна сохраниться миграция?

@Nelfimov
Copy link
Member Author

правильно понял задачу:

  • эта либа должна по заготовленному шаблону поменять tsconfig в руте?
  • подготовить шаблон, отличающийся от текущего tsconfig (для теста)
  • запустить через cli
  • на выходе должна сохраниться миграция?

Да

@kirill-ivanovvv
Copy link
Member

правильно понял задачу:

  • эта либа должна по заготовленному шаблону поменять tsconfig в руте?
  • подготовить шаблон, отличающийся от текущего tsconfig (для теста)
  • запустить через cli
  • на выходе должна сохраниться миграция?

Да

  • у нас есть зависимость, которая ссылкается на npm:
  • любая команда nx выбрасывает эту ошибку:
  • по всей видимостb баг - Error: Target project does not exist nrwl/nx#26315
  • переключусь на другие задачи
[operator@archlinux atls_raijin]$ yarn nx graph --verbose

 NX   Failed to process project graph. Run "nx reset" to fix this. Please report the issue if you keep seeing it. See errors below.

Failed to process project graph. Run "nx reset" to fix this. Please report the issue if you keep seeing it.
      The "nx/js/dependencies-and-lockfile" plugin threw an error while creating dependencies: Target project does not exist: npm:esbuild@npm:esbuild-wasm@^0.23.0
    Error: Target project does not exist: npm:esbuild@npm:esbuild-wasm@^0.23.0
        at validateCommonDependencyRules (/home/operator/Projects/atls_raijin/.yarn/unplugged/nx-virtual-97e529c303/node_modules/nx/src/project-graph/project-graph-builder.js:323:15)
        at validateDependency (/home/operator/Projects/atls_raijin/.yarn/unplugged/nx-virtual-97e529c303/node_modules/nx/src/project-graph/project-graph-builder.js:314:5)
        at /home/operator/Projects/atls_raijin/.yarn/unplugged/nx-virtual-97e529c303/node_modules/nx/src/plugins/js/lock-file/yarn-parser.js:214:80
        at Array.forEach (<anonymous>)
        at /home/operator/Projects/atls_raijin/.yarn/unplugged/nx-virtual-97e529c303/node_modules/nx/src/plugins/js/lock-file/yarn-parser.js:205:49
        at Array.forEach (<anonymous>)
        at /home/operator/Projects/atls_raijin/.yarn/unplugged/nx-virtual-97e529c303/node_modules/nx/src/plugins/js/lock-file/yarn-parser.js:203:72
        at Array.forEach (<anonymous>)
        at /home/operator/Projects/atls_raijin/.yarn/unplugged/nx-virtual-97e529c303/node_modules/nx/src/plugins/js/lock-file/yarn-parser.js:200:26
        at Array.forEach (<anonymous>)

@kirill-ivanovvv
Copy link
Member

@Nelfimov

  • старый schematics выполняется через метод execute
  • сравниваю с lint-ом - как понимаю у него 2 исполняющих метода. executeRegular и executeProxy
  • правильно понимаю, что эти методы позволяют нам свой прогресс отрисовывать через компоненты? (вижу рендер jsx-компонентов)

@Nelfimov
Copy link
Member Author

  • правильно понимаю, что эти методы позволяют нам свой прогресс отрисовывать через компоненты? (вижу рендер jsx-компонентов)

И да и нет. Оба позволяет отрисовывать в UI. Только один из них - обычное исполнение, а прокси - проверка контекста и енв, подключение pnp

Твой случай покроется обычным execute

@kirill-ivanovvv
Copy link
Member

Что сделано:

  • разбирался с исходниками angular-schematics
  • разбирался с текущим репозиторием, как в прошлый раз этот плагин был организован
  • при запуске schematics через код столкнулся с аналогичной ошибкой - несостыковка модулей в файле factory
  • еще раз пробовал пропатчить - возвращает ошибку без деталей - FactoryCannotBeResolvedException [Error]: Schematic "project" cannot resolve the factory.
  • пробовал делать cjs-обертку (для esm) - аналогично
  • запустил минимально работающий проект - сразу на cjs, без оберток - запустился из исходного кода, генерация прошла.

Что дальше:

  • переберу файл factory

    • в уже работающий cjs-factory построчно перенесу фунцкии из необходимого нам esm-factory. с промежуточными проверками. может быть ошибка в коде factory
  • есть вариант форкнуть репозиторий angular и переписать функции импортов на dynamic import

    • не до конца понимаю объем такой работы
  • есть вариант добавить ключ для сборки в cjs, как предлагал изначально. чтото типа yarn library build --type cjs

  • есть вариант уже собранный esm корвертировать в cjs? может быть при помощи esbuild, не углублялся в этот вариант, но, кажется, так можно.

Актуальная ветка:

@kirill-ivanovvv
Copy link
Member

Что сделано:

  • перебирал исходники, gpt
  • запустил минимальный project generate - с одним файлом

Что дальше:

  • рефактор
  • свести с оригинальными конфигами для генерации проекта
  • этот конфиг должен быть в формате cjs, при этом он импортирует наши пакеты, а они в esm
  • сборка пакета schematics должна включать себя все импортируемые пакеты и конвертироваться в формат cjs

Актуальная ветка:

@Nelfimov
Copy link
Member Author

Nelfimov commented Feb 4, 2025

@kirill-ivanovvv до завтра (включ.) давай попробуем доделать. Если не выходит - выпиливаем из бандла

@kirill-ivanovvv
Copy link
Member

Что сделано:

  • рефактор
  • настройка сборки через esbuild
  • tsconfig добавляется в рут. но без основного конфига. он у нас импортируется и по всей видимости гдето в процессе сборки импортируемый пакет отваливается. пробовал собирать в бандл - не получалось.

Что дальше:

  • разобраться с tsconfig, отработать остальные скрипты

Актуальная ветка:

This was referenced Feb 5, 2025
@kirill-ivanovvv
Copy link
Member

Что сделано:

  • генерация проекта отрабатывает. файлы создаются по шаблонам.

Что дальше:

  • бандл собирается, но не запускается
  • обрубаю по строчке из ентрипоинта команды, собираю, запускаю заново
Details

file:///home/operator/Projects/atls_raijin/yarn/cli/dist/yarn.mjs:320
  `)+k.join(" > ")}return null},r.getPublicRootInstance=function(k){if(k=k.current,!k.child)return null;switch(k.child.tag){case 5:return cr(k.child.stateNode);default:return k.child.stateNode}},r.injectIntoDevTools=function(k){if(k={bundleType:k.bundleType,version:k.version,rendererPackageName:k.rendererPackageName,rendererConfig:k.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:_.ReactCurrentDispatcher,findHostInstanceByFiber:qh,findFiberByHostInstance:k.findFiberByHostInstance||OB,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")k=!1;else{var L=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!L.isDisabled&&L.supportsFiber)try{gs=L.inject(k),Ka=L}catch{}k=!0}return k},r.observeVisibleRects=function(k,L,$,Te){if(!Vp)throw Error(f(363));k=Cb(k,L);var Re=on(k,$,Te).disconnect;return{disconnect:function(){Re()}}},r.registerMutableSourceForHydration=function(k,L){var $=L._getVersion;$=$(L._source),k.mutableSourceEagerHydrationData==null?k.mutableSourceEagerHydrationData=[L,$]:k.mutableSourceEagerHydrationData.push(L,$)},r.runWithPriority=function(k,L){var $=$s;try{return $s=k,L()}finally{$s=$}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(k,L){var $=Ua;Ua&=-2,Ua|=8;try{return k(L)}finally{Ua=$,Ua===0&&(T0(),fl())}},r.updateContainer=function(k,L,$,Te){var Re=L.current,ft=D_(),tr=tm(Re);e:if($){$=$._reactInternals;t:{if(nt($)!==$||$.tag!==1)throw Error(f(170));var Wr=$;do{switch(Wr.tag){case 3:Wr=Wr.stateNode.context;break t;case 1:if(oc(Wr.type)){Wr=Wr.stateNode.__reactInternalMemoizedMergedChildContext;break t}}Wr=Wr.return}while(Wr!==null);throw Error(f(171))}if($.tag===1){var zn=$.type;if(oc(zn)){$=Nd($,zn,Wr);break e}}$=Wr}else $=jA;return L.context===null?L.context=$:L.pendingContext=$,L=Gh(ft,tr),L.payload={element:k},Te=Te===void 0?null:Te,Te!==null&&(L.callback=Te),IA(Re,L),Sd(Re,tr,ft),tr},r}});var evn=K((Cjc,$In)=>{"use strict";$In.exports=ZIn()});var rvn=K((Ijc,tvn)=>{"use strict";var yro={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};tvn.exports=yro});var ovn=K((vjc,svn)=>{"use strict";var Cro=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},hct=function(){function e(t,r){for(var s=0;s<r.length;s++){var a=r[s];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}return function(t,r,s){return r&&e(t.prototype,r),s&&e(t,s),t}}();function wzt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function xzt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var x9=rvn(),Iro=function(){function e(t,r,s,a,o,f){xzt(this,e),this.left=t,this.right=r,this.top=s,this.bottom=a,this.width=o,this.height=f}return hct(e,[{key:"fromJS",value:function(r){r(this.left,this.right,this.top,this.bottom,this.width,this.height)}},{key:"toString",value:function(){return"<Layout#"+this.left+":"+this.right+";"+this.top+":"+this.bottom+";"+this.width+":"+this.height+">"}}]),e}(),nvn=function(){hct(e,null,[{key:"fromJS",value:function(r){var s=r.width,a=r.height;return new e(s,a)}}]);function e(t,r){xzt(this,e),this.width=t,this.height=r}return hct(e,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return"<Size#"+this.width+"x"+this.height+">"}}]),e}(),ivn=function(){function e(t,r){xzt(this,e),this.unit=t,this.value=r}return hct(e,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case x9.UNIT_POINT:return String(this.value);case x9.UNIT_PERCENT:return this.value+"%";case x9.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),e}();svn.exports=function(e,t){function r(f,_,A){var g=f[_];f[_]=function(){for(var C=arguments.length,S=Array(C),T=0;T<C;T++)S[T]=arguments[T];return A.call.apply(A,[this,g].concat(S))}}for(var s=["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding"],a=function(){var _,A=s[o],g=(_={},wzt(_,x9.UNIT_POINT,t.Node.prototype[A]),wzt(_,x9.UNIT_PERCENT,t.Node.prototype[A+"Percent"]),wzt(_,x9.UNIT_AUTO,t.Node.prototype[A+"Auto"]),_);r(t.Node.prototype,A,function(C){for(var S=arguments.length,T=Array(S>1?S-1:0),R=1;R<S;R++)T[R-1]=arguments[R];var w=T.pop(),j=void 0,V=void 0;if(w==="auto")j=x9.UNIT_AUTO,V=void 0;else if(w instanceof ivn)j=w.unit,V=w.valueOf();else if(j=typeof w=="string"&&w.endsWith("%")?x9.UNIT_PERCENT:x9.UNIT_POINT,V=parseFloat(w),!Number.isNaN(w)&&Number.isNaN(V))throw new Error("Invalid value "+w+" for "+A);if(!g[j])throw new Error('Failed to execute "'+A+`": Unsupported unit '`+w+"'");if(V!==void 0){var te;return(te=g[j]).call.apply(te,[this].concat(T,[V]))}else{var fe;return(fe=g[j]).call.apply(fe,[this].concat(T))}})},o=0;o<s.length;o++)a();return r(t.Config.prototype,"free",function(){t.Config.destroy(this)}),r(t.Node,"create",function(f,_){return _?t.Node.createWithConfig(_):t.Node.createDefault()}),r(t.Node.prototype,"free",function(){t.Node.destroy(this)}),r(t.Node.prototype,"freeRecursive",function(){for(var f=0,_=this.getChildCount();f<_;++f)this.getChild(0).freeRecursive();this.free()}),r(t.Node.prototype,"setMeasureFunc",function(f,_){return _?f.call(this,function(){return nvn.fromJS(_.apply(void 0,arguments))}):this.unsetMeasureFunc()}),r(t.Node.prototype,"calculateLayout",function(f){var _=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:x9.DIRECTION_LTR;return f.call(this,_,A,g)}),Cro({Config:t.Config,Node:t.Node,Layout:e("Layout",Iro),Size:e("Size",nvn),Value:e("Value",ivn),getInstanceCount:function(){return t.getInstanceCount.apply(t,arguments)}},x9)}});var avn=K((exports,module)=>{(function(e,t){typeof define=="function"&&define.amd?define([],function(){return t}):typeof module=="object"&&module.exports?module.exports=t:(e.nbind=e.nbind||{}).init=t})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(e,t){return function(){e&&e.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){t(r);return}t(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof Nt=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(t,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),t=nodePath.normalize(t);var s=nodeFS.readFileSync(t);return r?s:s.toString()},Module.readBinary=function(t){var r=Module.read(t,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(t){globalEval(read(t))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e}),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(t){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(t));var r=read(t,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(e,t){quit(e)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(t){var r=new XMLHttpRequest;return r.open("GET",t,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(t){var r=new XMLHttpRequest;return r.open("GET",t,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(t,r,s){var a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):s()},a.onerror=s,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(t){console.log(t)}),Module.printErr||(Module.printErr=function(t){console.warn(t)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(e){document.title=e})}else throw"Unknown runtime environment. Where are we?";function globalEval(e){eval.call(null,e)}!Module.load&&Module.read&&(Module.load=function(t){globalEval(Module.read(t))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(e,t){throw t}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(e[e.length-1]==="*")return Runtime.QUANTUM_SIZE;if(e[0]==="i"){var t=parseInt(e.substr(1));return assert(t%8===0),t/8}else return 0}}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return t==="double"||t==="i64"?e&7&&(assert((e&7)===4),e+=4):assert((e&3)===0),e},getAlignSize:function(e,t,r){return!r&&(e=="i64"||e=="double")?8:e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8)},dynCall:function(e,t,r){return r&&r.length?Module["dynCall_"+e].apply(null,[t].concat(r)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t<Runtime.functionPointers.length;t++)if(!Runtime.functionPointers[t])return Runtime.functionPointers[t]=e,2*(1+t);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,t){if(e){assert(t),Runtime.funcWrappers[t]||(Runtime.funcWrappers[t]={});var r=Runtime.funcWrappers[t];return r[e]||(t.length===1?r[e]=function(){return Runtime.dynCall(t,e)}:t.length===2?r[e]=function(a){return Runtime.dynCall(t,e,[a])}:r[e]=function(){return Runtime.dynCall(t,e,Array.prototype.slice.call(arguments))}),r[e]}},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var t=STACKTOP;return STACKTOP=STACKTOP+e|0,STACKTOP=STACKTOP+15&-16,t},staticAlloc:function(e){var t=STATICTOP;return STATICTOP=STATICTOP+e|0,STATICTOP=STATICTOP+15&-16,t},dynamicAlloc:function(e){var t=HEAP32[DYNAMICTOP_PTR>>2],r=(t+e+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var s=enlargeMemory();if(!s)return HEAP32[DYNAMICTOP_PTR>>2]=t,0}return t},alignMemory:function(e,t){var r=e=Math.ceil(e/(t||16))*(t||16);return r},makeBigInt:function(e,t,r){var s=r?+(e>>>0)+ +(t>>>0)*4294967296:+(e>>>0)+ +(t|0)*4294967296;return s},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;if(e!=null&&e!==0){var r=(e.length<<2)+1;t=Runtime.stackAlloc(r),stringToUTF8(e,t,r)}return t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(t,r,s,a,o){var f=getCFunc(t),_=[],A=0;if(a)for(var g=0;g<a.length;g++){var C=toC[s[g]];C?(A===0&&(A=Runtime.stackSave()),_[g]=C(a[g])):_[g]=a[g]}var S=f.apply(null,_);if(r==="string"&&(S=Pointer_stringify(S)),A!==0){if(o&&o.async){EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(A)});return}Runtime.stackRestore(A)}return S};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(e){var t=e.toString().match(sourceRegex).slice(1);return{arguments:t[0],body:t[1],returnValue:t[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var e in JSfuncs)JSfuncs.hasOwnProperty(e)&&(JSsource[e]=parseJSFunc(JSfuncs[e]))}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(e){return e==="number"}),numericRet=returnType!=="string";if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(e,t){return"$"+t}),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type!=="number"){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"=("+convertCode.returnValue+");"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}})(),Module.ccall=ccall,Module.cwrap=cwrap;function setValue(e,t,r,s){switch(r=r||"i8",r.charAt(r.length-1)==="*"&&(r="i32"),r){case"i1":HEAP8[e>>0]=t;break;case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(e,t,r){switch(t=t||"i8",t.charAt(t.length-1)==="*"&&(t="i32"),t){case"i1":return HEAP8[e>>0];case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(e,t,r,s){var a,o;typeof e=="number"?(a=!0,o=e):(a=!1,o=e.length);var f=typeof t=="string"?t:null,_;if(r==ALLOC_NONE?_=s:_=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(o,f?1:t.length)),a){var s=_,A;for(assert((_&3)==0),A=_+(o&-4);s<A;s+=4)HEAP32[s>>2]=0;for(A=_+o;s<A;)HEAP8[s++>>0]=0;return _}if(f==="i8")return e.subarray||e.slice?HEAPU8.set(e,_):HEAPU8.set(new Uint8Array(e),_),_;for(var g=0,C,S,T;g<o;){var R=e[g];if(typeof R=="function"&&(R=Runtime.getFunctionIndex(R)),C=f||t[g],C===0){g++;continue}C=="i64"&&(C="i32"),setValue(_+g,R,C),T!==C&&(S=Runtime.getNativeTypeSize(C),T=C),g+=S}return _}Module.allocate=allocate;function getMemory(e){return staticSealed?runtimeInitialized?_malloc(e):Runtime.dynamicAlloc(e):Runtime.staticAlloc(e)}Module.getMemory=getMemory;function Pointer_stringify(e,t){if(t===0||!e)return"";for(var r=0,s,a=0;s=HEAPU8[e+a>>0],r|=s,!(s==0&&!t||(a++,t&&a==t)););t||(t=a);var o="";if(r<128){for(var f=1024,_;t>0;)_=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,f))),o=o?o+_:_,e+=f,t-=f;return o}return Module.UTF8ToString(e)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(e){for(var t="";;){var r=HEAP8[e++>>0];if(!r)return t;t+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(e,t){return writeAsciiToMemory(e,t,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(e,t){for(var r=t;e[r];)++r;if(r-t>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,r));for(var s,a,o,f,_,A,g="";;){if(s=e[t++],!s)return g;if(!(s&128)){g+=String.fromCharCode(s);continue}if(a=e[t++]&63,(s&224)==192){g+=String.fromCharCode((s&31)<<6|a);continue}if(o=e[t++]&63,(s&240)==224?s=(s&15)<<12|a<<6|o:(f=e[t++]&63,(s&248)==240?s=(s&7)<<18|a<<12|o<<6|f:(_=e[t++]&63,(s&252)==248?s=(s&3)<<24|a<<18|o<<12|f<<6|_:(A=e[t++]&63,s=(s&1)<<30|a<<24|o<<18|f<<12|_<<6|A))),s<65536)g+=String.fromCharCode(s);else{var C=s-65536;g+=String.fromCharCode(55296|C>>10,56320|C&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(e,t,r,s){if(!(s>0))return 0;for(var a=r,o=r+s-1,f=0;f<e.length;++f){var _=e.charCodeAt(f);if(_>=55296&&_<=57343&&(_=65536+((_&1023)<<10)|e.charCodeAt(++f)&1023),_<=127){if(r>=o)break;t[r++]=_}else if(_<=2047){if(r+1>=o)break;t[r++]=192|_>>6,t[r++]=128|_&63}else if(_<=65535){if(r+2>=o)break;t[r++]=224|_>>12,t[r++]=128|_>>6&63,t[r++]=128|_&63}else if(_<=2097151){if(r+3>=o)break;t[r++]=240|_>>18,t[r++]=128|_>>12&63,t[r++]=128|_>>6&63,t[r++]=128|_&63}else if(_<=67108863){if(r+4>=o)break;t[r++]=248|_>>24,t[r++]=128|_>>18&63,t[r++]=128|_>>12&63,t[r++]=128|_>>6&63,t[r++]=128|_&63}else{if(r+5>=o)break;t[r++]=252|_>>30,t[r++]=128|_>>24&63,t[r++]=128|_>>18&63,t[r++]=128|_>>12&63,t[r++]=128|_>>6&63,t[r++]=128|_&63}}return t[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(e,t,r){return stringToUTF8Array(e,HEAPU8,t,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(e){for(var t=0,r=0;r<e.length;++r){var s=e.charCodeAt(r);s>=55296&&s<=57343&&(s=65536+((s&1023)<<10)|e.charCodeAt(++r)&1023),s<=127?++t:s<=2047?t+=2:s<=65535?t+=3:s<=2097151?t+=4:s<=67108863?t+=5:t+=6}return t}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(e){var t=Module.___cxa_demangle||Module.__cxa_demangle;if(t){try{var r=e.substr(1),s=lengthBytesUTF8(r)+1,a=_malloc(s);stringToUTF8(r,a,s);var o=_malloc(4),f=t(a,0,0,o);if(getValue(o,"i32")===0&&f)return Pointer_stringify(f)}catch{}finally{a&&_free(a),o&&_free(o),f&&_free(f)}return e}return Runtime.warnOnce("warning: build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling"),e}function demangleAll(e){var t=/__Z[\w\d_]+/g;return e.replace(t,function(r){var s=demangle(r);return r===s?r:r+" ["+s+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+=`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

Error: Qualified path resolution failed: we looked for the following paths, but none could be accessed.

Source path: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format
Not found: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format
Not found: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format.js
Not found: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format.json
Not found: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format.node
Not found: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format.handlebars
Not found: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format.hbs

Require stack:
- /home/operator/Projects/atls_raijin/yarn/cli/dist/yarn.mjs
    at require$$0.Module._resolveFilename (/home/operator/Projects/atls_raijin/.pnp.cjs:22085:13)
    at Function.<anonymous> (node:internal/modules/cjs/loader:1075:27)
    at require$$0.Module._load (/home/operator/Projects/atls_raijin/.pnp.cjs:21976:31)
    at TracingChannel.traceSync (node:diagnostics_channel:315:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:218:24)
    at Module.require (node:internal/modules/cjs/loader:1340:12)
    at require (node:internal/modules/helpers:141:16)
    at file:///home/operator/Projects/atls_raijin/yarn/cli/dist/yarn.mjs:1149:50165
    at file:///home/operator/Projects/atls_raijin/yarn/cli/dist/yarn.mjs:1149:49659
    at file:///home/operator/Projects/atls_raijin/yarn/cli/dist/yarn.mjs:1149:49837

Актуальная ветка:

@Nelfimov
Copy link
Member Author

Nelfimov commented Feb 5, 2025

Что за format и кто его требует?

@kirill-ivanovvv
Copy link
Member

Что за format и кто его требует?

во всем проекте format упоминается только в yarn-plugin-format
но в новых пакетах он не используется

@Nelfimov
Copy link
Member Author

Nelfimov commented Feb 6, 2025

Смотри тут: https://yarnpkg.com/cli/builder/build/bundle

Есть флаги для отключения минимизации и дебага.

@kirill-ivanovvv
Copy link
Member

@Nelfimov

  • файл по этому пути запрашивает пакет jsonc-parser
  • это вложенный пакет в angular-devtools
  • я же правильно понимаю, что при сборке бандла - весь код, всех используемых пакетов включается в один файл. и соответвренно пути всех запрашиваемых файлов тоже включаются в один файл (например запрос функции по пути заменяется просто запросом функции, ведь они все в одном файле)

Important

  • по какому принципу yarn выбирает, какие пакеты добавить в код бандла
    • предположение: yarn смотрит зависимости в свойстве @yarnpkg/builder и добавляет все + все вложенные (рекурсивно) в бандл. тоесть не сами зависимости, а уже их код.
  • если так, то jsonc-parser должен гарантированно включиться и накаких запросов по этому пути не должно быть (код функции по этому пути должен быть включен в бандл, а использование импоритруемой функции должно быть заменено на использование функции, объявленной в бандле)
  • почему именно этот пакет не включается полностью?
Error: Qualified path resolution failed: we looked for the following paths, but none could be accessed.

Source path: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format
Not found: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format
Not found: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format.js
Not found: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format.json
Not found: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format.node
Not found: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format.handlebars
Not found: /home/operator/Projects/atls_raijin/yarn/cli/dist/impl/format.hbs

@Nelfimov
Copy link
Member Author

Nelfimov commented Feb 6, 2025

  • по какому принципу yarn выбирает, какие пакеты добавить в код бандла

Забирает все что видит. Однако могут быть библиотеки которые используют либо динамический импорт либо чтение через readFile. Такое надо патчить, см. примеры в репе.

@kirill-ivanovvv
Copy link
Member

@Nelfimov

  • а както еще можно получить путь до пакета? -
    const collectionUrl = import.meta.resolve("@atls/schematics/collection");
  • в raijin работает собранный бандл, в shdvor - нет:
  • @atls/schematics добавил в рутовый package.json, зависимости подтянул
➤ YN0001: Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@atls/schematics' imported from /home/operator/Projects/atls_shdvor/.yarn/releases/yarn.mjs
    at new NodeError (node:internal/errors:405:5)
    at packageResolve (node:internal/modules/esm/resolve:916:9)
    at moduleResolve (node:internal/modules/esm/resolve:973:20)
    at defaultResolve (node:internal/modules/esm/resolve:1206:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:404:12)
    at ModuleLoader.resolveSync (node:internal/modules/esm/loader:386:17)
    at Object.resolve (node:internal/modules/esm/initialize_import_meta:27:25)
    at vmc (file:///home/operator/Projects/atls_shdvor/.yarn/releases/yarn.mjs:2334:1250)
    at file:///home/operator/Projects/atls_shdvor/.yarn/releases/yarn.mjs:2334:1340
    at tst.start (file:///home/operator/Projects/atls_shdvor/.yarn/releases/yarn.mjs:199:1970)
➤ YN0000: Failed with errors in 0s 27ms

@kirill-ivanovvv
Copy link
Member

@Nelfimov мне даже не до пакета путь нужен, а до collection.json, соответственно он в пакете

@Nelfimov
Copy link
Member Author

Nelfimov commented Feb 6, 2025

@Nelfimov

  • а както еще можно получить путь до пакета? -

Посмотри соседние плагины - там есть работа с проектами и воркспейсами. Так же json файлы это ассеты. Они, если не импортированы напрямую в js, не будут участвовать в бандле

@kirill-ivanovvv
Copy link
Member

Что сделано:

  • сборка в бандл

Что дальше:

  • генерация в сборке работает только в raijin
  • при тесте в shdvor такая ошибка:
  • ошибка в поиске пути до пакета @atls/scmatics
[operator@archlinux atls_shdvor]$ yarn generate
Error: The "paths[0]" argument must be of type string. Received undefined

Актуальная ветка:

@TorinAsakura
Copy link
Member

Что сделано:

  • сборка в бандл

Что дальше:

  • генерация в сборке работает только в raijin
  • при тесте в shdvor такая ошибка:
  • ошибка в поиске пути до пакета @atls/scmatics
[operator@archlinux atls_shdvor]$ yarn generate
Error: The "paths[0]" argument must be of type string. Received undefined

Актуальная ветка:

yarn generate - что? ты аргумент не передал

@kirill-ivanovvv
Copy link
Member

Что сделано:

  • сборка в бандл

Что дальше:

  • генерация в сборке работает только в raijin
  • при тесте в shdvor такая ошибка:
  • ошибка в поиске пути до пакета @atls/scmatics
[operator@archlinux atls_shdvor]$ yarn generate
Error: The "paths[0]" argument must be of type string. Received undefined

Актуальная ветка:

yarn generate - что? ты аргумент не передал

изменил команду.
yarn generate -t/--type (project/library) - project дефолтный

@kirill-ivanovvv
Copy link
Member

Что сделано:

  • правки на ревью

Что дальше:

Актуальная ветка:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants