canopycms 0.0.11 → 0.0.13
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/README.md +24 -27
- package/dist/ai/handler.d.ts +3 -3
- package/dist/ai/handler.d.ts.map +1 -1
- package/dist/ai/handler.js +6 -9
- package/dist/ai/handler.js.map +1 -1
- package/dist/ai/resolve-branch.d.ts +1 -2
- package/dist/ai/resolve-branch.d.ts.map +1 -1
- package/dist/ai/resolve-branch.js +8 -9
- package/dist/ai/resolve-branch.js.map +1 -1
- package/dist/api/branch.js +2 -2
- package/dist/api/branch.js.map +1 -1
- package/dist/api/comments.d.ts +2 -2
- package/dist/api/content.d.ts +4 -4
- package/dist/api/content.d.ts.map +1 -1
- package/dist/api/content.js +2 -2
- package/dist/api/content.js.map +1 -1
- package/dist/api/entries.d.ts +2 -2
- package/dist/api/entries.d.ts.map +1 -1
- package/dist/api/entries.js +2 -2
- package/dist/api/entries.js.map +1 -1
- package/dist/api/github-sync.js +0 -2
- package/dist/api/github-sync.js.map +1 -1
- package/dist/api/settings-helpers.d.ts +3 -5
- package/dist/api/settings-helpers.d.ts.map +1 -1
- package/dist/api/settings-helpers.js +6 -19
- package/dist/api/settings-helpers.js.map +1 -1
- package/dist/api/validators.d.ts +3 -13
- package/dist/api/validators.d.ts.map +1 -1
- package/dist/api/validators.js +3 -26
- package/dist/api/validators.js.map +1 -1
- package/dist/auth/caching-auth-plugin.d.ts +7 -1
- package/dist/auth/caching-auth-plugin.d.ts.map +1 -1
- package/dist/auth/caching-auth-plugin.js +31 -3
- package/dist/auth/caching-auth-plugin.js.map +1 -1
- package/dist/auth/plugin.d.ts +1 -1
- package/dist/authorization/types.d.ts +1 -1
- package/dist/branch-registry.js +1 -1
- package/dist/branch-registry.js.map +1 -1
- package/dist/branch-schema-cache.d.ts +8 -13
- package/dist/branch-schema-cache.d.ts.map +1 -1
- package/dist/branch-schema-cache.js +55 -44
- package/dist/branch-schema-cache.js.map +1 -1
- package/dist/cli/cli.d.ts +20 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/cli.js +196 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/generate-ai-content.js +1508 -733
- package/dist/cli/init.d.ts +2 -3
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +258 -2861
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/sync.d.ts +33 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/sync.js +510 -0
- package/dist/cli/sync.js.map +1 -0
- package/dist/config/schemas/config.d.ts +5 -5
- package/dist/config/schemas/config.d.ts.map +1 -1
- package/dist/config/schemas/config.js +1 -1
- package/dist/config/schemas/config.js.map +1 -1
- package/dist/config-test.d.ts.map +1 -1
- package/dist/config-test.js +0 -1
- package/dist/config-test.js.map +1 -1
- package/dist/content-id-index.d.ts +3 -3
- package/dist/content-id-index.d.ts.map +1 -1
- package/dist/content-id-index.js +7 -7
- package/dist/content-id-index.js.map +1 -1
- package/dist/content-listing.d.ts +3 -3
- package/dist/content-listing.d.ts.map +1 -1
- package/dist/content-listing.js +1 -1
- package/dist/content-listing.js.map +1 -1
- package/dist/content-reader.d.ts +2 -2
- package/dist/content-reader.d.ts.map +1 -1
- package/dist/content-reader.js +1 -1
- package/dist/content-reader.js.map +1 -1
- package/dist/content-store.d.ts +8 -8
- package/dist/content-store.d.ts.map +1 -1
- package/dist/content-store.js +6 -9
- package/dist/content-store.js.map +1 -1
- package/dist/content-tree.d.ts +2 -2
- package/dist/content-tree.d.ts.map +1 -1
- package/dist/context.js +1 -1
- package/dist/context.js.map +1 -1
- package/dist/editor/BranchManager.d.ts.map +1 -1
- package/dist/editor/BranchManager.js +1 -3
- package/dist/editor/BranchManager.js.map +1 -1
- package/dist/git-manager.d.ts +2 -3
- package/dist/git-manager.d.ts.map +1 -1
- package/dist/git-manager.js +12 -4
- package/dist/git-manager.js.map +1 -1
- package/dist/operating-mode/client-safe-strategy.d.ts +1 -12
- package/dist/operating-mode/client-safe-strategy.d.ts.map +1 -1
- package/dist/operating-mode/client-safe-strategy.js +5 -42
- package/dist/operating-mode/client-safe-strategy.js.map +1 -1
- package/dist/operating-mode/client-unsafe-strategy.d.ts.map +1 -1
- package/dist/operating-mode/client-unsafe-strategy.js +10 -68
- package/dist/operating-mode/client-unsafe-strategy.js.map +1 -1
- package/dist/operating-mode/index.d.ts +3 -3
- package/dist/operating-mode/index.d.ts.map +1 -1
- package/dist/operating-mode/index.js +2 -2
- package/dist/operating-mode/types.d.ts +2 -6
- package/dist/operating-mode/types.d.ts.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.map +1 -1
- package/dist/paths/test-utils.d.ts +4 -6
- package/dist/paths/test-utils.d.ts.map +1 -1
- package/dist/paths/test-utils.js +3 -5
- package/dist/paths/test-utils.js.map +1 -1
- package/dist/paths/types.d.ts +4 -11
- package/dist/paths/types.d.ts.map +1 -1
- package/dist/paths/validation.d.ts +5 -6
- package/dist/paths/validation.d.ts.map +1 -1
- package/dist/paths/validation.js +9 -10
- package/dist/paths/validation.js.map +1 -1
- package/dist/reference-resolver.d.ts +2 -2
- package/dist/reference-resolver.d.ts.map +1 -1
- package/dist/reference-resolver.js.map +1 -1
- package/dist/services.d.ts +6 -0
- package/dist/services.d.ts.map +1 -1
- package/dist/services.js +52 -40
- package/dist/services.js.map +1 -1
- package/dist/settings-branch-utils.d.ts +2 -2
- package/dist/settings-branch-utils.js +3 -3
- package/dist/settings-branch-utils.js.map +1 -1
- package/dist/settings-workspace.d.ts +1 -2
- package/dist/settings-workspace.d.ts.map +1 -1
- package/dist/settings-workspace.js +1 -2
- package/dist/settings-workspace.js.map +1 -1
- package/dist/utils/fs.d.ts +3 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +15 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/git.d.ts +7 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +17 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/validation/deletion-checker.d.ts +2 -2
- package/dist/validation/deletion-checker.d.ts.map +1 -1
- package/dist/worker/task-queue-config.d.ts +2 -4
- package/dist/worker/task-queue-config.d.ts.map +1 -1
- package/dist/worker/task-queue-config.js +3 -7
- package/dist/worker/task-queue-config.js.map +1 -1
- package/package.json +4 -2
|
@@ -74,27 +74,24 @@ export interface ClientUnsafeStrategy extends ClientSafeStrategy {
|
|
|
74
74
|
* Get the root directory for this mode's workspace.
|
|
75
75
|
* All mode-specific subdirectories (content-branches, settings, .cache, etc.) live under this.
|
|
76
76
|
* - prod: CANOPYCMS_WORKSPACE_ROOT ?? /mnt/efs/workspace
|
|
77
|
-
* - prod-sim: {sourceRoot ?? cwd}/.canopy-prod-sim
|
|
78
77
|
* - dev: {sourceRoot ?? cwd}/.canopy-dev
|
|
79
78
|
*/
|
|
80
79
|
getWorkspaceRoot(sourceRoot?: string): string;
|
|
81
80
|
/**
|
|
82
81
|
* Get the content directory path (at project/workspace root).
|
|
83
|
-
* - dev
|
|
82
|
+
* - dev: {cwd}/content
|
|
84
83
|
* - prod (in workspaces): {workspaceRoot}/content
|
|
85
84
|
*/
|
|
86
85
|
getContentRoot(sourceRoot?: string): string;
|
|
87
86
|
/**
|
|
88
87
|
* Get the parent directory of all content branch workspaces (contains branches.json and branch directories).
|
|
89
|
-
* -
|
|
88
|
+
* - dev: {cwd}/.canopy-dev/content-branches
|
|
90
89
|
* - prod: $CANOPYCMS_WORKSPACE_ROOT/content-branches or /mnt/efs/workspace/content-branches
|
|
91
|
-
* @throws Error in dev mode (no branching)
|
|
92
90
|
*/
|
|
93
91
|
getContentBranchesRoot(sourceRoot?: string): string;
|
|
94
92
|
/**
|
|
95
93
|
* Get individual content branch workspace directory.
|
|
96
94
|
* Returns: {contentBranchesRoot}/{branchName}
|
|
97
|
-
* @throws Error in dev mode (no branching)
|
|
98
95
|
*/
|
|
99
96
|
getContentBranchRoot(branchName: string, sourceRoot?: string): string;
|
|
100
97
|
/**
|
|
@@ -122,7 +119,6 @@ export interface ClientUnsafeStrategy extends ClientSafeStrategy {
|
|
|
122
119
|
/**
|
|
123
120
|
* Get the root directory for settings storage.
|
|
124
121
|
* - prod: $CANOPYCMS_WORKSPACE_ROOT/settings or /mnt/efs/workspace/settings
|
|
125
|
-
* - prod-sim: {cwd}/.canopy-prod-sim/settings
|
|
126
122
|
* - dev: {cwd}/.canopy-dev/settings
|
|
127
123
|
*/
|
|
128
124
|
getSettingsRoot(sourceRoot?: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/operating-mode/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,IAAI,EAAE,EAAE,MAAM,GAAG,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAG7C,MAAM,MAAM,aAAa,GAAG,EAAE,CAAA;AAE9B;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,aAAa,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,mBAAmB,EAAE,OAAO,CAAA;IAC5B,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAA;IACzB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAM5B,4DAA4D;IAC5D,iBAAiB,IAAI,OAAO,CAAA;IAE5B,yCAAyC;IACzC,mBAAmB,IAAI,OAAO,CAAA;IAE9B,0DAA0D;IAC1D,gBAAgB,IAAI,OAAO,CAAA;IAE3B,kDAAkD;IAClD,oBAAoB,IAAI,OAAO,CAAA;IAM/B,2FAA2F;IAC3F,sBAAsB,IAAI,MAAM,CAAA;IAEhC,4EAA4E;IAC5E,iBAAiB,IAAI,MAAM,CAAA;IAE3B,sDAAsD;IACtD,YAAY,IAAI,OAAO,CAAA;IAEvB,qDAAqD;IACrD,UAAU,IAAI,OAAO,CAAA;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAK9D
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/operating-mode/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,IAAI,EAAE,EAAE,MAAM,GAAG,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAG7C,MAAM,MAAM,aAAa,GAAG,EAAE,CAAA;AAE9B;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,aAAa,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,mBAAmB,EAAE,OAAO,CAAA;IAC5B,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAA;IACzB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAM5B,4DAA4D;IAC5D,iBAAiB,IAAI,OAAO,CAAA;IAE5B,yCAAyC;IACzC,mBAAmB,IAAI,OAAO,CAAA;IAE9B,0DAA0D;IAC1D,gBAAgB,IAAI,OAAO,CAAA;IAE3B,kDAAkD;IAClD,oBAAoB,IAAI,OAAO,CAAA;IAM/B,2FAA2F;IAC3F,sBAAsB,IAAI,MAAM,CAAA;IAEhC,4EAA4E;IAC5E,iBAAiB,IAAI,MAAM,CAAA;IAE3B,sDAAsD;IACtD,YAAY,IAAI,OAAO,CAAA;IAEvB,qDAAqD;IACrD,UAAU,IAAI,OAAO,CAAA;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAK9D;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAE7C;;;;OAIG;IACH,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAE3C;;;;OAIG;IACH,sBAAsB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAEnD;;;OAGG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAErE;;;OAGG;IACH,oBAAoB,IAAI,MAAM,CAAA;IAM9B,gDAAgD;IAChD,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAE5C,2CAA2C;IAC3C,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAMvC,kFAAkF;IAClF,kBAAkB,IAAI,eAAe,CAAA;IAErC,4DAA4D;IAC5D,oBAAoB,IAAI,OAAO,CAAA;IAM/B;;;OAGG;IACH,qBAAqB,CAAC,MAAM,EAAE;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAC3B,GAAG,MAAM,CAAA;IAEV;;;;OAIG;IACH,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAE5C,6DAA6D;IAC7D,0BAA0B,IAAI,OAAO,CAAA;IAMrC,2CAA2C;IAC3C,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAA;IAMnD,wEAAwE;IACxE,sBAAsB,CAAC,MAAM,EAAE;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAA;CAC5E"}
|
package/dist/paths/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* import { normalizeFilesystemPath, createLogicalPath, parseSlug } from '../paths'
|
|
14
14
|
* ```
|
|
15
15
|
*/
|
|
16
|
-
export type { LogicalPath, PhysicalPath, SanitizedBranchName, BranchName, ContentId,
|
|
16
|
+
export type { LogicalPath, PhysicalPath, SanitizedBranchName, BranchName, ContentId, Slug, PathValidationResult, } from './types';
|
|
17
17
|
export { normalizeFilesystemPath, normalizeCollectionPath, hasTraversalSequence, createLogicalPath, createPhysicalPath, joinPath, } from './normalize';
|
|
18
18
|
export { validateAndNormalizePath } from './normalize-server';
|
|
19
19
|
export { validateContentPath, isValidCollectionPath, sanitizeForPath, hasEmbeddedContentId, looksLikePhysicalPath, looksLikeLogicalPath, parseLogicalPath, parsePhysicalPath, isValidContentId, parseContentId, parseBranchName, parseSlug, } from './validation';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/paths/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,YAAY,EACV,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/paths/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,YAAY,EACV,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,IAAI,EACJ,oBAAoB,GACrB,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,GACT,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAG7D,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EAEf,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAEhB,cAAc,EACd,eAAe,EACf,SAAS,GACV,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAG9C,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,UAAU,CAAA"}
|
package/dist/paths/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/paths/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/paths/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAaH,wCAAwC;AACxC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,GACT,MAAM,aAAa,CAAA;AAEpB,sEAAsE;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,uBAAuB;AACvB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,eAAe;AACf,kCAAkC;AAClC,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB;AAChB,sCAAsC;AACtC,cAAc,EACd,eAAe,EACf,SAAS,GACV,MAAM,cAAc,CAAA;AAErB,4BAA4B;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,GAGhB,MAAM,UAAU,CAAA"}
|
|
@@ -6,19 +6,17 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* // In test files only:
|
|
9
|
-
* import { unsafeAsLogicalPath,
|
|
9
|
+
* import { unsafeAsLogicalPath, unsafeAsSlug } from '../paths/test-utils'
|
|
10
10
|
*/
|
|
11
|
-
import type { BranchName,
|
|
11
|
+
import type { BranchName, ContentId, LogicalPath, PhysicalPath, Slug } from './types';
|
|
12
12
|
/** Test-only: cast a string to LogicalPath without validation. */
|
|
13
13
|
export declare const unsafeAsLogicalPath: (path: string) => LogicalPath;
|
|
14
14
|
/** Test-only: cast a string to PhysicalPath without validation. */
|
|
15
15
|
export declare const unsafeAsPhysicalPath: (path: string) => PhysicalPath;
|
|
16
|
-
/** Test-only: cast a string to
|
|
17
|
-
export declare const
|
|
16
|
+
/** Test-only: cast a string to Slug without validation. */
|
|
17
|
+
export declare const unsafeAsSlug: (slug: string) => Slug;
|
|
18
18
|
/** Test-only: cast a string to BranchName without validation. */
|
|
19
19
|
export declare const unsafeAsBranchName: (name: string) => BranchName;
|
|
20
|
-
/** Test-only: cast a string to CollectionSlug without validation. */
|
|
21
|
-
export declare const unsafeAsCollectionSlug: (slug: string) => CollectionSlug;
|
|
22
20
|
/** Test-only: cast a string to ContentId without validation. */
|
|
23
21
|
export declare const unsafeAsContentId: (id: string) => ContentId;
|
|
24
22
|
//# sourceMappingURL=test-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/paths/test-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/paths/test-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAErF,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,WAAkC,CAAA;AAErF,mEAAmE;AACnE,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,YAAoC,CAAA;AAExF,2DAA2D;AAC3D,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,IAAoB,CAAA;AAEhE,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,UAAgC,CAAA;AAElF,gEAAgE;AAChE,eAAO,MAAM,iBAAiB,GAAI,IAAI,MAAM,KAAG,SAA4B,CAAA"}
|
package/dist/paths/test-utils.js
CHANGED
|
@@ -6,18 +6,16 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* // In test files only:
|
|
9
|
-
* import { unsafeAsLogicalPath,
|
|
9
|
+
* import { unsafeAsLogicalPath, unsafeAsSlug } from '../paths/test-utils'
|
|
10
10
|
*/
|
|
11
11
|
/** Test-only: cast a string to LogicalPath without validation. */
|
|
12
12
|
export const unsafeAsLogicalPath = (path) => path;
|
|
13
13
|
/** Test-only: cast a string to PhysicalPath without validation. */
|
|
14
14
|
export const unsafeAsPhysicalPath = (path) => path;
|
|
15
|
-
/** Test-only: cast a string to
|
|
16
|
-
export const
|
|
15
|
+
/** Test-only: cast a string to Slug without validation. */
|
|
16
|
+
export const unsafeAsSlug = (slug) => slug;
|
|
17
17
|
/** Test-only: cast a string to BranchName without validation. */
|
|
18
18
|
export const unsafeAsBranchName = (name) => name;
|
|
19
|
-
/** Test-only: cast a string to CollectionSlug without validation. */
|
|
20
|
-
export const unsafeAsCollectionSlug = (slug) => slug;
|
|
21
19
|
/** Test-only: cast a string to ContentId without validation. */
|
|
22
20
|
export const unsafeAsContentId = (id) => id;
|
|
23
21
|
//# sourceMappingURL=test-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../src/paths/test-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../src/paths/test-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,kEAAkE;AAClE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAe,EAAE,CAAC,IAAmB,CAAA;AAErF,mEAAmE;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAgB,EAAE,CAAC,IAAoB,CAAA;AAExF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAQ,EAAE,CAAC,IAAY,CAAA;AAEhE,iEAAiE;AACjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAc,EAAE,CAAC,IAAkB,CAAA;AAElF,gEAAgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAU,EAAa,EAAE,CAAC,EAAe,CAAA"}
|
package/dist/paths/types.d.ts
CHANGED
|
@@ -48,18 +48,11 @@ export type ContentId = string & {
|
|
|
48
48
|
*/
|
|
49
49
|
export declare const ROOT_COLLECTION_ID: ContentId;
|
|
50
50
|
/**
|
|
51
|
-
* A
|
|
52
|
-
* Example: "posts"
|
|
51
|
+
* A validated, lowercase slug used for collections and entries.
|
|
52
|
+
* Example: "posts", "my-first-post", "getting-started"
|
|
53
53
|
*/
|
|
54
|
-
export type
|
|
55
|
-
readonly __brand: '
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* An entry slug (last segment of an entry path, used in URLs and filenames).
|
|
59
|
-
* Example: "my-first-post" or "getting-started"
|
|
60
|
-
*/
|
|
61
|
-
export type EntrySlug = string & {
|
|
62
|
-
readonly __brand: 'EntrySlug';
|
|
54
|
+
export type Slug = string & {
|
|
55
|
+
readonly __brand: 'Slug';
|
|
63
56
|
};
|
|
64
57
|
/**
|
|
65
58
|
* Path validation result.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/paths/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;CAAE,CAAA;AAEtE;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAA;AAExE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG;IACzC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAA;CACxC,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAA;AAEpE;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAA;AAElE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAqB,SAAS,CAAA;AAE7D;;;GAGG;AACH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/paths/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;CAAE,CAAA;AAEtE;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAA;AAExE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG;IACzC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAA;CACxC,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAA;AAEpE;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAA;AAElE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAqB,SAAS,CAAA;AAE7D;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAExD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Security-focused validation for content paths and slugs.
|
|
5
5
|
*/
|
|
6
|
-
import type { LogicalPath, PhysicalPath, ContentId, BranchName,
|
|
6
|
+
import type { LogicalPath, PhysicalPath, ContentId, BranchName, Slug } from './types';
|
|
7
7
|
/**
|
|
8
8
|
* Validate a content path for security.
|
|
9
9
|
*
|
|
@@ -159,21 +159,20 @@ export declare function parseBranchName(name: string): {
|
|
|
159
159
|
* Validates format and length constraints.
|
|
160
160
|
*
|
|
161
161
|
* @param slug - The slug to validate
|
|
162
|
-
* @param type - Whether this is a collection or entry slug
|
|
163
162
|
* @returns Object with success flag and either the typed slug or an error
|
|
164
163
|
*
|
|
165
164
|
* @example
|
|
166
165
|
* ```ts
|
|
167
|
-
* const result = parseSlug(params.slug
|
|
166
|
+
* const result = parseSlug(params.slug)
|
|
168
167
|
* if (!result.ok) {
|
|
169
168
|
* return { ok: false, status: 400, error: result.error }
|
|
170
169
|
* }
|
|
171
|
-
* const
|
|
170
|
+
* const slug: Slug = result.slug
|
|
172
171
|
* ```
|
|
173
172
|
*/
|
|
174
|
-
export declare function parseSlug(slug: string
|
|
173
|
+
export declare function parseSlug(slug: string): {
|
|
175
174
|
ok: true;
|
|
176
|
-
slug:
|
|
175
|
+
slug: Slug;
|
|
177
176
|
} | {
|
|
178
177
|
ok: false;
|
|
179
178
|
error: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/paths/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/paths/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAoBrF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAmBpC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAcrE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG3D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GACX;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwBhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GACX;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwBjE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,GACT;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAa5D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GACX;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA2C/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwC/F"}
|
package/dist/paths/validation.js
CHANGED
|
@@ -273,23 +273,22 @@ export function parseBranchName(name) {
|
|
|
273
273
|
* Validates format and length constraints.
|
|
274
274
|
*
|
|
275
275
|
* @param slug - The slug to validate
|
|
276
|
-
* @param type - Whether this is a collection or entry slug
|
|
277
276
|
* @returns Object with success flag and either the typed slug or an error
|
|
278
277
|
*
|
|
279
278
|
* @example
|
|
280
279
|
* ```ts
|
|
281
|
-
* const result = parseSlug(params.slug
|
|
280
|
+
* const result = parseSlug(params.slug)
|
|
282
281
|
* if (!result.ok) {
|
|
283
282
|
* return { ok: false, status: 400, error: result.error }
|
|
284
283
|
* }
|
|
285
|
-
* const
|
|
284
|
+
* const slug: Slug = result.slug
|
|
286
285
|
* ```
|
|
287
286
|
*/
|
|
288
|
-
export function parseSlug(slug
|
|
289
|
-
if (!slug
|
|
287
|
+
export function parseSlug(slug) {
|
|
288
|
+
if (!slug) {
|
|
290
289
|
return {
|
|
291
290
|
ok: false,
|
|
292
|
-
error:
|
|
291
|
+
error: 'Slug is required',
|
|
293
292
|
};
|
|
294
293
|
}
|
|
295
294
|
// Check length (filesystem path safety)
|
|
@@ -309,14 +308,14 @@ export function parseSlug(slug, type) {
|
|
|
309
308
|
error: 'Slug cannot be a traversal sequence',
|
|
310
309
|
};
|
|
311
310
|
}
|
|
312
|
-
//
|
|
313
|
-
|
|
311
|
+
// Normalize to lowercase for case-insensitive matching
|
|
312
|
+
const normalized = slug.toLowerCase();
|
|
313
|
+
if (!/^[a-z0-9][a-z0-9-]*$/.test(normalized)) {
|
|
314
314
|
return {
|
|
315
315
|
ok: false,
|
|
316
316
|
error: 'Slug must start with a letter or number and contain only lowercase letters, numbers, and hyphens',
|
|
317
317
|
};
|
|
318
318
|
}
|
|
319
|
-
|
|
320
|
-
return { ok: true, slug: slug };
|
|
319
|
+
return { ok: true, slug: normalized };
|
|
321
320
|
}
|
|
322
321
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/paths/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/paths/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { ContentStore } from './content-store';
|
|
2
2
|
import type { ContentIdIndex } from './content-id-index';
|
|
3
|
-
import type { LogicalPath,
|
|
3
|
+
import type { LogicalPath, Slug } from './paths';
|
|
4
4
|
export interface ResolvedReference {
|
|
5
5
|
id: string;
|
|
6
6
|
exists: boolean;
|
|
7
7
|
displayValue: string;
|
|
8
8
|
collection?: LogicalPath;
|
|
9
|
-
slug?:
|
|
9
|
+
slug?: Slug;
|
|
10
10
|
}
|
|
11
11
|
export interface ReferenceOption {
|
|
12
12
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-resolver.d.ts","sourceRoot":"","sources":["../src/reference-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,KAAK,EAAE,WAAW,EAAgB,
|
|
1
|
+
{"version":3,"file":"reference-resolver.d.ts","sourceRoot":"","sources":["../src/reference-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,KAAK,EAAE,WAAW,EAAgB,IAAI,EAAE,MAAM,SAAS,CAAA;AAE9D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,WAAW,CAAA;IACxB,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;gBADP,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,cAAc;IAGjC;;;;;;OAMG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,SAAU,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAgCpF;;;;;;;;;OASG;IACG,oBAAoB,CACxB,WAAW,EAAE,WAAW,EAAE,EAC1B,YAAY,SAAU,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,EAAE,CAAC;IA+C7B;;OAEG;YACW,uBAAuB;IAUrC;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,YAAY,SAAU,GAAG,OAAO,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC;CAGhG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-resolver.js","sourceRoot":"","sources":["../src/reference-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAI5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAiB5D;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAiB;IAC5B,YACU,KAAmB,EACnB,OAAuB;QADvB,UAAK,GAAL,KAAK,CAAc;QACnB,YAAO,GAAP,OAAO,CAAgB;IAC9B,CAAC;IAEJ;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,YAAY,GAAG,OAAO;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAE1C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3C,OAAO;gBACL,EAAE;gBACF,MAAM,EAAE,KAAK;gBACb,YAAY,EAAE,EAAE,EAAE,oCAAoC;aACvD,CAAA;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAW,EAAE,QAAQ,CAAC,IAAK,CAAC,CAAA;YACvE,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;YAEtF,OAAO;gBACL,EAAE;gBACF,MAAM,EAAE,IAAI;gBACZ,YAAY;gBACZ,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YAC5D,OAAO;gBACL,EAAE;gBACF,MAAM,EAAE,KAAK;gBACb,YAAY,EAAE,EAAE;aACjB,CAAA;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,oBAAoB,CACxB,WAA0B,EAC1B,YAAY,GAAG,OAAO,EACtB,MAAe;QAEf,MAAM,OAAO,GAAsB,EAAE,CAAA;QAErC,KAAK,MAAM,cAAc,IAAI,WAAW,EAAE,CAAC;YACzC,qCAAqC;YACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAA;YAElE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;gBACtD,IAAI,CAAC,EAAE;oBAAE,SAAQ;gBAEjB,IAAI,CAAC;oBACH,iFAAiF;oBACjF,mFAAmF;oBACnF,4DAA4D;oBAC5D,sEAAsE;oBACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;oBAClD,MAAM,cAAc,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAA;oBAExD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"reference-resolver.js","sourceRoot":"","sources":["../src/reference-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAI5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAiB5D;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAiB;IAC5B,YACU,KAAmB,EACnB,OAAuB;QADvB,UAAK,GAAL,KAAK,CAAc;QACnB,YAAO,GAAP,OAAO,CAAgB;IAC9B,CAAC;IAEJ;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,YAAY,GAAG,OAAO;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAE1C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3C,OAAO;gBACL,EAAE;gBACF,MAAM,EAAE,KAAK;gBACb,YAAY,EAAE,EAAE,EAAE,oCAAoC;aACvD,CAAA;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAW,EAAE,QAAQ,CAAC,IAAK,CAAC,CAAA;YACvE,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;YAEtF,OAAO;gBACL,EAAE;gBACF,MAAM,EAAE,IAAI;gBACZ,YAAY;gBACZ,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YAC5D,OAAO;gBACL,EAAE;gBACF,MAAM,EAAE,KAAK;gBACb,YAAY,EAAE,EAAE;aACjB,CAAA;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,oBAAoB,CACxB,WAA0B,EAC1B,YAAY,GAAG,OAAO,EACtB,MAAe;QAEf,MAAM,OAAO,GAAsB,EAAE,CAAA;QAErC,KAAK,MAAM,cAAc,IAAI,WAAW,EAAE,CAAC;YACzC,qCAAqC;YACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAA;YAElE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;gBACtD,IAAI,CAAC,EAAE;oBAAE,SAAQ;gBAEjB,IAAI,CAAC;oBACH,iFAAiF;oBACjF,mFAAmF;oBACnF,4DAA4D;oBAC5D,sEAAsE;oBACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;oBAClD,MAAM,cAAc,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAA;oBAExD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;oBACnE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC,CAAA;oBAEhF,kCAAkC;oBAClC,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBAClE,SAAQ;oBACV,CAAC;oBAED,OAAO,CAAC,IAAI,CAAC;wBACX,EAAE;wBACF,KAAK;wBACL,UAAU,EAAE,KAAK,CAAC,UAAU;qBAC7B,CAAC,CAAA;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,kCAAkC;oBAClC,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE;wBAC3D,UAAU,EAAE,KAAK,CAAC,UAAU;wBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,KAAK;qBACN,CAAC,CAAA;oBACF,SAAQ;gBACV,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB,CAAC,cAA2B;QAO/D,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAA;IACzD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,GAAa,EAAE,YAAY,GAAG,OAAO;QACrD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACrE,CAAC;CACF"}
|
package/dist/services.d.ts
CHANGED
|
@@ -71,6 +71,12 @@ export interface CreateCanopyServicesOptions {
|
|
|
71
71
|
* @internal
|
|
72
72
|
*/
|
|
73
73
|
branchSchemaCache?: BranchSchemaCache;
|
|
74
|
+
/**
|
|
75
|
+
* Test-only: Override for getSettingsBranchRoot.
|
|
76
|
+
* When provided, bypasses the real git workspace setup for settings.
|
|
77
|
+
* @internal
|
|
78
|
+
*/
|
|
79
|
+
getSettingsBranchRoot?: () => Promise<string>;
|
|
74
80
|
}
|
|
75
81
|
/**
|
|
76
82
|
* Create reusable helpers from a validated CanopyConfig.
|
package/dist/services.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"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"}
|
package/dist/services.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
1
2
|
import { getConfigDefaults } from './config';
|
|
2
3
|
import { createCheckPathAccess, createCheckBranchAccess, createCheckContentAccess, loadPathPermissions, } from './authorization';
|
|
3
4
|
import { GitManager } from './git-manager';
|
|
@@ -9,6 +10,19 @@ import { operatingStrategy } from './operating-mode';
|
|
|
9
10
|
import { BranchSchemaCache } from './branch-schema-cache';
|
|
10
11
|
import { enqueueTask } from './worker/task-queue';
|
|
11
12
|
import { getTaskQueueDir } from './worker/task-queue-config';
|
|
13
|
+
import { detectHeadBranch } from './utils/git';
|
|
14
|
+
/**
|
|
15
|
+
* In dev mode, auto-detect the current HEAD branch if defaultBaseBranch is not set.
|
|
16
|
+
* Eliminates the need to manually update defaultBaseBranch when working on a feature branch.
|
|
17
|
+
*/
|
|
18
|
+
async function detectDevBaseBranch(config) {
|
|
19
|
+
if (config.defaultBaseBranch)
|
|
20
|
+
return config.defaultBaseBranch;
|
|
21
|
+
if (config.mode !== 'dev')
|
|
22
|
+
return config.defaultBaseBranch ?? 'main';
|
|
23
|
+
const repoRoot = config.sourceRoot ? path.resolve(config.sourceRoot) : process.cwd();
|
|
24
|
+
return detectHeadBranch(repoRoot);
|
|
25
|
+
}
|
|
12
26
|
/**
|
|
13
27
|
* Parse bootstrap admin IDs from environment variable.
|
|
14
28
|
* These users are always treated as Admins regardless of group membership.
|
|
@@ -53,36 +67,36 @@ async function _createCanopyServicesInternal(config, options) {
|
|
|
53
67
|
// Validate mode-specific requirements (e.g., prod requires git bot credentials for GitHub)
|
|
54
68
|
const strategy = operatingStrategy(config.mode);
|
|
55
69
|
strategy.validateConfig(config);
|
|
70
|
+
// In dev mode, auto-detect the current git branch if defaultBaseBranch is not set.
|
|
71
|
+
// Bake the result into config so all downstream code (BranchWorkspaceManager, GitManager)
|
|
72
|
+
// uses the same detected value without re-detecting (avoids race if HEAD changes mid-request).
|
|
73
|
+
const effectiveBaseBranch = await detectDevBaseBranch(config);
|
|
74
|
+
config = { ...config, defaultBaseBranch: effectiveBaseBranch };
|
|
56
75
|
// Load bootstrap admin IDs from environment
|
|
57
76
|
const bootstrapAdminIds = getBootstrapAdminIds();
|
|
58
77
|
// Create per-branch schema cache (or use provided one for testing)
|
|
59
78
|
const branchSchemaCache = options.branchSchemaCache ?? new BranchSchemaCache(config.mode);
|
|
60
79
|
const checkBranchAccess = createCheckBranchAccess(config.defaultBranchAccess ?? 'deny');
|
|
61
|
-
// Path permissions are loaded dynamically from settings branch
|
|
80
|
+
// Path permissions are loaded dynamically from the settings branch at request time.
|
|
62
81
|
// At the service level, we bind with empty rules for direct path checks.
|
|
63
82
|
const checkPathAccess = createCheckPathAccess([], config.defaultPathAccess ?? 'deny');
|
|
64
|
-
// Content access loads permissions dynamically from settings
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
settingsRoot
|
|
80
|
-
branchName,
|
|
81
|
-
mode: config.mode,
|
|
82
|
-
remoteUrl: config.defaultRemoteUrl,
|
|
83
|
+
// Content access loads permissions dynamically from the settings branch (orphan git branch)
|
|
84
|
+
const getSettingsBranchRoot = options.getSettingsBranchRoot ??
|
|
85
|
+
(async () => {
|
|
86
|
+
const strategy = operatingStrategy(config.mode);
|
|
87
|
+
const settingsRoot = strategy.getSettingsRoot();
|
|
88
|
+
const branchName = strategy.getSettingsBranchName(config);
|
|
89
|
+
// Use SettingsWorkspaceManager to ensure git workspace for settings
|
|
90
|
+
// This is Lambda-safe because the lock is in-memory per process
|
|
91
|
+
const manager = new SettingsWorkspaceManager(config);
|
|
92
|
+
await manager.ensureGitWorkspace({
|
|
93
|
+
settingsRoot,
|
|
94
|
+
branchName,
|
|
95
|
+
mode: config.mode,
|
|
96
|
+
remoteUrl: config.defaultRemoteUrl,
|
|
97
|
+
});
|
|
98
|
+
return settingsRoot;
|
|
83
99
|
});
|
|
84
|
-
return settingsRoot;
|
|
85
|
-
};
|
|
86
100
|
const checkContentAccess = createCheckContentAccess({
|
|
87
101
|
checkBranchAccess,
|
|
88
102
|
loadPathPermissions,
|
|
@@ -93,7 +107,7 @@ async function _createCanopyServicesInternal(config, options) {
|
|
|
93
107
|
const configDefaults = getConfigDefaults();
|
|
94
108
|
const createGitManagerFor = (repoPath, opts) => new GitManager({
|
|
95
109
|
repoPath,
|
|
96
|
-
baseBranch: opts?.baseBranch ??
|
|
110
|
+
baseBranch: opts?.baseBranch ?? effectiveBaseBranch,
|
|
97
111
|
remote: opts?.remote ?? config.defaultRemoteName ?? configDefaults.remoteName,
|
|
98
112
|
});
|
|
99
113
|
const commitFiles = async (options) => {
|
|
@@ -195,23 +209,21 @@ async function _createCanopyServicesInternal(config, options) {
|
|
|
195
209
|
}
|
|
196
210
|
// Async path: queue task for worker (prod Lambda has no internet)
|
|
197
211
|
const taskDir = getTaskQueueDir(config);
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
return { committed: true, pushed: true, syncStatus: 'sync-failed' };
|
|
214
|
-
}
|
|
212
|
+
try {
|
|
213
|
+
await enqueueTask(taskDir, {
|
|
214
|
+
action: 'push-and-create-or-update-pr',
|
|
215
|
+
payload: {
|
|
216
|
+
branch: settingsBranch,
|
|
217
|
+
baseBranch: config.defaultBaseBranch ?? 'main',
|
|
218
|
+
title: 'Update permissions and groups',
|
|
219
|
+
body: 'Automated PR for permission and group changes. Changes are already active in the CMS and will be persisted when this PR is merged.',
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
return { committed: true, pushed: true, syncStatus: 'pending-sync' };
|
|
223
|
+
}
|
|
224
|
+
catch (err) {
|
|
225
|
+
console.warn('Failed to enqueue settings PR task:', err);
|
|
226
|
+
return { committed: true, pushed: true, syncStatus: 'sync-failed' };
|
|
215
227
|
}
|
|
216
228
|
}
|
|
217
229
|
return { committed: true, pushed: true };
|
package/dist/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,8 @@ export declare const isSettingsBranch: (branchName: string, config: {
|
|
|
9
9
|
defaultBaseBranch?: string;
|
|
10
10
|
}) => boolean;
|
|
11
11
|
/**
|
|
12
|
-
* Get the settings branch name for the current configuration
|
|
13
|
-
* Returns null if operating mode doesn't use separate settings branch
|
|
12
|
+
* Get the settings branch name for the current configuration.
|
|
13
|
+
* Returns null if operating mode doesn't use a separate settings branch.
|
|
14
14
|
*/
|
|
15
15
|
export declare const getSettingsBranchName: (config: {
|
|
16
16
|
mode: OperatingMode;
|
|
@@ -4,7 +4,7 @@ import { operatingStrategy } from './operating-mode';
|
|
|
4
4
|
*/
|
|
5
5
|
export const isSettingsBranch = (branchName, config) => {
|
|
6
6
|
const strategy = operatingStrategy(config.mode);
|
|
7
|
-
//
|
|
7
|
+
// Check if mode uses a separate settings branch (both prod and dev do)
|
|
8
8
|
if (!strategy.usesSeparateSettingsBranch()) {
|
|
9
9
|
return false;
|
|
10
10
|
}
|
|
@@ -16,8 +16,8 @@ export const isSettingsBranch = (branchName, config) => {
|
|
|
16
16
|
return branchName === settingsBranchName;
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
|
-
* Get the settings branch name for the current configuration
|
|
20
|
-
* Returns null if operating mode doesn't use separate settings branch
|
|
19
|
+
* Get the settings branch name for the current configuration.
|
|
20
|
+
* Returns null if operating mode doesn't use a separate settings branch.
|
|
21
21
|
*/
|
|
22
22
|
export const getSettingsBranchName = (config) => {
|
|
23
23
|
const strategy = operatingStrategy(config.mode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-branch-utils.js","sourceRoot":"","sources":["../src/settings-branch-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAGpD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,UAAkB,EAClB,MAKC,EACQ,EAAE;IACX,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAE/C,
|
|
1
|
+
{"version":3,"file":"settings-branch-utils.js","sourceRoot":"","sources":["../src/settings-branch-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAGpD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,UAAkB,EAClB,MAKC,EACQ,EAAE;IACX,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAE/C,uEAAuE;IACvE,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,kBAAkB,GAAG,QAAQ,CAAC,qBAAqB,CAAC;QACxD,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;KAC5C,CAAC,CAAA;IAEF,OAAO,UAAU,KAAK,kBAAkB,CAAA;AAC1C,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAKrC,EAAiB,EAAE;IAClB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAE/C,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,QAAQ,CAAC,qBAAqB,CAAC;QACpC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;KAC5C,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -10,8 +10,7 @@ export interface EnsureSettingsWorkspaceOptions {
|
|
|
10
10
|
* Manages settings filesystem workspace and git operations.
|
|
11
11
|
*
|
|
12
12
|
* Settings are stored separately from content branches:
|
|
13
|
-
* - prod/
|
|
14
|
-
* - dev: Regular directory (no git)
|
|
13
|
+
* - prod/dev: Orphan git branches (no shared history with content)
|
|
15
14
|
*
|
|
16
15
|
* Unlike BranchWorkspaceManager, this does not:
|
|
17
16
|
* - Create or manage metadata files
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-workspace.d.ts","sourceRoot":"","sources":["../src/settings-workspace.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAcrD,MAAM,WAAW,8BAA8B;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,aAAa,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA0DD
|
|
1
|
+
{"version":3,"file":"settings-workspace.d.ts","sourceRoot":"","sources":["../src/settings-workspace.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAcrD,MAAM,WAAW,8BAA8B;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,aAAa,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA0DD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,YAAY;IAI1B,kBAAkB,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;CAoDjF"}
|