@bevel-software/platform-core-backend 0.9.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD-PARTY-NOTICES.md +2 -2
- package/dist/core/create-core-server.d.ts.map +1 -1
- package/dist/core/create-core-server.js +16 -1
- package/dist/core/create-core-server.js.map +1 -1
- package/dist/core/create-core-services.d.ts +25 -0
- package/dist/core/create-core-services.d.ts.map +1 -1
- package/dist/core/create-core-services.js +45 -1
- package/dist/core/create-core-services.js.map +1 -1
- package/dist/core-config.d.ts +19 -1
- package/dist/core-config.d.ts.map +1 -1
- package/dist/core-config.js +44 -4
- package/dist/core-config.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/access/access-control.interface.d.ts +54 -28
- package/dist/modules/access/access-control.interface.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.d.ts +129 -14
- package/dist/modules/access/access-control.service.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.js +435 -66
- package/dist/modules/access/access-control.service.js.map +1 -1
- package/dist/modules/access/access-declarations.d.ts.map +1 -1
- package/dist/modules/access/access-declarations.js +5 -3
- package/dist/modules/access/access-declarations.js.map +1 -1
- package/dist/modules/access/access-mutation.service.d.ts +39 -6
- package/dist/modules/access/access-mutation.service.d.ts.map +1 -1
- package/dist/modules/access/access-mutation.service.js +78 -18
- package/dist/modules/access/access-mutation.service.js.map +1 -1
- package/dist/modules/access/access-splice.d.ts +31 -4
- package/dist/modules/access/access-splice.d.ts.map +1 -1
- package/dist/modules/access/access-splice.js +40 -16
- package/dist/modules/access/access-splice.js.map +1 -1
- package/dist/modules/access/access.routes.d.ts.map +1 -1
- package/dist/modules/access/access.routes.js +204 -82
- package/dist/modules/access/access.routes.js.map +1 -1
- package/dist/modules/access/admin-locked-commit.d.ts +134 -0
- package/dist/modules/access/admin-locked-commit.d.ts.map +1 -0
- package/dist/modules/access/admin-locked-commit.js +277 -0
- package/dist/modules/access/admin-locked-commit.js.map +1 -0
- package/dist/modules/access/admin-route-helpers.d.ts +32 -0
- package/dist/modules/access/admin-route-helpers.d.ts.map +1 -0
- package/dist/modules/access/admin-route-helpers.js +44 -0
- package/dist/modules/access/admin-route-helpers.js.map +1 -0
- package/dist/modules/access/capability-registry.d.ts +41 -0
- package/dist/modules/access/capability-registry.d.ts.map +1 -0
- package/dist/modules/access/capability-registry.js +46 -0
- package/dist/modules/access/capability-registry.js.map +1 -0
- package/dist/modules/access/directory-sync-bot.d.ts +13 -0
- package/dist/modules/access/directory-sync-bot.d.ts.map +1 -0
- package/dist/modules/access/directory-sync-bot.js +64 -0
- package/dist/modules/access/directory-sync-bot.js.map +1 -0
- package/dist/modules/access/group-files.d.ts +83 -0
- package/dist/modules/access/group-files.d.ts.map +1 -0
- package/dist/modules/access/group-files.js +167 -0
- package/dist/modules/access/group-files.js.map +1 -0
- package/dist/modules/access/groups-admin.routes.d.ts +19 -0
- package/dist/modules/access/groups-admin.routes.d.ts.map +1 -0
- package/dist/modules/access/groups-admin.routes.js +98 -0
- package/dist/modules/access/groups-admin.routes.js.map +1 -0
- package/dist/modules/access/groups-admin.service.d.ts +166 -0
- package/dist/modules/access/groups-admin.service.d.ts.map +1 -0
- package/dist/modules/access/groups-admin.service.js +442 -0
- package/dist/modules/access/groups-admin.service.js.map +1 -0
- package/dist/modules/access/groups-edit.d.ts +58 -0
- package/dist/modules/access/groups-edit.d.ts.map +1 -0
- package/dist/modules/access/groups-edit.js +162 -0
- package/dist/modules/access/groups-edit.js.map +1 -0
- package/dist/modules/access/reference-scan.d.ts +141 -0
- package/dist/modules/access/reference-scan.d.ts.map +1 -0
- package/dist/modules/access/reference-scan.js +440 -0
- package/dist/modules/access/reference-scan.js.map +1 -0
- package/dist/modules/access/roles-admin.service.d.ts +88 -119
- package/dist/modules/access/roles-admin.service.d.ts.map +1 -1
- package/dist/modules/access/roles-admin.service.js +230 -384
- package/dist/modules/access/roles-admin.service.js.map +1 -1
- package/dist/modules/access/roles-edit.d.ts +51 -25
- package/dist/modules/access/roles-edit.d.ts.map +1 -1
- package/dist/modules/access/roles-edit.js +133 -59
- package/dist/modules/access/roles-edit.js.map +1 -1
- package/dist/modules/access/synced-groups-committer.d.ts +28 -0
- package/dist/modules/access/synced-groups-committer.d.ts.map +1 -0
- package/dist/modules/access/synced-groups-committer.js +139 -0
- package/dist/modules/access/synced-groups-committer.js.map +1 -0
- package/dist/modules/access/synced-groups-writer.d.ts +78 -0
- package/dist/modules/access/synced-groups-writer.d.ts.map +1 -0
- package/dist/modules/access/synced-groups-writer.js +219 -0
- package/dist/modules/access/synced-groups-writer.js.map +1 -0
- package/dist/modules/database/core-schema.d.ts +17 -0
- package/dist/modules/database/core-schema.d.ts.map +1 -1
- package/dist/modules/database/core-schema.js +9 -0
- package/dist/modules/database/core-schema.js.map +1 -1
- package/dist/modules/mcp/mcp-auth.middleware.d.ts +13 -2
- package/dist/modules/mcp/mcp-auth.middleware.d.ts.map +1 -1
- package/dist/modules/mcp/mcp-auth.middleware.js +61 -2
- package/dist/modules/mcp/mcp-auth.middleware.js.map +1 -1
- package/dist/modules/mcp/mcp.routes.d.ts +9 -3
- package/dist/modules/mcp/mcp.routes.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.routes.js +126 -2
- package/dist/modules/mcp/mcp.routes.js.map +1 -1
- package/dist/modules/mcp/mcp.service.d.ts +14 -0
- package/dist/modules/mcp/mcp.service.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.service.js +6 -1
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/update-check/update-check.routes.d.ts +13 -0
- package/dist/modules/update-check/update-check.routes.d.ts.map +1 -0
- package/dist/modules/update-check/update-check.routes.js +21 -0
- package/dist/modules/update-check/update-check.routes.js.map +1 -0
- package/dist/modules/update-check/update-check.service.d.ts +57 -0
- package/dist/modules/update-check/update-check.service.d.ts.map +1 -0
- package/dist/modules/update-check/update-check.service.js +109 -0
- package/dist/modules/update-check/update-check.service.js.map +1 -0
- package/dist/modules/workflow/file-lock.service.d.ts +11 -1
- package/dist/modules/workflow/file-lock.service.d.ts.map +1 -1
- package/dist/modules/workflow/file-lock.service.js +15 -1
- package/dist/modules/workflow/file-lock.service.js.map +1 -1
- package/dist/modules/workflow/git/git.service.d.ts +34 -11
- package/dist/modules/workflow/git/git.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/git.service.js +173 -37
- package/dist/modules/workflow/git/git.service.js.map +1 -1
- package/dist/modules/workflow/locking-filesystem.d.ts +4 -0
- package/dist/modules/workflow/locking-filesystem.d.ts.map +1 -1
- package/dist/modules/workflow/locking-filesystem.js +181 -28
- package/dist/modules/workflow/locking-filesystem.js.map +1 -1
- package/dist/modules/workflow/pending-commits.service.d.ts +10 -0
- package/dist/modules/workflow/pending-commits.service.d.ts.map +1 -1
- package/dist/modules/workflow/pending-commits.service.js +19 -1
- package/dist/modules/workflow/pending-commits.service.js.map +1 -1
- package/dist/modules/workflow/workflow.service.d.ts +17 -2
- package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.service.js +113 -19
- package/dist/modules/workflow/workflow.service.js.map +1 -1
- package/dist/version.d.ts +14 -0
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +25 -0
- package/dist/version.js.map +1 -1
- package/kb-template/AGENTS.md +4 -1
- package/migrations/0004_file_lock_mode.sql +2 -0
- package/migrations/meta/0004_snapshot.json +1564 -0
- package/migrations/meta/_journal.json +7 -0
- package/package.json +4 -4
- package/src/__tests__/core-config.domain.test.ts +92 -0
- package/src/core/create-core-server.ts +21 -0
- package/src/core/create-core-services.ts +82 -0
- package/src/core-config.ts +48 -4
- package/src/index.ts +10 -0
- package/src/modules/access/__tests__/access-control.service.test.ts +9 -3
- package/src/modules/access/__tests__/access-groups.test.ts +427 -0
- package/src/modules/access/__tests__/access-mutation.service.test.ts +171 -5
- package/src/modules/access/__tests__/access-splice.test.ts +65 -0
- package/src/modules/access/__tests__/access.routes.group-grant.test.ts +337 -0
- package/src/modules/access/__tests__/access.routes.revoke.test.ts +48 -0
- package/src/modules/access/__tests__/admin-locked-commit.test.ts +221 -0
- package/src/modules/access/__tests__/admin-route-helpers.test.ts +61 -0
- package/src/modules/access/__tests__/directory-sync-bot.test.ts +106 -0
- package/src/modules/access/__tests__/grant-sources.test.ts +67 -0
- package/src/modules/access/__tests__/groups-admin.service.test.ts +440 -0
- package/src/modules/access/__tests__/reference-scan.test.ts +288 -0
- package/src/modules/access/__tests__/roles-admin.service.test.ts +161 -83
- package/src/modules/access/__tests__/roles-capabilities.test.ts +325 -0
- package/src/modules/access/__tests__/roles-edit.test.ts +104 -28
- package/src/modules/access/__tests__/roles.routes.test.ts +63 -40
- package/src/modules/access/__tests__/synced-groups-committer.test.ts +238 -0
- package/src/modules/access/__tests__/synced-groups-writer.test.ts +249 -0
- package/src/modules/access/access-control.interface.ts +66 -32
- package/src/modules/access/access-control.service.ts +536 -73
- package/src/modules/access/access-declarations.ts +5 -2
- package/src/modules/access/access-mutation.service.ts +88 -14
- package/src/modules/access/access-splice.ts +55 -17
- package/src/modules/access/access.routes.ts +227 -93
- package/src/modules/access/admin-locked-commit.ts +331 -0
- package/src/modules/access/admin-route-helpers.ts +55 -0
- package/src/modules/access/capability-registry.ts +74 -0
- package/src/modules/access/directory-sync-bot.ts +76 -0
- package/src/modules/access/group-files.ts +212 -0
- package/src/modules/access/groups-admin.routes.ts +113 -0
- package/src/modules/access/groups-admin.service.ts +551 -0
- package/src/modules/access/groups-edit.ts +187 -0
- package/src/modules/access/reference-scan.ts +513 -0
- package/src/modules/access/roles-admin.service.ts +290 -418
- package/src/modules/access/roles-edit.ts +134 -61
- package/src/modules/access/synced-groups-committer.ts +177 -0
- package/src/modules/access/synced-groups-writer.ts +303 -0
- package/src/modules/database/core-schema.ts +9 -0
- package/src/modules/mcp/__tests__/mcp-auth.middleware.test.ts +116 -0
- package/src/modules/mcp/__tests__/mcp.e2e.test.ts +3 -1
- package/src/modules/mcp/__tests__/mcp.routes.delete.test.ts +6 -1
- package/src/modules/mcp/__tests__/mcp.routes.local-token.test.ts +301 -0
- package/src/modules/mcp/mcp-auth.middleware.ts +61 -1
- package/src/modules/mcp/mcp.routes.ts +137 -2
- package/src/modules/mcp/mcp.service.ts +6 -1
- package/src/modules/update-check/__tests__/update-check.routes.test.ts +69 -0
- package/src/modules/update-check/__tests__/update-check.service.test.ts +170 -0
- package/src/modules/update-check/update-check.routes.ts +28 -0
- package/src/modules/update-check/update-check.service.ts +130 -0
- package/src/modules/workflow/__tests__/locking-filesystem.test.ts +336 -0
- package/src/modules/workflow/__tests__/preserve-roles-yaml.test.ts +1 -1
- package/src/modules/workflow/__tests__/workflow.service.commitFileWhileLocked.test.ts +32 -0
- package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +13 -2
- package/src/modules/workflow/__tests__/workflow.service.releaseLock.test.ts +139 -1
- package/src/modules/workflow/file-lock.service.ts +15 -0
- package/src/modules/workflow/git/__tests__/git.service.accessGating.test.ts +0 -1
- package/src/modules/workflow/git/__tests__/git.service.commitChanges.test.ts +132 -0
- package/src/modules/workflow/git/__tests__/git.service.deleteBranch.test.ts +0 -1
- package/src/modules/workflow/git/__tests__/pull-request.service.test.ts +0 -1
- package/src/modules/workflow/git/git.service.ts +182 -35
- package/src/modules/workflow/locking-filesystem.ts +188 -26
- package/src/modules/workflow/pending-commits.service.ts +27 -1
- package/src/modules/workflow/review-workflow/__tests__/approval-states.test.ts +0 -1
- package/src/modules/workflow/review-workflow/__tests__/cancel-pr.test.ts +0 -1
- package/src/modules/workflow/workflow.service.ts +140 -20
- package/src/version.ts +28 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles-admin.service.js","sourceRoot":"","sources":["../../../src/modules/access/roles-admin.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"roles-admin.service.js","sourceRoot":"","sources":["../../../src/modules/access/roles-admin.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAGzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,eAAe,EACf,UAAU,IAAI,cAAc,EAC5B,SAAS,IAAI,aAAa,EAC1B,YAAY,IAAI,gBAAgB,EAChC,eAAe,IAAI,eAAe,EAClC,kBAAkB,IAAI,kBAAkB,EACxC,gBAAgB,EAChB,cAAc,GAEf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,mFAAmF;AACnF,MAAM,OAAO,eAAgB,SAAQ,mBAAmB;IACtD,YAAY,OAAe,EAAE,MAAM,GAAG,GAAG,EAAE,OAAiC;QAC1E,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AA4BD,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,wEAAwE;AACxE,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAExC;;;;;;;;;;;;GAYG;AACH,SAAS,uBAAuB,CAAC,MAAyB;IACxD,OAAO,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAQD,MAAM,OAAO,iBAAiB;IAOT;IACA;IACA;IACA;IAQA;IAQA;IAOA;IAhCnB,oDAAoD;IACnC,MAAM,CAAqB;IAC5C,wDAAwD;IACvC,UAAU,CAAqB;IAEhD,YACmB,gBAAmC,EACnC,eAAiC,EACjC,aAA6B,EAC7B,SAAiB;IAClC;;;;;;OAMG;IACc,eAA6B;IAC9C;;;;;;OAMG;IACc,QAA2B;IAC5C;;;;;OAKG;IACc,iBAAoC,EAAE;QA1BtC,qBAAgB,GAAhB,gBAAgB,CAAmB;QACnC,oBAAe,GAAf,eAAe,CAAkB;QACjC,kBAAa,GAAb,aAAa,CAAgB;QAC7B,cAAS,GAAT,SAAS,CAAQ;QAQjB,oBAAe,GAAf,eAAe,CAAc;QAQ7B,aAAQ,GAAR,QAAQ,CAAmB;QAO3B,mBAAc,GAAd,cAAc,CAAwB;QAEvD,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,CAAC;YACnC,gBAAgB;YAChB,eAAe;YACf,SAAS;YACT,eAAe;YACf,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;YACtF,MAAM,EAAE,aAAa;YACrB,gBAAgB,EAAE,OAAO;YACzB,qEAAqE;YACrE,wEAAwE;YACxE,2DAA2D;YAC3D,aAAa,EAAE,2BAA2B,CAAC,SAAS,CAAC;SACtD,CAAC,CAAC;QACH,wEAAwE;QACxE,sEAAsE;QACtE,2EAA2E;QAC3E,IAAI,CAAC,UAAU,GAAG,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED,yEAAyE;IACzE,IAAY,aAAa;QACvB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;IAED,IAAY,WAAW;QACrB,OAAO,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;OAMG;IACK,UAAU,CAAC,WAAmB,EAAE,KAAe,EAAE,YAAsB;QAC7E,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACxD,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,cAAc;gBACpB,WAAW;gBACX,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE;gBACpC,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAClB,UAAU,EAAE,KAAK,CAAC,IAAI;aACvB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,2EAA2E;IACnE,KAAK,CAAC,eAAe;QAC3B,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,mBAAmB,CAAC,WAAmB,EAAE,KAAe;QACpE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAC7C,WAAW,EACX,IAAI,CAAC,aAAa,EAClB,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,CAClC,CAAC;QACF,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,eAAe,CACvB,6BAA6B,IAAI,CAAC,UAAU,IAAI,eAAe,0BAA0B,EACzF,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,WAAmB;QAC7C,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,CAAC;IAED,0EAA0E;IAE1E,8EAA8E;IAC9E,KAAK,CAAC,SAAS;QACb,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,kEAAkE;QAClE,0EAA0E;QAC1E,0EAA0E;QAC1E,qEAAqE;QACrE,yEAAyE;QACzE,2EAA2E;QAC3E,wEAAwE;QACxE,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;YACjC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SAChE,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,GAAG,GAAsB,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC;gBACP,SAAS;gBACT,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM,EAAE,IAAI,CAAC,OAAO;qBACjB,MAAM,CAAC,gBAAgB,CAAC;qBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClE,OAAO,EAAE,SAAS,KAAK,eAAe;gBACtC,UAAU,EAAE,aAAa;oBACvB,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,aAAa,CAAC,eAAe,EAAE;oBAC5F,CAAC,CAAC,IAAI;gBACR,YAAY,EAAE;oBACZ,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrF,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,iBAAiB,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC;iBACrE;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3E,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,OAAO,CAAC,KAAe;QAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAEjD,4EAA4E;QAC5E,2EAA2E;QAC3E,2EAA2E;QAC3E,6EAA6E;QAC7E,2EAA2E;QAC3E,2EAA2E;QAC3E,2DAA2D;QAC3D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1E,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,0FAA0F,EAC1F,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACzC,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAEtD,4DAA4D;QAC5D,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;YACrD,MAAM,IAAI,eAAe,CACvB,8EAA8E,EAC9E,GAAG,EACH,EAAE,IAAI,EAAE,eAAe,EAAE,CAC1B,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,wEAAwE;YACxE,wEAAwE;YACxE,kEAAkE;YAClE,MAAM,IAAI,eAAe,CACvB,4EAA4E;gBAC1E,wEAAwE,EAC1E,GAAG,EACH,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAC/B,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAEnD,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,CACvC,IAAI,CAAC,UAAU,CACb;YACE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,cAAc,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;YACjE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;SACnG,EACD,4CAA4C,CAC7C,CACF,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,0EAA0E;IAC1E,EAAE;IACF,sEAAsE;IACtE,4EAA4E;IAC5E,yEAAyE;IACzE,sCAAsC;IAEtC,KAAK,CAAC,SAAS,CAAC,KAAe,EAAE,SAAiB,EAAE,KAAa;QAC/D,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAChB,KAAe,EACf,SAAiB,EACjB,KAAa,EACb,OAAgB;QAEhB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,eAAe,CAAC,CAAC;gBACtG,qEAAqE;gBACrE,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjF,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBAChE,MAAM,IAAI,eAAe,CACvB,oGAAoG,EACpG,GAAG,CACJ,CAAC;gBACJ,CAAC;gBACD,IAAI,MAAM,KAAK,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACzF,MAAM,IAAI,eAAe,CAAC,+CAA+C,EAAE,GAAG,EAAE;wBAC9E,IAAI,EAAE,oBAAoB;qBAC3B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,OAAO,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,WAAW,CAAC,KAAe,EAAE,SAAiB,EAAE,SAAiB;QACrE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YACzF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,eAAe,CAAC,mBAAmB,SAAS,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,EAAE;oBAC9F,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE;iBACxB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAe,EAAE,SAAiB,EAAE,SAAiB;QACvE,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,kBAAkB,CAAC,KAAe,EAAE,SAAiB;QACzD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,eAAe,CAAC,IAAI,SAAS,mDAAmD,EAAE,GAAG,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7E,MAAM,IAAI,eAAe,CACvB,mFAAmF,EACnF,GAAG,EACH,EAAE,IAAI,EAAE,UAAU,EAAE,CACrB,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAEnD,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,kEAAkE;QAClE,gEAAgE;QAChE,uEAAuE;QACvE,0EAA0E;QAC1E,4BAA4B;QAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAC7B,WAAW,EACX,KAAK,EACL,CAAC,WAAW,EAAE,UAAU,CAAC,EACzB,KAAK,IAAI,EAAE;YACX,uEAAuE;YACvE,2DAA2D;YAC3D,sEAAsE;YACtE,uDAAuD;YACvD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7E,MAAM,IAAI,eAAe,CACvB,mFAAmF,EACnF,GAAG,EACH,EAAE,IAAI,EAAE,UAAU,EAAE,CACrB,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC,CAAC;YACpG,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,eAAe,CAAC,mBAAmB,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;YAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACxD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,eAAe,CACvB,kFAAkF,EAClF,GAAG,CACJ,CAAC;YACJ,CAAC;YAED,6DAA6D;YAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACpC,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/F,sEAAsE;YACtE,wEAAwE;YACxE,kEAAkE;YAClE,uEAAuE;YACvE,mEAAmE;YACnE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAC9E,IAAI,eAAuB,CAAC;YAC5B,IAAI,CAAC;gBACH,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7C,IAAI,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACvC,MAAM,IAAI,eAAe,CAAC,IAAI,IAAI,CAAC,WAAW,4CAA4C,CAAC,CAAC;gBAC9F,CAAC;gBACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;gBAC3D,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;oBAC5E,MAAM,IAAI,eAAe,CAAC,kBAAkB,IAAI,CAAC,WAAW,kBAAkB,CAAC,CAAC;gBAClF,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChF,eAAe,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,eAAe;oBAAE,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBACvF,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBACpB,MAAM,IAAI,eAAe,CAAC,iCAAiC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACnG,CAAC;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACpC,WAAW,EACX,KAAK,EACL;gBACE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;gBACrE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE;aAC7E,EACD,gBAAgB,IAAI,CAAC,WAAW,aAAa,CAC9C,CAAC;QACF,CAAC,EACD,EAAE,iBAAiB,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAC5C,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,0EAA0E;IAE1E,qEAAqE;IAC7D,SAAS,CAAC,EAAoB;QACpC,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,cAAc;gBAAE,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACtF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,SAAiB;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,OAAO,CACnB,KAAe,EACf,GAAwC;QAExC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CACtE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAC5C,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,WAAmB,EACnB,KAAe,EACf,GAAwC;QAExC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAC5B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,yEAAyE;QACzE,uEAAuE;QACvE,yEAAyE;QACzE,iBAAiB;QACjB,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5F,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACpC,WAAW,EACX,KAAK,EACL,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAC/D,UAAU,UAAU,EAAE,CACvB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACpD,CAAC;CACF"}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* markdown BODY below the frontmatter (the repo-root one is a whole README)
|
|
7
7
|
* that a parse→emit round-trip would silently delete. `roles.yaml` has no body
|
|
8
8
|
* and no frontmatter fence — it is a plain `roles:` mapping of display-name →
|
|
9
|
-
*
|
|
9
|
+
* member list (emails and `group:<name>` refs) — and no real `roles.yaml` in
|
|
10
|
+
* the repo carries comments. So we
|
|
10
11
|
* parse the file into a model, apply the edit, and re-emit a canonical,
|
|
11
12
|
* deterministic file. Re-emit is idempotent (re-emitting an unchanged model
|
|
12
13
|
* yields byte-identical text), so a single edit moves only the lines it
|
|
@@ -23,8 +24,8 @@
|
|
|
23
24
|
*
|
|
24
25
|
* Every mutation returns `{ text, changed }`; `changed: false` means the edit
|
|
25
26
|
* was a no-op (e.g. adding a member who already exists) and the caller should
|
|
26
|
-
* skip the commit. Role ORDER is preserved as parsed
|
|
27
|
-
*
|
|
27
|
+
* skip the commit. Role ORDER is preserved as parsed. Member entries within a
|
|
28
|
+
* role are canonicalised + de-duplicated.
|
|
28
29
|
*
|
|
29
30
|
* This module does NOT enforce the Admin-must-exist / no-self-lockout
|
|
30
31
|
* invariants — those are policy and live in `roles-admin.service.ts`. It only
|
|
@@ -36,7 +37,8 @@ export declare class RolesEditError extends Error {
|
|
|
36
37
|
readonly status: number;
|
|
37
38
|
constructor(message: string, status?: number);
|
|
38
39
|
}
|
|
39
|
-
/** One role in parse order: display name + its de-duplicated member
|
|
40
|
+
/** One role in parse order: display name + its de-duplicated member entries
|
|
41
|
+
* (emails and `group:<canonical>` refs). */
|
|
40
42
|
export interface RoleModel {
|
|
41
43
|
displayName: string;
|
|
42
44
|
/** canonicalised, de-duplicated, in first-seen order */
|
|
@@ -47,20 +49,6 @@ export interface EditResult {
|
|
|
47
49
|
text: string;
|
|
48
50
|
changed: boolean;
|
|
49
51
|
}
|
|
50
|
-
/**
|
|
51
|
-
* Reject role display names whose characters would corrupt the emitted YAML.
|
|
52
|
-
* `canonicalRoleName` only trims/lowercases/collapses spaces — it does NOT
|
|
53
|
-
* reject structural characters, so a name like `Sales: West` or `#temp` would
|
|
54
|
-
* round-trip into a broken file. This guard is the structural complement to the
|
|
55
|
-
* reserved/duplicate checks the service layer applies.
|
|
56
|
-
*
|
|
57
|
-
* `:` mis-tokenises as a nested mapping key
|
|
58
|
-
* `#` truncated as a comment by the subset parser's stripComment
|
|
59
|
-
* `<` / `>` collide with the `Name <email>` user-reference shape
|
|
60
|
-
* leading - tokenises as a list item
|
|
61
|
-
* \x00-\x1f control chars / newlines break line structure outright
|
|
62
|
-
*/
|
|
63
|
-
export declare function assertSafeRoleDisplayName(displayName: string): void;
|
|
64
52
|
/**
|
|
65
53
|
* Parse `roles.yaml` text into the ordered model. Tolerant of an empty/missing
|
|
66
54
|
* file (yields `[]`). Throws RolesEditError on structurally-broken YAML — the
|
|
@@ -74,18 +62,56 @@ export declare function parseRolesModel(text: string): RolesModel;
|
|
|
74
62
|
* with members is emitted as a block list. Always ends with a trailing newline.
|
|
75
63
|
*/
|
|
76
64
|
export declare function emitRolesModel(model: RolesModel): string;
|
|
77
|
-
/**
|
|
78
|
-
|
|
79
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Delete a role by canonical name. 404 if absent.
|
|
67
|
+
*
|
|
68
|
+
* NOTE: roles are app-defined capabilities now — there is no create/rename
|
|
69
|
+
* editor anymore. This deletion survives ONLY as the roles.yaml half of
|
|
70
|
+
* `convertRoleToGroup` (a LEGACY people-set role migrating to a group).
|
|
71
|
+
*/
|
|
80
72
|
export declare function deleteRole(text: string, canonical: string): EditResult;
|
|
81
73
|
/** Add a member email to a role. Idempotent. 422 bad email; 404 unknown role. */
|
|
82
74
|
export declare function addMember(text: string, canonical: string, rawEmail: string): EditResult;
|
|
83
75
|
/** Remove a member email from a role. 404 unknown role; no-op if not a member. */
|
|
84
76
|
export declare function removeMember(text: string, canonical: string, rawEmail: string): EditResult;
|
|
85
77
|
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
78
|
+
* A role member entry that assigns the role to a GROUP (`group:<name>`).
|
|
79
|
+
* Kept in `members` as the normalized `group:<canonical>` string — the
|
|
80
|
+
* parse/emit round-trip preserves it, so unrelated edits can never strip a
|
|
81
|
+
* group assignment.
|
|
82
|
+
*/
|
|
83
|
+
export declare function isGroupRefMember(member: string): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Assign a role to a group. Allowed on every role, Admin included — the
|
|
86
|
+
* resolver's parse-time invariant (Admin keeps at least one DIRECT email
|
|
87
|
+
* member) is what protects the rescue story, and the service validates every
|
|
88
|
+
* candidate through that parser before a byte lands. Idempotent; 404 unknown
|
|
89
|
+
* role.
|
|
90
|
+
*/
|
|
91
|
+
export declare function addRoleGroupRef(text: string, canonical: string, groupName: string): EditResult;
|
|
92
|
+
/**
|
|
93
|
+
* Rewrite every role's `group:<oldCanonical>` assignment to name
|
|
94
|
+
* `group:<newCanonical>` — the roles.yaml half of a group rename. Refs are
|
|
95
|
+
* STORED canonical, so a canonical-changing group rename would otherwise
|
|
96
|
+
* strand them: `mergeGroupsIntoRoles` ignores an unknown ref with a warning,
|
|
97
|
+
* silently shrinking the role's membership. Already-present target refs
|
|
98
|
+
* dedupe rather than duplicate. No-op when nothing references the old name.
|
|
99
|
+
*/
|
|
100
|
+
export declare function renameGroupRefs(text: string, oldCanonical: string, newCanonical: string): EditResult;
|
|
101
|
+
/**
|
|
102
|
+
* Remove every role's `group:<canonical>` assignment — the roles.yaml half of
|
|
103
|
+
* a group DELETION (mirror of {@link renameGroupRefs}): a deleted group's
|
|
104
|
+
* refs would otherwise dangle, silently shrinking each assigned role's
|
|
105
|
+
* membership with only a resolver log warning. Canonical-suffix matching, so
|
|
106
|
+
* un-normalized hand-edited refs are removed too. No-op when nothing
|
|
107
|
+
* references the group.
|
|
89
108
|
*/
|
|
90
|
-
export declare function
|
|
109
|
+
export declare function removeGroupRefsEverywhere(text: string, canonical: string): EditResult;
|
|
110
|
+
/** Remove a role's group assignment. 404 unknown role; no-op if not assigned.
|
|
111
|
+
* Removes EVERY member whose ref canonicalises to the group — a hand-edited
|
|
112
|
+
* file may carry several differently-formatted refs to the same group
|
|
113
|
+
* (`group:gtm team` + `group:GTM Team`), and stripping only the first would
|
|
114
|
+
* leave stragglers the resolver still honors, so the role silently keeps the
|
|
115
|
+
* group after an apparently-successful unassign. */
|
|
116
|
+
export declare function removeRoleGroupRef(text: string, canonical: string, groupName: string): EditResult;
|
|
91
117
|
//# sourceMappingURL=roles-edit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles-edit.d.ts","sourceRoot":"","sources":["../../../src/modules/access/roles-edit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"roles-edit.d.ts","sourceRoot":"","sources":["../../../src/modules/access/roles-edit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAUH,oFAAoF;AACpF,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,OAAO,EAAE,MAAM,EAAE,MAAM,SAAM;CAK1C;AAED;6CAC6C;AAC7C,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,EAAE,CAAC;AAErC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAyCxD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAWxD;AAqBD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAMtE;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAiBvF;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAS1F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAExD;AAqBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAW9F;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,UAAU,CAsBpG;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAYrF;AAED;;;;;qDAKqD;AACrD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAUjG"}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* markdown BODY below the frontmatter (the repo-root one is a whole README)
|
|
7
7
|
* that a parse→emit round-trip would silently delete. `roles.yaml` has no body
|
|
8
8
|
* and no frontmatter fence — it is a plain `roles:` mapping of display-name →
|
|
9
|
-
*
|
|
9
|
+
* member list (emails and `group:<name>` refs) — and no real `roles.yaml` in
|
|
10
|
+
* the repo carries comments. So we
|
|
10
11
|
* parse the file into a model, apply the edit, and re-emit a canonical,
|
|
11
12
|
* deterministic file. Re-emit is idempotent (re-emitting an unchanged model
|
|
12
13
|
* yields byte-identical text), so a single edit moves only the lines it
|
|
@@ -23,15 +24,15 @@
|
|
|
23
24
|
*
|
|
24
25
|
* Every mutation returns `{ text, changed }`; `changed: false` means the edit
|
|
25
26
|
* was a no-op (e.g. adding a member who already exists) and the caller should
|
|
26
|
-
* skip the commit. Role ORDER is preserved as parsed
|
|
27
|
-
*
|
|
27
|
+
* skip the commit. Role ORDER is preserved as parsed. Member entries within a
|
|
28
|
+
* role are canonicalised + de-duplicated.
|
|
28
29
|
*
|
|
29
30
|
* This module does NOT enforce the Admin-must-exist / no-self-lockout
|
|
30
31
|
* invariants — those are policy and live in `roles-admin.service.ts`. It only
|
|
31
32
|
* guarantees the emitted text is structurally well-formed YAML the resolver can
|
|
32
33
|
* load (the service additionally runs `validateRolesYaml` as a backstop gate).
|
|
33
34
|
*/
|
|
34
|
-
import { parseYamlSubset, canonicalRoleName, canonicalEmail, EMAIL_REGEX,
|
|
35
|
+
import { parseYamlSubset, canonicalRoleName, canonicalEmail, EMAIL_REGEX, GROUP_REF_PREFIX, } from './access-control.service.js';
|
|
35
36
|
/** Bad-input failure when editing roles.yaml (invalid name/email, unknown role). */
|
|
36
37
|
export class RolesEditError extends Error {
|
|
37
38
|
status;
|
|
@@ -41,34 +42,6 @@ export class RolesEditError extends Error {
|
|
|
41
42
|
this.status = status;
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
|
-
/**
|
|
45
|
-
* Reject role display names whose characters would corrupt the emitted YAML.
|
|
46
|
-
* `canonicalRoleName` only trims/lowercases/collapses spaces — it does NOT
|
|
47
|
-
* reject structural characters, so a name like `Sales: West` or `#temp` would
|
|
48
|
-
* round-trip into a broken file. This guard is the structural complement to the
|
|
49
|
-
* reserved/duplicate checks the service layer applies.
|
|
50
|
-
*
|
|
51
|
-
* `:` mis-tokenises as a nested mapping key
|
|
52
|
-
* `#` truncated as a comment by the subset parser's stripComment
|
|
53
|
-
* `<` / `>` collide with the `Name <email>` user-reference shape
|
|
54
|
-
* leading - tokenises as a list item
|
|
55
|
-
* \x00-\x1f control chars / newlines break line structure outright
|
|
56
|
-
*/
|
|
57
|
-
export function assertSafeRoleDisplayName(displayName) {
|
|
58
|
-
const trimmed = displayName.trim();
|
|
59
|
-
if (!trimmed)
|
|
60
|
-
throw new RolesEditError('role name must not be empty');
|
|
61
|
-
if (/[:#<>]/.test(trimmed)) {
|
|
62
|
-
throw new RolesEditError(`role name must not contain ':', '#', '<', or '>': ${JSON.stringify(displayName)}`);
|
|
63
|
-
}
|
|
64
|
-
// eslint-disable-next-line no-control-regex
|
|
65
|
-
if (/[\x00-\x1f]/.test(trimmed)) {
|
|
66
|
-
throw new RolesEditError(`role name must not contain control characters: ${JSON.stringify(displayName)}`);
|
|
67
|
-
}
|
|
68
|
-
if (trimmed.startsWith('-')) {
|
|
69
|
-
throw new RolesEditError(`role name must not start with '-': ${JSON.stringify(displayName)}`);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
45
|
/**
|
|
73
46
|
* Parse `roles.yaml` text into the ordered model. Tolerant of an empty/missing
|
|
74
47
|
* file (yields `[]`). Throws RolesEditError on structurally-broken YAML — the
|
|
@@ -158,21 +131,13 @@ function reemit(original, model) {
|
|
|
158
131
|
}
|
|
159
132
|
return { text, changed: text !== originalCanonical };
|
|
160
133
|
}
|
|
161
|
-
/**
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
const model = parseRolesModel(text);
|
|
169
|
-
if (findRole(model, canonical)) {
|
|
170
|
-
throw new RolesEditError(`a role named '${displayName.trim()}' already exists`);
|
|
171
|
-
}
|
|
172
|
-
model.push({ displayName: displayName.trim(), members: [] });
|
|
173
|
-
return reemit(text, model);
|
|
174
|
-
}
|
|
175
|
-
/** Delete a role by canonical name. 404 if absent. */
|
|
134
|
+
/**
|
|
135
|
+
* Delete a role by canonical name. 404 if absent.
|
|
136
|
+
*
|
|
137
|
+
* NOTE: roles are app-defined capabilities now — there is no create/rename
|
|
138
|
+
* editor anymore. This deletion survives ONLY as the roles.yaml half of
|
|
139
|
+
* `convertRoleToGroup` (a LEGACY people-set role migrating to a group).
|
|
140
|
+
*/
|
|
176
141
|
export function deleteRole(text, canonical) {
|
|
177
142
|
const model = parseRolesModel(text);
|
|
178
143
|
const idx = model.findIndex((r) => canonicalRoleName(r.displayName) === canonical);
|
|
@@ -184,6 +149,12 @@ export function deleteRole(text, canonical) {
|
|
|
184
149
|
/** Add a member email to a role. Idempotent. 422 bad email; 404 unknown role. */
|
|
185
150
|
export function addMember(text, canonical, rawEmail) {
|
|
186
151
|
const email = canonicalEmail(rawEmail);
|
|
152
|
+
// A `group:`-prefixed value is a GROUP REFERENCE, not an email — and
|
|
153
|
+
// `group:lee@x.io` would pass the email regex, landing a dead ref the
|
|
154
|
+
// resolver reads as an unknown group. Route the caller to the right editor.
|
|
155
|
+
if (email.startsWith(GROUP_REF_PREFIX)) {
|
|
156
|
+
throw new RolesEditError(`member ${JSON.stringify(rawEmail)} starts with '${GROUP_REF_PREFIX}' — to assign this role to a group, use the group assignment (addRoleGroupRef / the role's Groups control), not a member email`);
|
|
157
|
+
}
|
|
187
158
|
if (!EMAIL_REGEX.test(email))
|
|
188
159
|
throw new RolesEditError(`malformed email: ${JSON.stringify(rawEmail)}`);
|
|
189
160
|
const model = parseRolesModel(text);
|
|
@@ -209,24 +180,127 @@ export function removeMember(text, canonical, rawEmail) {
|
|
|
209
180
|
return reemit(text, model);
|
|
210
181
|
}
|
|
211
182
|
/**
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
183
|
+
* A role member entry that assigns the role to a GROUP (`group:<name>`).
|
|
184
|
+
* Kept in `members` as the normalized `group:<canonical>` string — the
|
|
185
|
+
* parse/emit round-trip preserves it, so unrelated edits can never strip a
|
|
186
|
+
* group assignment.
|
|
215
187
|
*/
|
|
216
|
-
export function
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
188
|
+
export function isGroupRefMember(member) {
|
|
189
|
+
return member.startsWith(GROUP_REF_PREFIX);
|
|
190
|
+
}
|
|
191
|
+
function groupRefFor(groupName) {
|
|
192
|
+
const canonical = canonicalRoleName(groupName);
|
|
193
|
+
if (!canonical)
|
|
194
|
+
throw new RolesEditError('group name must not be empty');
|
|
195
|
+
return `${GROUP_REF_PREFIX}${canonical}`;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* The canonical group name a member entry references, or null for non-refs.
|
|
199
|
+
* Matching MUST go through this rather than string equality on the ref: a
|
|
200
|
+
* hand-edited file may carry an un-normalized ref (`group:GTM Team`) that
|
|
201
|
+
* the RESOLVER honors (it canonicalizes the suffix) — an equality match would
|
|
202
|
+
* then no-op the unassign/rename while the roster still shows the group.
|
|
203
|
+
*/
|
|
204
|
+
function groupRefCanonical(member) {
|
|
205
|
+
return isGroupRefMember(member)
|
|
206
|
+
? canonicalRoleName(member.slice(GROUP_REF_PREFIX.length))
|
|
207
|
+
: null;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Assign a role to a group. Allowed on every role, Admin included — the
|
|
211
|
+
* resolver's parse-time invariant (Admin keeps at least one DIRECT email
|
|
212
|
+
* member) is what protects the rescue story, and the service validates every
|
|
213
|
+
* candidate through that parser before a byte lands. Idempotent; 404 unknown
|
|
214
|
+
* role.
|
|
215
|
+
*/
|
|
216
|
+
export function addRoleGroupRef(text, canonical, groupName) {
|
|
217
|
+
const ref = groupRefFor(groupName);
|
|
218
|
+
const refCanonical = canonicalRoleName(groupName);
|
|
222
219
|
const model = parseRolesModel(text);
|
|
223
220
|
const role = findRole(model, canonical);
|
|
224
221
|
if (!role)
|
|
225
222
|
throw new RolesEditError(`role not found: ${canonical}`, 404);
|
|
226
|
-
if (
|
|
227
|
-
|
|
223
|
+
if (role.members.some((m) => groupRefCanonical(m) === refCanonical)) {
|
|
224
|
+
return { text: emitRolesModel(model), changed: false };
|
|
228
225
|
}
|
|
229
|
-
role.
|
|
226
|
+
role.members.push(ref);
|
|
227
|
+
return reemit(text, model);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Rewrite every role's `group:<oldCanonical>` assignment to name
|
|
231
|
+
* `group:<newCanonical>` — the roles.yaml half of a group rename. Refs are
|
|
232
|
+
* STORED canonical, so a canonical-changing group rename would otherwise
|
|
233
|
+
* strand them: `mergeGroupsIntoRoles` ignores an unknown ref with a warning,
|
|
234
|
+
* silently shrinking the role's membership. Already-present target refs
|
|
235
|
+
* dedupe rather than duplicate. No-op when nothing references the old name.
|
|
236
|
+
*/
|
|
237
|
+
export function renameGroupRefs(text, oldCanonical, newCanonical) {
|
|
238
|
+
const newRef = `${GROUP_REF_PREFIX}${newCanonical}`;
|
|
239
|
+
const model = parseRolesModel(text);
|
|
240
|
+
let changed = false;
|
|
241
|
+
for (const role of model) {
|
|
242
|
+
// A role may carry SEVERAL differently-formatted refs to the same group
|
|
243
|
+
// (un-normalized hand edits) — rewrite them all, or the stragglers point
|
|
244
|
+
// at the renamed-away name and accumulate resolver warnings. Exactly one
|
|
245
|
+
// ref to the new name survives.
|
|
246
|
+
let hasNew = role.members.some((m) => groupRefCanonical(m) === newCanonical);
|
|
247
|
+
for (let i = role.members.length - 1; i >= 0; i--) {
|
|
248
|
+
if (groupRefCanonical(role.members[i]) !== oldCanonical)
|
|
249
|
+
continue;
|
|
250
|
+
if (hasNew)
|
|
251
|
+
role.members.splice(i, 1);
|
|
252
|
+
else {
|
|
253
|
+
role.members[i] = newRef;
|
|
254
|
+
hasNew = true;
|
|
255
|
+
}
|
|
256
|
+
changed = true;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
if (!changed)
|
|
260
|
+
return { text: emitRolesModel(model), changed: false };
|
|
261
|
+
return reemit(text, model);
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Remove every role's `group:<canonical>` assignment — the roles.yaml half of
|
|
265
|
+
* a group DELETION (mirror of {@link renameGroupRefs}): a deleted group's
|
|
266
|
+
* refs would otherwise dangle, silently shrinking each assigned role's
|
|
267
|
+
* membership with only a resolver log warning. Canonical-suffix matching, so
|
|
268
|
+
* un-normalized hand-edited refs are removed too. No-op when nothing
|
|
269
|
+
* references the group.
|
|
270
|
+
*/
|
|
271
|
+
export function removeGroupRefsEverywhere(text, canonical) {
|
|
272
|
+
const model = parseRolesModel(text);
|
|
273
|
+
let changed = false;
|
|
274
|
+
for (const role of model) {
|
|
275
|
+
for (let i = role.members.length - 1; i >= 0; i--) {
|
|
276
|
+
if (groupRefCanonical(role.members[i]) !== canonical)
|
|
277
|
+
continue;
|
|
278
|
+
role.members.splice(i, 1);
|
|
279
|
+
changed = true;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
if (!changed)
|
|
283
|
+
return { text: emitRolesModel(model), changed: false };
|
|
284
|
+
return reemit(text, model);
|
|
285
|
+
}
|
|
286
|
+
/** Remove a role's group assignment. 404 unknown role; no-op if not assigned.
|
|
287
|
+
* Removes EVERY member whose ref canonicalises to the group — a hand-edited
|
|
288
|
+
* file may carry several differently-formatted refs to the same group
|
|
289
|
+
* (`group:gtm team` + `group:GTM Team`), and stripping only the first would
|
|
290
|
+
* leave stragglers the resolver still honors, so the role silently keeps the
|
|
291
|
+
* group after an apparently-successful unassign. */
|
|
292
|
+
export function removeRoleGroupRef(text, canonical, groupName) {
|
|
293
|
+
const refCanonical = canonicalRoleName(groupName);
|
|
294
|
+
if (!refCanonical)
|
|
295
|
+
throw new RolesEditError('group name must not be empty');
|
|
296
|
+
const model = parseRolesModel(text);
|
|
297
|
+
const role = findRole(model, canonical);
|
|
298
|
+
if (!role)
|
|
299
|
+
throw new RolesEditError(`role not found: ${canonical}`, 404);
|
|
300
|
+
const kept = role.members.filter((m) => groupRefCanonical(m) !== refCanonical);
|
|
301
|
+
if (kept.length === role.members.length)
|
|
302
|
+
return { text: emitRolesModel(model), changed: false };
|
|
303
|
+
role.members = kept;
|
|
230
304
|
return reemit(text, model);
|
|
231
305
|
}
|
|
232
306
|
//# sourceMappingURL=roles-edit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles-edit.js","sourceRoot":"","sources":["../../../src/modules/access/roles-edit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"roles-edit.js","sourceRoot":"","sources":["../../../src/modules/access/roles-edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { AuthUser, IWorkflowService } from '@bevel-software/platform-shared';
|
|
2
|
+
import type { WorkspaceService } from '../workspace/workspace.service.js';
|
|
3
|
+
import type { AccessControlService } from './access-control.service.js';
|
|
4
|
+
import type { WorkflowEventBus } from '../workflow/event-bus.js';
|
|
5
|
+
import type { SyncedGroupsWriterDeps } from './synced-groups-writer.js';
|
|
6
|
+
/**
|
|
7
|
+
* The git half of the synced-groups materializer: reads/commits
|
|
8
|
+
* `synced-groups.yaml` on the DEFAULT branch through the same lock-aware
|
|
9
|
+
* pipeline every other in-app write uses, attributed to the directory-sync
|
|
10
|
+
* bot. Split from {@link SyncedGroupsWriter} so the writer's render/debounce
|
|
11
|
+
* logic stays testable against plain fakes.
|
|
12
|
+
*
|
|
13
|
+
* All three functions are resilient to an UNCONFIGURED deployment (no branch
|
|
14
|
+
* model yet): reads answer null and writes throw a descriptive error — the
|
|
15
|
+
* writer logs it; a SCIM push arriving before setup completes is a
|
|
16
|
+
* configuration race, not a crash.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createSyncedGroupsCommitter(deps: {
|
|
19
|
+
workspaceService: WorkspaceService;
|
|
20
|
+
workflowService: IWorkflowService;
|
|
21
|
+
accessControl: AccessControlService;
|
|
22
|
+
eventBus: WorkflowEventBus;
|
|
23
|
+
kbDirName: string;
|
|
24
|
+
bot: AuthUser;
|
|
25
|
+
/** Thunk — DEFAULT_BRANCH is a live binding that stays empty until setup. */
|
|
26
|
+
defaultBranchOf: () => string;
|
|
27
|
+
}): Pick<SyncedGroupsWriterDeps, 'readCurrent' | 'persist' | 'onWritten'>;
|
|
28
|
+
//# sourceMappingURL=synced-groups-committer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synced-groups-committer.d.ts","sourceRoot":"","sources":["../../../src/modules/access/synced-groups-committer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,eAAe,EAAE,gBAAgB,CAAC;IAClC,aAAa,EAAE,oBAAoB,CAAC;IACpC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,QAAQ,CAAC;IACd,6EAA6E;IAC7E,eAAe,EAAE,MAAM,MAAM,CAAC;CAC/B,GAAG,IAAI,CAAC,sBAAsB,EAAE,aAAa,GAAG,SAAS,GAAG,WAAW,CAAC,CAgJxE"}
|