canopycms 0.0.61-int.74 → 0.0.61
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/dist/ai/handler.js +1 -1
- package/dist/ai/handler.js.map +1 -1
- package/dist/api/assets.d.ts.map +1 -1
- package/dist/api/assets.js +36 -4
- package/dist/api/assets.js.map +1 -1
- package/dist/api/branch-status.d.ts.map +1 -1
- package/dist/api/branch-status.js +56 -0
- package/dist/api/branch-status.js.map +1 -1
- package/dist/api/branch-withdraw.d.ts.map +1 -1
- package/dist/api/branch-withdraw.js +14 -3
- package/dist/api/branch-withdraw.js.map +1 -1
- package/dist/api/branch.d.ts +31 -2
- package/dist/api/branch.d.ts.map +1 -1
- package/dist/api/branch.js +252 -13
- package/dist/api/branch.js.map +1 -1
- package/dist/api/content.d.ts.map +1 -1
- package/dist/api/content.js +12 -4
- package/dist/api/content.js.map +1 -1
- package/dist/api/entries.d.ts.map +1 -1
- package/dist/api/entries.js +11 -9
- package/dist/api/entries.js.map +1 -1
- package/dist/api/guards.d.ts.map +1 -1
- package/dist/api/guards.js +12 -5
- package/dist/api/guards.js.map +1 -1
- package/dist/api/permissions.d.ts +2 -2
- package/dist/api/permissions.d.ts.map +1 -1
- package/dist/api/permissions.js +51 -3
- package/dist/api/permissions.js.map +1 -1
- package/dist/api/reference-options.d.ts.map +1 -1
- package/dist/api/reference-options.js +10 -17
- package/dist/api/reference-options.js.map +1 -1
- package/dist/api/resolve-references.d.ts.map +1 -1
- package/dist/api/resolve-references.js +3 -1
- package/dist/api/resolve-references.js.map +1 -1
- package/dist/api/schema.d.ts.map +1 -1
- package/dist/api/schema.js +3 -2
- package/dist/api/schema.js.map +1 -1
- package/dist/api/settings-helpers.d.ts.map +1 -1
- package/dist/api/settings-helpers.js +6 -5
- package/dist/api/settings-helpers.js.map +1 -1
- package/dist/assets/pipeline.d.ts +11 -2
- package/dist/assets/pipeline.d.ts.map +1 -1
- package/dist/assets/pipeline.js +114 -2
- package/dist/assets/pipeline.js.map +1 -1
- package/dist/assets/transform-directives.d.ts +18 -0
- package/dist/assets/transform-directives.d.ts.map +1 -1
- package/dist/assets/transform-directives.js +18 -0
- package/dist/assets/transform-directives.js.map +1 -1
- package/dist/assets/transform.d.ts.map +1 -1
- package/dist/assets/transform.js +1 -10
- package/dist/assets/transform.js.map +1 -1
- package/dist/auth/types.d.ts +29 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/index.d.ts +1 -1
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +1 -1
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/protected-branch.d.ts +75 -0
- package/dist/authorization/protected-branch.d.ts.map +1 -1
- package/dist/authorization/protected-branch.js +39 -0
- package/dist/authorization/protected-branch.js.map +1 -1
- package/dist/branch-registry.d.ts.map +1 -1
- package/dist/branch-registry.js +5 -1
- package/dist/branch-registry.js.map +1 -1
- package/dist/branch-schema-cache.d.ts.map +1 -1
- package/dist/branch-schema-cache.js +9 -0
- package/dist/branch-schema-cache.js.map +1 -1
- package/dist/build/generate-ai-content.js +1 -1
- package/dist/build/generate-ai-content.js.map +1 -1
- package/dist/cli/cli.js +1442 -828
- package/dist/cli/generate-ai-content.js +404 -136
- package/dist/cli/init.d.ts +8 -2
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +440 -151
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/project-detect.d.ts +89 -0
- package/dist/cli/project-detect.d.ts.map +1 -0
- package/dist/cli/project-detect.js +240 -0
- package/dist/cli/project-detect.js.map +1 -0
- package/dist/cli/template-files/Dockerfile.cms.template +11 -6
- package/dist/cli/template-files/cdk-app.ts.template +82 -0
- package/dist/cli/template-files/cdk.json.template +9 -0
- package/dist/cli/template-files/cms-stack.ts.template +124 -0
- package/dist/cli/template-files/deploy-cms.yml.template +125 -13
- package/dist/cli/template-files/dockerignore.template +2 -1
- package/dist/cli/templates.d.ts +26 -2
- package/dist/cli/templates.d.ts.map +1 -1
- package/dist/cli/templates.js +36 -4
- package/dist/cli/templates.js.map +1 -1
- package/dist/config/schemas/config.d.ts +2 -3
- package/dist/config/schemas/config.d.ts.map +1 -1
- package/dist/config/schemas/config.js +21 -1
- package/dist/config/schemas/config.js.map +1 -1
- package/dist/config/validation.d.ts +9 -0
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +22 -12
- package/dist/config/validation.js.map +1 -1
- package/dist/content-reader.js +1 -1
- package/dist/content-reader.js.map +1 -1
- package/dist/content-store.d.ts +11 -0
- package/dist/content-store.d.ts.map +1 -1
- package/dist/content-store.js +2 -1
- package/dist/content-store.js.map +1 -1
- package/dist/dev-content-watcher.d.ts.map +1 -1
- package/dist/dev-content-watcher.js +4 -1
- package/dist/dev-content-watcher.js.map +1 -1
- package/dist/editor/BranchManager.d.ts +15 -0
- package/dist/editor/BranchManager.d.ts.map +1 -1
- package/dist/editor/BranchManager.js +43 -9
- package/dist/editor/BranchManager.js.map +1 -1
- package/dist/editor/CanopyEditor.d.ts.map +1 -1
- package/dist/editor/CanopyEditor.js +2 -2
- package/dist/editor/CanopyEditor.js.map +1 -1
- package/dist/editor/Editor.d.ts.map +1 -1
- package/dist/editor/Editor.js +110 -48
- package/dist/editor/Editor.js.map +1 -1
- package/dist/editor/admin/SystemHealthPanel.d.ts.map +1 -1
- package/dist/editor/admin/SystemHealthPanel.js +9 -8
- package/dist/editor/admin/SystemHealthPanel.js.map +1 -1
- package/dist/editor/components/EditorHeader.d.ts +6 -0
- package/dist/editor/components/EditorHeader.d.ts.map +1 -1
- package/dist/editor/components/EditorHeader.js +76 -23
- package/dist/editor/components/EditorHeader.js.map +1 -1
- package/dist/editor/components/EntryCreateModal.d.ts.map +1 -1
- package/dist/editor/components/EntryCreateModal.js +21 -6
- package/dist/editor/components/EntryCreateModal.js.map +1 -1
- package/dist/editor/context/SWRProvider.d.ts +31 -0
- package/dist/editor/context/SWRProvider.d.ts.map +1 -0
- package/dist/editor/context/SWRProvider.js +12 -0
- package/dist/editor/context/SWRProvider.js.map +1 -0
- package/dist/editor/context/index.d.ts +3 -0
- package/dist/editor/context/index.d.ts.map +1 -1
- package/dist/editor/context/index.js +3 -0
- package/dist/editor/context/index.js.map +1 -1
- package/dist/editor/editor-utils.d.ts.map +1 -1
- package/dist/editor/editor-utils.js +8 -2
- package/dist/editor/editor-utils.js.map +1 -1
- package/dist/editor/fields/ImageField.d.ts.map +1 -1
- package/dist/editor/fields/ImageField.js +27 -3
- package/dist/editor/fields/ImageField.js.map +1 -1
- package/dist/editor/fields/ReferenceField.d.ts.map +1 -1
- package/dist/editor/fields/ReferenceField.js +52 -31
- package/dist/editor/fields/ReferenceField.js.map +1 -1
- package/dist/editor/hooks/__test__/test-utils.d.ts +38 -3
- package/dist/editor/hooks/__test__/test-utils.d.ts.map +1 -1
- package/dist/editor/hooks/__test__/test-utils.js +50 -4
- package/dist/editor/hooks/__test__/test-utils.js.map +1 -1
- package/dist/editor/hooks/index.d.ts +4 -1
- package/dist/editor/hooks/index.d.ts.map +1 -1
- package/dist/editor/hooks/index.js +4 -1
- package/dist/editor/hooks/index.js.map +1 -1
- package/dist/editor/hooks/useBranchManager.d.ts +21 -1
- package/dist/editor/hooks/useBranchManager.d.ts.map +1 -1
- package/dist/editor/hooks/useBranchManager.js +68 -32
- package/dist/editor/hooks/useBranchManager.js.map +1 -1
- package/dist/editor/hooks/useBranchesData.d.ts +57 -0
- package/dist/editor/hooks/useBranchesData.d.ts.map +1 -0
- package/dist/editor/hooks/useBranchesData.js +69 -0
- package/dist/editor/hooks/useBranchesData.js.map +1 -0
- package/dist/editor/hooks/useCommentSystem.d.ts.map +1 -1
- package/dist/editor/hooks/useCommentSystem.js +24 -22
- package/dist/editor/hooks/useCommentSystem.js.map +1 -1
- package/dist/editor/hooks/useCommentsData.d.ts +29 -0
- package/dist/editor/hooks/useCommentsData.d.ts.map +1 -0
- package/dist/editor/hooks/useCommentsData.js +40 -0
- package/dist/editor/hooks/useCommentsData.js.map +1 -0
- package/dist/editor/hooks/useDraftManager.d.ts.map +1 -1
- package/dist/editor/hooks/useDraftManager.js +32 -18
- package/dist/editor/hooks/useDraftManager.js.map +1 -1
- package/dist/editor/hooks/useEntriesData.d.ts +35 -0
- package/dist/editor/hooks/useEntriesData.d.ts.map +1 -0
- package/dist/editor/hooks/useEntriesData.js +96 -0
- package/dist/editor/hooks/useEntriesData.js.map +1 -0
- package/dist/editor/hooks/useEntryManager.d.ts +8 -15
- package/dist/editor/hooks/useEntryManager.d.ts.map +1 -1
- package/dist/editor/hooks/useEntryManager.js +259 -117
- package/dist/editor/hooks/useEntryManager.js.map +1 -1
- package/dist/editor/hooks/usePermissionManager.d.ts +2 -2
- package/dist/editor/hooks/usePermissionManager.d.ts.map +1 -1
- package/dist/editor/hooks/usePermissionManager.js +11 -9
- package/dist/editor/hooks/usePermissionManager.js.map +1 -1
- package/dist/editor/hooks/useReferenceResolution.d.ts.map +1 -1
- package/dist/editor/hooks/useReferenceResolution.js +24 -1
- package/dist/editor/hooks/useReferenceResolution.js.map +1 -1
- package/dist/editor/media/MediaLibraryBody.d.ts.map +1 -1
- package/dist/editor/media/MediaLibraryBody.js +12 -2
- package/dist/editor/media/MediaLibraryBody.js.map +1 -1
- package/dist/editor/permission-manager/GroupSelector.d.ts.map +1 -1
- package/dist/editor/permission-manager/GroupSelector.js +7 -2
- package/dist/editor/permission-manager/GroupSelector.js.map +1 -1
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts +3 -3
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts.map +1 -1
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js +1 -0
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js.map +1 -1
- package/dist/editor/permission-manager/types.d.ts +6 -4
- package/dist/editor/permission-manager/types.d.ts.map +1 -1
- package/dist/editor/test-setup.js +8 -0
- package/dist/editor/test-setup.js.map +1 -1
- package/dist/git-manager.d.ts +126 -9
- package/dist/git-manager.d.ts.map +1 -1
- package/dist/git-manager.js +251 -27
- package/dist/git-manager.js.map +1 -1
- package/dist/github-service.d.ts.map +1 -1
- package/dist/github-service.js +13 -7
- package/dist/github-service.js.map +1 -1
- package/dist/http/handler.d.ts.map +1 -1
- package/dist/http/handler.js +8 -2
- package/dist/http/handler.js.map +1 -1
- package/dist/operating-mode/client-unsafe-strategy.d.ts.map +1 -1
- package/dist/operating-mode/client-unsafe-strategy.js +7 -8
- package/dist/operating-mode/client-unsafe-strategy.js.map +1 -1
- package/dist/operating-mode/deployment-name.d.ts +28 -0
- package/dist/operating-mode/deployment-name.d.ts.map +1 -0
- package/dist/operating-mode/deployment-name.js +78 -0
- package/dist/operating-mode/deployment-name.js.map +1 -0
- package/dist/operating-mode/index.d.ts +5 -1
- package/dist/operating-mode/index.d.ts.map +1 -1
- package/dist/operating-mode/index.js +7 -1
- package/dist/operating-mode/index.js.map +1 -1
- package/dist/operating-mode/types.d.ts +13 -3
- package/dist/operating-mode/types.d.ts.map +1 -1
- package/dist/paths/branch-name.d.ts +38 -0
- package/dist/paths/branch-name.d.ts.map +1 -1
- package/dist/paths/branch-name.js +46 -0
- package/dist/paths/branch-name.js.map +1 -1
- package/dist/paths/index.d.ts +1 -1
- package/dist/paths/index.d.ts.map +1 -1
- package/dist/paths/index.js +1 -1
- package/dist/paths/index.js.map +1 -1
- package/dist/reference-resolver.d.ts +6 -2
- package/dist/reference-resolver.d.ts.map +1 -1
- package/dist/reference-resolver.js +8 -1
- package/dist/reference-resolver.js.map +1 -1
- package/dist/schema/meta-loader.d.ts.map +1 -1
- package/dist/schema/meta-loader.js +10 -2
- package/dist/schema/meta-loader.js.map +1 -1
- package/dist/schema/schema-store.d.ts +11 -2
- package/dist/schema/schema-store.d.ts.map +1 -1
- package/dist/schema/schema-store.js +23 -11
- package/dist/schema/schema-store.js.map +1 -1
- package/dist/settings-workspace.d.ts +0 -15
- package/dist/settings-workspace.d.ts.map +1 -1
- package/dist/settings-workspace.js +97 -1
- package/dist/settings-workspace.js.map +1 -1
- package/dist/types.d.ts +63 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/debug.d.ts +11 -0
- package/dist/utils/debug.d.ts.map +1 -1
- package/dist/utils/debug.js +12 -1
- package/dist/utils/debug.js.map +1 -1
- package/dist/utils/git.d.ts +38 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +69 -0
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/logger.d.ts +71 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +85 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/validation/entry-type-reference-validator.d.ts +33 -0
- package/dist/validation/entry-type-reference-validator.d.ts.map +1 -0
- package/dist/validation/entry-type-reference-validator.js +110 -0
- package/dist/validation/entry-type-reference-validator.js.map +1 -0
- package/dist/worker/cms-worker.d.ts +232 -3
- package/dist/worker/cms-worker.d.ts.map +1 -1
- package/dist/worker/cms-worker.js +856 -87
- package/dist/worker/cms-worker.js.map +1 -1
- package/dist/worker/log.d.ts +61 -0
- package/dist/worker/log.d.ts.map +1 -0
- package/dist/worker/log.js +74 -0
- package/dist/worker/log.js.map +1 -0
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePermissionManager.js","sourceRoot":"","sources":["../../../src/editor/hooks/usePermissionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAkBzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAoC;IAEpC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAmB,EAAE,CAAC,CAAA;IAC5E,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnE,0EAA0E;IAC1E,8DAA8D;IAC9D,mEAAmE;IACnE,2EAA2E;IAC3E,2EAA2E;IAC3E,gBAAgB;IAChB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IAE5B,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;QACjC,qBAAqB,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,CAAA;YAChD,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAC7D,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC,CAAA;YAClD,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAA;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;YACjD,aAAa,CAAC,IAAI,CAAC;gBACjB,OAAO,EAAE,4BAA4B;gBACrC,KAAK,EAAE,KAAK;aACb,CAAC,CAAA;QACJ,CAAC;gBAAS,CAAC;YACT,qBAAqB,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC,CAAA;IAED,MAAM,qBAAqB,GAAG,KAAK,EAAE,WAA6B,EAAE,EAAE;QACpE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC;gBAChD,WAAW;gBACX,sBAAsB,EAAE,UAAU,CAAC,OAAO;aAC3C,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,4BAA4B,CAAC,CAAA;YAC/D,CAAC;YACD,aAAa,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,mBAAmB;gBAC1B,OAAO,EAAE,+BAA+B;gBACxC,KAAK,EAAE,OAAO;aACf,CAAC,CAAA;YACF,MAAM,eAAe,EAAE,CAAA;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAA;YACjF,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YAC7C,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,
|
|
1
|
+
{"version":3,"file":"usePermissionManager.js","sourceRoot":"","sources":["../../../src/editor/hooks/usePermissionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReferenceResolution.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useReferenceResolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAI/C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE/C,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAA;IACrD,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,KAAK,IAAI,CAAA;CACzD;AAED,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,SAAS,CAAA;IACxB,YAAY,EAAE,SAAS,CAAA;CACxB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,oBAAoB,GACrB,EAAE,6BAA6B,GAAG,4BAA4B,
|
|
1
|
+
{"version":3,"file":"useReferenceResolution.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useReferenceResolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAI/C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE/C,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAA;IACrD,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,KAAK,IAAI,CAAA;CACzD;AAED,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,SAAS,CAAA;IACxB,YAAY,EAAE,SAAS,CAAA;CACxB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,oBAAoB,GACrB,EAAE,6BAA6B,GAAG,4BAA4B,CAqN9D"}
|
|
@@ -38,6 +38,14 @@ export function useReferenceResolution({ value, fields, branch, onResolvedValueC
|
|
|
38
38
|
const prevValueRef = useRef({}); // Track previous value for change detection
|
|
39
39
|
const lastNotifiedValueRef = useRef(''); // Track last notified value to prevent infinite loops
|
|
40
40
|
const [resolutionTrigger, setResolutionTrigger] = useState(0); // Trigger to force useMemo re-computation
|
|
41
|
+
// Monotonic token identifying the current debounced-resolve attempt.
|
|
42
|
+
// Clearing the setTimeout in the effect cleanup only cancels a resolve
|
|
43
|
+
// that HASN'T fired yet; once the 300ms elapses and the async callback
|
|
44
|
+
// below starts awaiting `resolveChangedReferences`, clearTimeout can no
|
|
45
|
+
// longer stop it. The generation check after that await catches the case
|
|
46
|
+
// clearTimeout can't: a newer value/branch superseding this attempt, or
|
|
47
|
+
// the component unmounting, while the network call was in flight.
|
|
48
|
+
const resolveGenerationRef = useRef(0);
|
|
41
49
|
// Map field names to their types for fast lookup
|
|
42
50
|
const referenceFieldNames = useMemo(() => {
|
|
43
51
|
const names = new Set();
|
|
@@ -143,11 +151,20 @@ export function useReferenceResolution({ value, fields, branch, onResolvedValueC
|
|
|
143
151
|
prevValueRef.current = value;
|
|
144
152
|
return;
|
|
145
153
|
}
|
|
154
|
+
// Claim a generation for this attempt before scheduling the debounce, so
|
|
155
|
+
// the check below always compares against the token captured at the
|
|
156
|
+
// moment THIS attempt was scheduled -- not whatever the ref happens to
|
|
157
|
+
// hold when the callback resumes after its await.
|
|
158
|
+
const generation = ++resolveGenerationRef.current;
|
|
146
159
|
// Debounce API calls to batch multiple rapid changes
|
|
147
160
|
const timeout = setTimeout(async () => {
|
|
148
161
|
try {
|
|
149
162
|
// Resolve uncached IDs via API
|
|
150
163
|
const updates = await resolveChangedReferences(prevValueRef.current, value, fields, branch, resolvedCache.current);
|
|
164
|
+
// A newer value/branch superseded this attempt, or the component
|
|
165
|
+
// unmounted, while the request above was in flight -- discard.
|
|
166
|
+
if (generation !== resolveGenerationRef.current)
|
|
167
|
+
return;
|
|
151
168
|
// Update cache with resolved values
|
|
152
169
|
for (const [fieldName, resolvedFieldValue] of Object.entries(updates)) {
|
|
153
170
|
if (Array.isArray(resolvedFieldValue)) {
|
|
@@ -176,7 +193,13 @@ export function useReferenceResolution({ value, fields, branch, onResolvedValueC
|
|
|
176
193
|
console.error('Reference resolution failed:', error);
|
|
177
194
|
}
|
|
178
195
|
}, 300); // 300ms debounce
|
|
179
|
-
return () =>
|
|
196
|
+
return () => {
|
|
197
|
+
clearTimeout(timeout);
|
|
198
|
+
// Invalidate this attempt's generation on cleanup too, not just when a
|
|
199
|
+
// newer effect run claims the next one: cleanup is what fires on
|
|
200
|
+
// unmount, where there IS no next run to bump the counter otherwise.
|
|
201
|
+
++resolveGenerationRef.current;
|
|
202
|
+
};
|
|
180
203
|
}, [value, fields, branch, referenceFieldNames]);
|
|
181
204
|
// Clear cache when branch changes
|
|
182
205
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReferenceResolution.js","sourceRoot":"","sources":["../../../src/editor/hooks/useReferenceResolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAiBrE,MAAM,UAAU,sBAAsB,CAAC,EACrC,KAAK,EACL,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,oBAAoB,GACU;IAC9B,MAAM,aAAa,GAAG,MAAM,CAAuB,IAAI,GAAG,EAAE,CAAC,CAAA;IAC7D,MAAM,YAAY,GAAG,MAAM,CAAY,EAAE,CAAC,CAAA,CAAC,4CAA4C;IACvF,MAAM,oBAAoB,GAAG,MAAM,CAAS,EAAE,CAAC,CAAA,CAAC,sDAAsD;IACtG,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC,0CAA0C;
|
|
1
|
+
{"version":3,"file":"useReferenceResolution.js","sourceRoot":"","sources":["../../../src/editor/hooks/useReferenceResolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaLibraryBody.d.ts","sourceRoot":"","sources":["../../../src/editor/media/MediaLibraryBody.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAkB/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAiB5C,MAAM,WAAW,qBAAqB;IACpC,uGAAuG;IACvG,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;IACzB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;CACxC;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"MediaLibraryBody.d.ts","sourceRoot":"","sources":["../../../src/editor/media/MediaLibraryBody.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAkB/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAiB5C,MAAM,WAAW,qBAAqB;IACpC,uGAAuG;IACvG,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;IACzB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;CACxC;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAmN5D,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
|
@@ -24,7 +24,17 @@ export const MediaLibraryBody = ({ opened, mode, onSelect }) => {
|
|
|
24
24
|
const client = useApiClient();
|
|
25
25
|
const { baseUrl } = useAssetContext();
|
|
26
26
|
const { userContext } = useUserContext();
|
|
27
|
-
|
|
27
|
+
// Mirrors the server's rule in api/assets.ts's deleteAssetHandler: an admin
|
|
28
|
+
// may delete anything, anyone else only what they uploaded. Kept per-asset
|
|
29
|
+
// (not a single boolean) because ownership varies row by row. The server is
|
|
30
|
+
// still the authority - this only decides whether to render the control.
|
|
31
|
+
const canDeleteAsset = (asset) => {
|
|
32
|
+
if (mode !== 'manage')
|
|
33
|
+
return false;
|
|
34
|
+
if (isAdmin(userContext?.groups))
|
|
35
|
+
return true;
|
|
36
|
+
return !!asset.uploadedBy && asset.uploadedBy === userContext?.userId;
|
|
37
|
+
};
|
|
28
38
|
const upload = useAssetUpload();
|
|
29
39
|
// `picker` mode is used exclusively by ImageField and the MDX image dialog
|
|
30
40
|
// (see MediaLibraryProps.mode's doc comment) - both image-only contexts.
|
|
@@ -127,7 +137,7 @@ export const MediaLibraryBody = ({ opened, mode, onSelect }) => {
|
|
|
127
137
|
return (_jsxs(Stack, { gap: "sm", h: "100%", style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Dropzone, { onDrop: (files) => void handleDrop(files), onReject: handleReject, maxSize: MAX_UPLOAD_BYTES, accept: imageOnly ? ACCEPTED_IMAGE_MIME_TYPES : ACCEPTED_ASSET_MIME_TYPES, loading: upload.uploading, multiple: false, "data-testid": "media-library-dropzone", children: _jsxs(Group, { justify: "center", gap: "xs", py: "sm", style: { pointerEvents: 'none' }, children: [_jsx(IconUpload, { size: 20 }), _jsx(Text, { size: "sm", children: imageOnly
|
|
128
138
|
? 'Drop an image here, or click to browse'
|
|
129
139
|
: 'Drop an image or PDF here, or click to browse' })] }) }), upload.uploading &&
|
|
130
|
-
(upload.progress !== null ? (_jsx(Progress, { value: upload.progress * 100, size: "sm", "data-testid": "upload-progress" })) : (_jsx(Progress, { value: 100, size: "sm", animated: true, "data-testid": "upload-progress-indeterminate" }))), upload.error && (_jsx(Alert, { icon: _jsx(IconAlertCircle, { size: 16 }), color: "red", "data-testid": "upload-error", children: upload.error })), _jsx(TextInput, { placeholder: "Filter by filename...", value: filterText, onChange: (event) => setFilterText(event.currentTarget.value), "data-testid": "media-library-filter" }), listError && (_jsx(Alert, { icon: _jsx(IconAlertCircle, { size: 16 }), color: "red", "data-testid": "media-library-error", children: _jsxs(Stack, { gap: 4, children: [_jsx(Text, { size: "sm", children: listError }), _jsx(Button, { size: "xs", variant: "light", onClick: () => void loadFirstPage(), children: "Retry" })] }) })), _jsxs(ScrollArea, { style: { flex: 1 }, children: [loading ? (_jsx(Group, { justify: "center", py: "xl", children: _jsx(Loader, { size: "sm", "data-testid": "media-library-loading" }) })) : filteredAssets.length === 0 ? (_jsx(Text, { size: "sm", c: "dimmed", py: "xl", ta: "center", children: "No assets found." })) : (_jsx(SimpleGrid, { cols: { base: 2, sm: 3, md: 4 }, spacing: "sm", children: filteredAssets.map((asset) => (_jsx(AssetCard, { asset: asset, baseUrl: baseUrl, onSelect: mode === 'picker' ? onSelect : undefined, onDelete:
|
|
140
|
+
(upload.progress !== null ? (_jsx(Progress, { value: upload.progress * 100, size: "sm", "data-testid": "upload-progress" })) : (_jsx(Progress, { value: 100, size: "sm", animated: true, "data-testid": "upload-progress-indeterminate" }))), upload.error && (_jsx(Alert, { icon: _jsx(IconAlertCircle, { size: 16 }), color: "red", "data-testid": "upload-error", children: upload.error })), _jsx(TextInput, { placeholder: "Filter by filename...", value: filterText, onChange: (event) => setFilterText(event.currentTarget.value), "data-testid": "media-library-filter" }), listError && (_jsx(Alert, { icon: _jsx(IconAlertCircle, { size: 16 }), color: "red", "data-testid": "media-library-error", children: _jsxs(Stack, { gap: 4, children: [_jsx(Text, { size: "sm", children: listError }), _jsx(Button, { size: "xs", variant: "light", onClick: () => void loadFirstPage(), children: "Retry" })] }) })), _jsxs(ScrollArea, { style: { flex: 1 }, children: [loading ? (_jsx(Group, { justify: "center", py: "xl", children: _jsx(Loader, { size: "sm", "data-testid": "media-library-loading" }) })) : filteredAssets.length === 0 ? (_jsx(Text, { size: "sm", c: "dimmed", py: "xl", ta: "center", children: "No assets found." })) : (_jsx(SimpleGrid, { cols: { base: 2, sm: 3, md: 4 }, spacing: "sm", children: filteredAssets.map((asset) => (_jsx(AssetCard, { asset: asset, baseUrl: baseUrl, onSelect: mode === 'picker' ? onSelect : undefined, onDelete: canDeleteAsset(asset) ? () => handleDeleteClick(asset) : undefined }, asset.hash32))) })), !loading && nextCursor && (_jsx(Group, { justify: "center", py: "sm", children: _jsx(Button, { variant: "light", size: "xs", loading: loadingMore, onClick: () => void handleLoadMore(), "data-testid": "media-library-load-more", children: "Load more" }) }))] })] }));
|
|
131
141
|
};
|
|
132
142
|
export default MediaLibraryBody;
|
|
133
143
|
//# sourceMappingURL=MediaLibraryBody.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaLibraryBody.js","sourceRoot":"","sources":["../../../src/editor/media/MediaLibraryBody.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE/D,OAAO,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,UAAU,EACV,KAAK,EACL,IAAI,EACJ,SAAS,GACV,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,QAAQ,EAAsB,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,kFAAkF;AAClF,qFAAqF;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,SAAS,GAAG,EAAE,CAAA;AAUpB;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9F,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAA;IACrC,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAA;IACxC,MAAM,
|
|
1
|
+
{"version":3,"file":"MediaLibraryBody.js","sourceRoot":"","sources":["../../../src/editor/media/MediaLibraryBody.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupSelector.d.ts","sourceRoot":"","sources":["../../../src/editor/permission-manager/GroupSelector.tsx"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"GroupSelector.d.ts","sourceRoot":"","sources":["../../../src/editor/permission-manager/GroupSelector.tsx"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,SAAS,CAAA;AAQ3D,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,cAAc,EAAE,eAAe,EAAE,CAAA;IACjC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAiEtD,CAAA"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Paper, Stack, Text } from '@mantine/core';
|
|
3
|
+
import { Group, Paper, Stack, Text } from '@mantine/core';
|
|
4
|
+
const GROUP_SOURCE_LABELS = {
|
|
5
|
+
internal: 'Internal',
|
|
6
|
+
external: 'External',
|
|
7
|
+
both: 'Internal + External',
|
|
8
|
+
};
|
|
4
9
|
export const GroupSelector = ({ searchQuery, onSearchChange, filteredGroups, onSelectGroup, }) => {
|
|
5
10
|
return (_jsx(Paper, { withBorder: true, p: "xs", mt: "xs", style: { maxWidth: 300 }, children: _jsxs(Stack, { gap: "xs", children: [_jsx("input", { type: "text", placeholder: "Search groups...", value: searchQuery, onChange: (e) => onSearchChange(e.target.value), "aria-label": "Search groups", style: {
|
|
6
11
|
width: '100%',
|
|
@@ -17,6 +22,6 @@ export const GroupSelector = ({ searchQuery, onSearchChange, filteredGroups, onS
|
|
|
17
22
|
e.currentTarget.style.backgroundColor = 'var(--mantine-color-gray-1)';
|
|
18
23
|
}, onMouseLeave: (e) => {
|
|
19
24
|
e.currentTarget.style.backgroundColor = 'transparent';
|
|
20
|
-
}, onClick: () => onSelectGroup(group.value), children: group.label }, group.value))) })), searchQuery.trim() && filteredGroups.length === 0 && (_jsx(Text, { size: "xs", c: "dimmed", children: "No groups found" }))] }) }));
|
|
25
|
+
}, onClick: () => onSelectGroup(group.value), children: _jsxs(Group, { gap: "xs", justify: "space-between", wrap: "nowrap", children: [_jsx("span", { children: group.label }), _jsx(Text, { size: "10px", c: "dimmed", style: { flexShrink: 0 }, children: GROUP_SOURCE_LABELS[group.source] })] }) }, group.value))) })), searchQuery.trim() && filteredGroups.length === 0 && (_jsx(Text, { size: "xs", c: "dimmed", children: "No groups found" }))] }) }));
|
|
21
26
|
};
|
|
22
27
|
//# sourceMappingURL=GroupSelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupSelector.js","sourceRoot":"","sources":["../../../src/editor/permission-manager/GroupSelector.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAOZ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"GroupSelector.js","sourceRoot":"","sources":["../../../src/editor/permission-manager/GroupSelector.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAOZ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAGzD,MAAM,mBAAmB,GAAgC;IACvD,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,qBAAqB;CAC5B,CAAA;AASD,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAC1D,WAAW,EACX,cAAc,EACd,cAAc,EACd,aAAa,GACd,EAAE,EAAE;IACH,OAAO,CACL,KAAC,KAAK,IAAC,UAAU,QAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,YACvD,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,aACb,gBACE,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,kBAAkB,EAC9B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,gBACpC,eAAe,EAC1B,KAAK,EAAE;wBACL,KAAK,EAAE,MAAM;wBACb,OAAO,EAAE,SAAS;wBAClB,MAAM,EAAE,uCAAuC;wBAC/C,YAAY,EAAE,0BAA0B;wBACxC,QAAQ,EAAE,MAAM;qBACjB,GACD,EACD,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5B,cAAK,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAC9C,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC7B,cAEE,KAAK,EAAE;4BACL,OAAO,EAAE,SAAS;4BAClB,MAAM,EAAE,SAAS;4BACjB,YAAY,EAAE,0BAA0B;4BACxC,QAAQ,EAAE,MAAM;yBACjB,EACD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;4BAClB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,6BAA6B,CAAA;wBACvE,CAAC,EACD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;4BAClB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa,CAAA;wBACvD,CAAC,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,YAOzC,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,EAAC,OAAO,EAAC,eAAe,EAAC,IAAI,EAAC,QAAQ,aACnD,yBAAO,KAAK,CAAC,KAAK,GAAQ,EAC1B,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,CAAC,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,YAClD,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,GAC7B,IACD,IAzBH,KAAK,CAAC,KAAK,CA0BZ,CACP,CAAC,GACE,CACP,EACA,WAAW,CAAC,IAAI,EAAE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,CACpD,KAAC,IAAI,IAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,QAAQ,gCAEnB,CACR,IACK,GACF,CACT,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Hook for managing groups and user search state
|
|
3
3
|
*/
|
|
4
|
-
import type { UserSearchResult,
|
|
4
|
+
import type { UserSearchResult, PermissionGroupOption, GroupSelectItem } from '../types';
|
|
5
5
|
export interface UseGroupsAndUsersOptions {
|
|
6
|
-
onListGroups?: () => Promise<
|
|
6
|
+
onListGroups?: () => Promise<PermissionGroupOption[]>;
|
|
7
7
|
onSearchUsers?: (query: string, limit?: number) => Promise<UserSearchResult[]>;
|
|
8
8
|
canEdit: boolean;
|
|
9
9
|
}
|
|
10
10
|
export interface UseGroupsAndUsersResult {
|
|
11
|
-
groups:
|
|
11
|
+
groups: PermissionGroupOption[];
|
|
12
12
|
groupSelectData: GroupSelectItem[];
|
|
13
13
|
filteredGroups: GroupSelectItem[];
|
|
14
14
|
isLoadingGroups: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGroupsAndUsers.d.ts","sourceRoot":"","sources":["../../../../src/editor/permission-manager/hooks/useGroupsAndUsers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"useGroupsAndUsers.d.ts","sourceRoot":"","sources":["../../../../src/editor/permission-manager/hooks/useGroupsAndUsers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAExF,MAAM,WAAW,wBAAwB;IACvC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;IACrD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;IAC9E,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,uBAAuB;IAEtC,MAAM,EAAE,qBAAqB,EAAE,CAAA;IAC/B,eAAe,EAAE,eAAe,EAAE,CAAA;IAClC,cAAc,EAAE,eAAe,EAAE,CAAA;IACjC,eAAe,EAAE,OAAO,CAAA;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC3C,mBAAmB,EAAE,MAAM,IAAI,CAAA;IAG/B,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;IACrC,gBAAgB,EAAE,OAAO,CAAA;IACzB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CAC1C;AAED,wBAAgB,iBAAiB,CAAC,EAChC,YAAY,EACZ,aAAa,EACb,OAAO,GACR,EAAE,wBAAwB,GAAG,uBAAuB,CAiHpD"}
|
|
@@ -35,6 +35,7 @@ export function useGroupsAndUsers({ onListGroups, onSearchUsers, canEdit, }) {
|
|
|
35
35
|
const groupSelectData = useMemo(() => groups.map((g) => ({
|
|
36
36
|
value: g.id,
|
|
37
37
|
label: g.name,
|
|
38
|
+
source: g.source,
|
|
38
39
|
})), [groups]);
|
|
39
40
|
// Filter groups based on search query
|
|
40
41
|
const filteredGroups = useMemo(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGroupsAndUsers.js","sourceRoot":"","sources":["../../../../src/editor/permission-manager/hooks/useGroupsAndUsers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAgCjE,MAAM,UAAU,iBAAiB,CAAC,EAChC,YAAY,EACZ,aAAa,EACb,OAAO,GACkB;IACzB,eAAe;IACf,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"useGroupsAndUsers.js","sourceRoot":"","sources":["../../../../src/editor/permission-manager/hooks/useGroupsAndUsers.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Types for PermissionManager component
|
|
3
3
|
*/
|
|
4
4
|
import type { PathPermission, PermissionLevel, PermissionTarget } from '../../config';
|
|
5
|
-
import type { UserSearchResult, GroupMetadata } from '../../auth/types';
|
|
5
|
+
import type { UserSearchResult, GroupMetadata, GroupSource, PermissionGroupOption } from '../../auth/types';
|
|
6
6
|
import type { EditorCollection } from '../Editor';
|
|
7
7
|
export interface PermissionManagerProps {
|
|
8
8
|
/** Collections from API */
|
|
@@ -19,8 +19,8 @@ export interface PermissionManagerProps {
|
|
|
19
19
|
onSearchUsers?: (query: string, limit?: number) => Promise<UserSearchResult[]>;
|
|
20
20
|
/** Handler to get user metadata by ID */
|
|
21
21
|
onGetUserMetadata?: (userId: string) => Promise<UserSearchResult | null>;
|
|
22
|
-
/** Handler to list groups */
|
|
23
|
-
onListGroups?: () => Promise<
|
|
22
|
+
/** Handler to list groups (internal + external, tagged by `source`) */
|
|
23
|
+
onListGroups?: () => Promise<PermissionGroupOption[]>;
|
|
24
24
|
/** Close handler */
|
|
25
25
|
onClose?: () => void;
|
|
26
26
|
/** Loading state */
|
|
@@ -47,7 +47,9 @@ export interface TreeNode {
|
|
|
47
47
|
export interface GroupSelectItem {
|
|
48
48
|
value: string;
|
|
49
49
|
label: string;
|
|
50
|
+
/** Which universe this option came from; shown as a tag in the picker. */
|
|
51
|
+
source: GroupSource;
|
|
50
52
|
}
|
|
51
53
|
/** Re-export for convenience */
|
|
52
|
-
export type { PathPermission, PermissionLevel, PermissionTarget, UserSearchResult, GroupMetadata };
|
|
54
|
+
export type { PathPermission, PermissionLevel, PermissionTarget, UserSearchResult, GroupMetadata, GroupSource, PermissionGroupOption, };
|
|
53
55
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/editor/permission-manager/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACrF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/editor/permission-manager/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACrF,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,qBAAqB,EACtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAEjD,MAAM,WAAW,sBAAsB;IACrC,2BAA2B;IAC3B,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0BAA0B;IAC1B,WAAW,EAAE,cAAc,EAAE,CAAA;IAC7B,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAA;IAChB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,8BAA8B;IAC9B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;IAC9E,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;IACxE,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;IACrD,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAA;IACvB,QAAQ,EAAE,QAAQ,EAAE,CAAA;IACpB,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,cAAc,CAAA;IACjC,wCAAwC;IACxC,mBAAmB,CAAC,EAAE,cAAc,CAAA;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,MAAM,EAAE,WAAW,CAAA;CACpB;AAED,gCAAgC;AAChC,YAAY,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,qBAAqB,GACtB,CAAA"}
|
|
@@ -30,5 +30,13 @@ if (typeof window !== 'undefined') {
|
|
|
30
30
|
window.ResizeObserver =
|
|
31
31
|
ResizeObserver;
|
|
32
32
|
}
|
|
33
|
+
// jsdom implements no layout, so it ships no scrollIntoView. Mantine's
|
|
34
|
+
// Combobox (Select, Autocomplete, ...) calls it from a timer when the
|
|
35
|
+
// dropdown's active option changes, which lands AFTER the test that opened
|
|
36
|
+
// the dropdown has finished - surfacing as an unhandled exception attributed
|
|
37
|
+
// to whatever ran next, rather than a failure in the test that caused it.
|
|
38
|
+
if (!Element.prototype.scrollIntoView) {
|
|
39
|
+
Element.prototype.scrollIntoView = () => { };
|
|
40
|
+
}
|
|
33
41
|
}
|
|
34
42
|
//# sourceMappingURL=test-setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-setup.js","sourceRoot":"","sources":["../../src/editor/test-setup.ts"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,yEAAyE;IACzE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;QAC1C,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;YACzB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;YACrB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;YACxB,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;YAC1B,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;YAC7B,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;SAC3B,CAAC;KACH,CAAC,CAAA;IAEF,uDAAuD;IACvD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3B,MAAM,cAAc;YAClB,OAAO,KAAI,CAAC;YACZ,SAAS,KAAI,CAAC;YACd,UAAU,KAAI,CAAC;SAChB;QACD,CAAC;QAAC,MAA+D,CAAC,cAAc;YAC9E,cAAc,CAAA;IAClB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"test-setup.js","sourceRoot":"","sources":["../../src/editor/test-setup.ts"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,yEAAyE;IACzE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;QAC1C,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;YACzB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;YACrB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;YACxB,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;YAC1B,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;YAC7B,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;SAC3B,CAAC;KACH,CAAC,CAAA;IAEF,uDAAuD;IACvD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3B,MAAM,cAAc;YAClB,OAAO,KAAI,CAAC;YACZ,SAAS,KAAI,CAAC;YACd,UAAU,KAAI,CAAC;SAChB;QACD,CAAC;QAAC,MAA+D,CAAC,cAAc;YAC9E,cAAc,CAAA;IAClB,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,2EAA2E;IAC3E,6EAA6E;IAC7E,0EAA0E;IAC1E,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;QACtC,OAAO,CAAC,SAAS,CAAC,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;IAC7C,CAAC;AACH,CAAC"}
|
package/dist/git-manager.d.ts
CHANGED
|
@@ -1,7 +1,45 @@
|
|
|
1
1
|
import { type SimpleGitOptions, type StatusResult } from 'simple-git';
|
|
2
2
|
import type { OperatingMode } from './operating-mode';
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Exported for GitManager's own use (see `this.git.env(...)` above),
|
|
5
|
+
* worker/cms-worker.ts's push-rejection-classified GitHub calls
|
|
6
|
+
* (`pushBranchToGitHub`, `syncGit`'s fetch/`pushSettingsBranches` instance),
|
|
7
|
+
* and tests.
|
|
8
|
+
*/
|
|
4
9
|
export declare function gitChildEnv(overrides: Record<string, string>): Record<string, string>;
|
|
10
|
+
export declare function gitNetworkChildEnv(): Record<string, string>;
|
|
11
|
+
/**
|
|
12
|
+
* Remote-tracking namespace that `syncGit()`'s GitHub fetch lands refs in
|
|
13
|
+
* (`+refs/heads/*:${GITHUB_TRACKING_REF_PREFIX}*`), instead of writing
|
|
14
|
+
* directly into `refs/heads/*`.
|
|
15
|
+
*
|
|
16
|
+
* `remote.git`'s `refs/heads/*` is NOT a throwaway mirror: it's the
|
|
17
|
+
* deployment's local origin. `GitManager.push()` writes editor work into it
|
|
18
|
+
* (`target:target`), branch-workspace clones are cloned FROM it, and the CMS
|
|
19
|
+
* worker itself pushes it on to GitHub (`pushBranchToGitHub`,
|
|
20
|
+
* `pushSettingsBranches` in worker/cms-worker.ts). A fetch that force-writes
|
|
21
|
+
* GitHub's refs straight into `refs/heads/*` (the old
|
|
22
|
+
* `+refs/heads/*:refs/heads/*` refspec) can therefore destroy work that
|
|
23
|
+
* reached `remote.git` but not GitHub yet: with `--prune`, a branch pushed
|
|
24
|
+
* into `remote.git` and not yet on GitHub gets deleted outright; without
|
|
25
|
+
* needing `--prune`, a branch where `remote.git` is ahead of GitHub gets
|
|
26
|
+
* force-rewound to GitHub's older tip, and the worker's next push then
|
|
27
|
+
* no-ops ("Everything up-to-date") -- the editor's commit silently never
|
|
28
|
+
* reaches GitHub even though the branch reports `synced`.
|
|
29
|
+
*
|
|
30
|
+
* Fetching into this remote-tracking namespace instead makes `--prune`/`+`
|
|
31
|
+
* safe again -- they now only ever affect GitHub's-view-of-the-world refs,
|
|
32
|
+
* never the local heads other code depends on. `reconcileTrackedBranches()`
|
|
33
|
+
* (worker/cms-worker.ts) is what subsequently, and non-destructively, brings
|
|
34
|
+
* `refs/heads/*` toward what's tracked here.
|
|
35
|
+
*
|
|
36
|
+
* Lives here (not worker/cms-worker.ts, where this constant originated) so
|
|
37
|
+
* `GitManager.bareRemoteHasBranch` -- which must recognize this namespace
|
|
38
|
+
* too, since it's what a branch pushed by another CanopyCMS deployment (or
|
|
39
|
+
* pushed directly to GitHub) shows up in before/without ever gaining a local
|
|
40
|
+
* head -- doesn't need a worker/ -> git-manager.ts back-reference.
|
|
41
|
+
*/
|
|
42
|
+
export declare const GITHUB_TRACKING_REF_PREFIX = "refs/remotes/github/";
|
|
5
43
|
/**
|
|
6
44
|
* Add a pattern to a repo's .git/info/exclude (a per-repository gitignore that
|
|
7
45
|
* never gets committed) so runtime metadata like .canopy-meta/ can't be staged
|
|
@@ -98,19 +136,83 @@ export declare class GitManager {
|
|
|
98
136
|
subdirectory?: string;
|
|
99
137
|
}): Promise<void>;
|
|
100
138
|
/**
|
|
101
|
-
* Whether a bare repository already has a
|
|
139
|
+
* Whether a bare repository already has a branch of the given name, in
|
|
140
|
+
* EITHER the local-heads namespace (`refs/heads/<branch>`) or the GitHub
|
|
141
|
+
* tracking namespace (`GITHUB_TRACKING_REF_PREFIX<branch>`).
|
|
142
|
+
*
|
|
143
|
+
* Originally checked `refs/heads/*` only, for dev-mode's
|
|
144
|
+
* `ensureLocalSimulatedRemote` (a simulated remote never gets a tracking
|
|
145
|
+
* namespace, so that caller only ever needed the local-heads check).
|
|
146
|
+
* Generalized/promoted to public for api/branch.ts's create-time collision
|
|
147
|
+
* guard, which also needs the tracking namespace: `syncGit()` fetches
|
|
148
|
+
* GitHub into `GITHUB_TRACKING_REF_PREFIX*` rather than `refs/heads/*`
|
|
149
|
+
* directly (see that constant's doc comment above), and
|
|
150
|
+
* `reconcileTrackedBranches()` (worker/cms-worker.ts) only
|
|
151
|
+
* non-destructively brings `refs/heads/*` toward what's tracked there — so
|
|
152
|
+
* a branch that another CanopyCMS deployment sharing this repo (or a
|
|
153
|
+
* direct push to GitHub) just created can sit in the tracking namespace
|
|
154
|
+
* for a while before, or without ever, gaining a local head here. Checking
|
|
155
|
+
* `refs/heads/*` alone would miss exactly the two-deployments-one-repo
|
|
156
|
+
* collision that guard exists to catch.
|
|
102
157
|
*
|
|
103
158
|
* Runs git with an explicit `--git-dir` instead of a cwd inside the repo:
|
|
104
159
|
* environments with `safe.bareRepository=explicit` (sandboxed/CI git setups)
|
|
105
160
|
* refuse cwd-based discovery of bare repos but expressly allow `--git-dir`.
|
|
106
|
-
*
|
|
107
|
-
* exception-based control flow —
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
161
|
+
* A single `for-each-ref` call checks both candidate refs at once (no
|
|
162
|
+
* exception-based control flow — `for-each-ref` exits 0 whether or not
|
|
163
|
+
* either ref exists, same reason the old implementation used `branch
|
|
164
|
+
* --list` instead of `rev-parse --verify --quiet`: simple-git only fails a
|
|
165
|
+
* task on stderr output, and `--quiet` suppresses exactly that).
|
|
166
|
+
* `--end-of-options` guards the ref-name positionals the same way
|
|
167
|
+
* `push`/`forcePush` below do, since `branch` here can be a sanitized but
|
|
168
|
+
* otherwise caller-influenced string.
|
|
169
|
+
*
|
|
170
|
+
* A failure here therefore means the remote itself is unreadable and is
|
|
171
|
+
* surfaced, NOT treated as "branch absent" — that would route
|
|
172
|
+
* `ensureLocalSimulatedRemote` to the push path against a repo it couldn't
|
|
173
|
+
* even read, and would silently skip api/branch.ts's collision check
|
|
174
|
+
* instead of letting that caller distinguish "unreadable" from "absent"
|
|
175
|
+
* and decide what to do.
|
|
112
176
|
*/
|
|
113
|
-
|
|
177
|
+
static bareRemoteHasBranch(remotePath: string, branch: string, options?: {
|
|
178
|
+
namespaces?: 'both' | 'tracking';
|
|
179
|
+
}): Promise<boolean>;
|
|
180
|
+
/**
|
|
181
|
+
* Delete `refs/heads/<branch>` from a bare local mirror, if present. A
|
|
182
|
+
* no-op (not an error) when the ref doesn't exist.
|
|
183
|
+
*
|
|
184
|
+
* This is the "explicit path" for removing a deleted branch's local head
|
|
185
|
+
* that the sync loop deliberately is not (see GITHUB_TRACKING_REF_PREFIX's
|
|
186
|
+
* doc comment: reconcileTrackedBranches never deletes a head). Called by
|
|
187
|
+
* api/branch.ts's deleteBranchHandler: without it, a deleted branch's head
|
|
188
|
+
* lives in `remote.git` forever, and the ordinary create -> publish ->
|
|
189
|
+
* squash-merge -> delete -> reuse-the-name cycle then has the REUSED
|
|
190
|
+
* branch's first publish rejected non-fast-forward against the stale head
|
|
191
|
+
* (`GitManager.push()` pushes `branch:branch`, and a squash-merged old tip
|
|
192
|
+
* is not an ancestor of the new branch) -- a permanent, misleading 409.
|
|
193
|
+
* Worse, a retried submit skips the local push (clean tree) and enqueues
|
|
194
|
+
* the worker push of the STALE head, resurrecting the deleted branch's
|
|
195
|
+
* content on GitHub as an apparent success.
|
|
196
|
+
*
|
|
197
|
+
* Deliberately leaves the tracking ref (`GITHUB_TRACKING_REF_PREFIX<branch>`)
|
|
198
|
+
* alone: that namespace mirrors GitHub's view, and if the branch still
|
|
199
|
+
* exists on GitHub, the create-time collision check SHOULD keep reporting
|
|
200
|
+
* it until the remote side is actually gone.
|
|
201
|
+
*
|
|
202
|
+
* Same `--git-dir` invocation style as bareRemoteHasBranch above (works
|
|
203
|
+
* under `safe.bareRepository=explicit`). The existence pre-check makes
|
|
204
|
+
* "absent" deterministic instead of parsing update-ref's locale-dependent
|
|
205
|
+
* failure text, and its captured SHA is passed to `update-ref -d` as the
|
|
206
|
+
* expected old value -- same pattern as reconcileTrackedBranches'
|
|
207
|
+
* guarded updates (worker/cms-worker.ts): a concurrent Lambda push
|
|
208
|
+
* re-creating/moving this branch between the read and the delete makes
|
|
209
|
+
* update-ref throw (surfaced as the caller's best-effort warning) instead
|
|
210
|
+
* of silently deleting a commit that was just pushed. No
|
|
211
|
+
* `--end-of-options` on update-ref (older gits don't accept it there);
|
|
212
|
+
* the ref argument always begins with the literal `refs/heads/` prefix,
|
|
213
|
+
* so it can never parse as an option.
|
|
214
|
+
*/
|
|
215
|
+
static deleteBareRemoteHead(remotePath: string, branch: string): Promise<void>;
|
|
114
216
|
/**
|
|
115
217
|
* Push baseBranch from the source repo into the local bare remote via a
|
|
116
218
|
* temporary remote. With `subdirectory`, pushes a single snapshot commit of
|
|
@@ -173,6 +275,21 @@ export declare class GitManager {
|
|
|
173
275
|
* @returns Remote URL or undefined if no remote is needed
|
|
174
276
|
*/
|
|
175
277
|
static resolveRemoteUrl(options: ResolveRemoteUrlOptions): Promise<string | undefined>;
|
|
278
|
+
/**
|
|
279
|
+
* Check whether a git repository is already initialized at `workspacePath`.
|
|
280
|
+
*
|
|
281
|
+
* Uses `rev-parse --git-dir` with `GIT_CEILING_DIRECTORIES` pinned to the
|
|
282
|
+
* parent directory so a corrupt/missing `.git` can't make git silently
|
|
283
|
+
* traverse upward and report a false positive from an ancestor repo (the
|
|
284
|
+
* same protection `initializeWorkspace` relies on below).
|
|
285
|
+
*
|
|
286
|
+
* Shared by `initializeWorkspace` (clone-vs-reuse decision) and
|
|
287
|
+
* `SettingsWorkspaceManager`'s rename guard (settings-workspace.ts), which
|
|
288
|
+
* must know whether a settings workspace ALREADY exists before touching it —
|
|
289
|
+
* touching an existing orphan settings branch under a different name wipes
|
|
290
|
+
* permissions.json/groups.json (see that guard's doc comment).
|
|
291
|
+
*/
|
|
292
|
+
static repoExistsAt(workspacePath: string): Promise<boolean>;
|
|
176
293
|
/**
|
|
177
294
|
* Ensures a git workspace is initialized and ready for use.
|
|
178
295
|
* Handles cloning, remote configuration, and branch checkout/creation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-manager.d.ts","sourceRoot":"","sources":["../src/git-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AAInB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"git-manager.d.ts","sourceRoot":"","sources":["../src/git-manager.ts"],"names":[],"mappings":"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"}
|