@ttt-productions/ttt-core 0.79.42 → 0.79.43
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/media/hall-library-target-fields.d.ts +20 -0
- package/dist/media/hall-library-target-fields.d.ts.map +1 -1
- package/dist/media/hall-library-target-fields.js +20 -0
- package/dist/media/hall-library-target-fields.js.map +1 -1
- package/dist/paths/collection-refs.d.ts +2 -0
- package/dist/paths/collection-refs.d.ts.map +1 -1
- package/dist/paths/collection-refs.js +6 -0
- package/dist/paths/collection-refs.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,4 +10,24 @@ export declare const HALL_LIBRARY_TARGET_FIELDS: {
|
|
|
10
10
|
};
|
|
11
11
|
export type HallLibraryFileOrigin = keyof typeof HALL_LIBRARY_TARGET_FIELDS;
|
|
12
12
|
export type HallLibraryTargetField = typeof HALL_LIBRARY_TARGET_FIELDS[HallLibraryFileOrigin];
|
|
13
|
+
export type HallLibraryCoverFileOrigin = Extract<HallLibraryFileOrigin, `hallLibrary-cover-${string}`>;
|
|
14
|
+
export type HallLibrarySubItemFileOrigin = Exclude<HallLibraryFileOrigin, HallLibraryCoverFileOrigin>;
|
|
15
|
+
export declare const HALL_LIBRARY_COVER_TARGET_FIELDS: {
|
|
16
|
+
readonly 'hallLibrary-cover-square': "coverSquareAssetId";
|
|
17
|
+
readonly 'hallLibrary-cover-poster': "coverPosterAssetId";
|
|
18
|
+
readonly 'hallLibrary-cover-cinematic': "coverCinematicAssetId";
|
|
19
|
+
};
|
|
20
|
+
export declare const HALL_LIBRARY_SUB_ITEM_TARGET_FIELDS: {
|
|
21
|
+
readonly 'chapter-photo': "photoAssetId";
|
|
22
|
+
readonly 'tune-track-photo': "photoAssetId";
|
|
23
|
+
readonly 'tune-track-audio': "audioAssetId";
|
|
24
|
+
readonly 'television-episode-photo': "photoAssetId";
|
|
25
|
+
readonly 'television-episode-video': "videoAssetId";
|
|
26
|
+
};
|
|
27
|
+
export type HallLibraryCoverTargetField = typeof HALL_LIBRARY_COVER_TARGET_FIELDS[HallLibraryCoverFileOrigin];
|
|
28
|
+
export type HallLibrarySubItemTargetField = typeof HALL_LIBRARY_SUB_ITEM_TARGET_FIELDS[HallLibrarySubItemFileOrigin];
|
|
29
|
+
/** True when the origin writes a cover field on the hall parent / Work section doc. */
|
|
30
|
+
export declare function isHallLibraryCoverFileOrigin(origin: string): origin is HallLibraryCoverFileOrigin;
|
|
31
|
+
/** True when the origin writes a media field on a chapter / track / episode doc. */
|
|
32
|
+
export declare function isHallLibrarySubItemFileOrigin(origin: string): origin is HallLibrarySubItemFileOrigin;
|
|
13
33
|
//# sourceMappingURL=hall-library-target-fields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hall-library-target-fields.d.ts","sourceRoot":"","sources":["../../src/media/hall-library-target-fields.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,0BAA0B;;;;;;;;;CASiB,CAAC;AAEzD,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,0BAA0B,CAAC;AAC5E,MAAM,MAAM,sBAAsB,GAAG,OAAO,0BAA0B,CAAC,qBAAqB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"hall-library-target-fields.d.ts","sourceRoot":"","sources":["../../src/media/hall-library-target-fields.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,0BAA0B;;;;;;;;;CASiB,CAAC;AAEzD,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,0BAA0B,CAAC;AAC5E,MAAM,MAAM,sBAAsB,GAAG,OAAO,0BAA0B,CAAC,qBAAqB,CAAC,CAAC;AAU9F,MAAM,MAAM,0BAA0B,GACpC,OAAO,CAAC,qBAAqB,EAAE,qBAAqB,MAAM,EAAE,CAAC,CAAC;AAChE,MAAM,MAAM,4BAA4B,GACtC,OAAO,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,CAAC;AAE7D,eAAO,MAAM,gCAAgC;;;;CAI2C,CAAC;AAEzF,eAAO,MAAM,mCAAmC;;;;;;CAM0C,CAAC;AAE3F,MAAM,MAAM,2BAA2B,GACrC,OAAO,gCAAgC,CAAC,0BAA0B,CAAC,CAAC;AACtE,MAAM,MAAM,6BAA6B,GACvC,OAAO,mCAAmC,CAAC,4BAA4B,CAAC,CAAC;AAE3E,uFAAuF;AACvF,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GACb,MAAM,IAAI,0BAA0B,CAEtC;AAED,oFAAoF;AACpF,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,GACb,MAAM,IAAI,4BAA4B,CAExC"}
|
|
@@ -19,4 +19,24 @@ export const HALL_LIBRARY_TARGET_FIELDS = {
|
|
|
19
19
|
'television-episode-photo': 'photoAssetId',
|
|
20
20
|
'television-episode-video': 'videoAssetId',
|
|
21
21
|
};
|
|
22
|
+
export const HALL_LIBRARY_COVER_TARGET_FIELDS = {
|
|
23
|
+
'hallLibrary-cover-square': HALL_LIBRARY_TARGET_FIELDS['hallLibrary-cover-square'],
|
|
24
|
+
'hallLibrary-cover-poster': HALL_LIBRARY_TARGET_FIELDS['hallLibrary-cover-poster'],
|
|
25
|
+
'hallLibrary-cover-cinematic': HALL_LIBRARY_TARGET_FIELDS['hallLibrary-cover-cinematic'],
|
|
26
|
+
};
|
|
27
|
+
export const HALL_LIBRARY_SUB_ITEM_TARGET_FIELDS = {
|
|
28
|
+
'chapter-photo': HALL_LIBRARY_TARGET_FIELDS['chapter-photo'],
|
|
29
|
+
'tune-track-photo': HALL_LIBRARY_TARGET_FIELDS['tune-track-photo'],
|
|
30
|
+
'tune-track-audio': HALL_LIBRARY_TARGET_FIELDS['tune-track-audio'],
|
|
31
|
+
'television-episode-photo': HALL_LIBRARY_TARGET_FIELDS['television-episode-photo'],
|
|
32
|
+
'television-episode-video': HALL_LIBRARY_TARGET_FIELDS['television-episode-video'],
|
|
33
|
+
};
|
|
34
|
+
/** True when the origin writes a cover field on the hall parent / Work section doc. */
|
|
35
|
+
export function isHallLibraryCoverFileOrigin(origin) {
|
|
36
|
+
return Object.prototype.hasOwnProperty.call(HALL_LIBRARY_COVER_TARGET_FIELDS, origin);
|
|
37
|
+
}
|
|
38
|
+
/** True when the origin writes a media field on a chapter / track / episode doc. */
|
|
39
|
+
export function isHallLibrarySubItemFileOrigin(origin) {
|
|
40
|
+
return Object.prototype.hasOwnProperty.call(HALL_LIBRARY_SUB_ITEM_TARGET_FIELDS, origin);
|
|
41
|
+
}
|
|
22
42
|
//# sourceMappingURL=hall-library-target-fields.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hall-library-target-fields.js","sourceRoot":"","sources":["../../src/media/hall-library-target-fields.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,uEAAuE;AACvE,+DAA+D;AAC/D,EAAE;AACF,kEAAkE;AAClE,sEAAsE;AACtE,oEAAoE;AACpE,oDAAoD;AACpD,EAAE;AACF,qEAAqE;AACrE,qCAAqC;AACrC,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,0BAA0B,EAAK,oBAAoB;IACnD,0BAA0B,EAAK,oBAAoB;IACnD,6BAA6B,EAAE,uBAAuB;IACtD,eAAe,EAAY,cAAc;IACzC,kBAAkB,EAAe,cAAc;IAC/C,kBAAkB,EAAe,cAAc;IAC/C,0BAA0B,EAAe,cAAc;IACvD,0BAA0B,EAAe,cAAc;CACD,CAAC","sourcesContent":["import type { FileOrigin } from './file-origin.js';\n\n// Server-side mapping from hallLibrary/sub-item fileOrigin to the doc field\n// that receives the processed media-asset reference (never a URL — see\n// ttt-prod docs/design/media-assets-and-protected-serving.md).\n//\n// Owned in ttt-core because it's a contract fact about the upload\n// pipeline — same tier as TTT_MEDIA_SPECS and PATH_BUILDERS. Frontend\n// never reads this. Processors look the field up after deriving the\n// target doc path from the typed IDs in targetInfo.\n//\n// The Partial<Record<FileOrigin, string>> constraint guarantees only\n// valid FileOrigin strings are keys.\nexport const HALL_LIBRARY_TARGET_FIELDS = {\n 'hallLibrary-cover-square': 'coverSquareAssetId',\n 'hallLibrary-cover-poster': 'coverPosterAssetId',\n 'hallLibrary-cover-cinematic': 'coverCinematicAssetId',\n 'chapter-photo': 'photoAssetId',\n 'tune-track-photo': 'photoAssetId',\n 'tune-track-audio': 'audioAssetId',\n 'television-episode-photo': 'photoAssetId',\n 'television-episode-video': 'videoAssetId',\n} as const satisfies Partial<Record<FileOrigin, string>>;\n\nexport type HallLibraryFileOrigin = keyof typeof HALL_LIBRARY_TARGET_FIELDS;\nexport type HallLibraryTargetField = typeof HALL_LIBRARY_TARGET_FIELDS[HallLibraryFileOrigin];\n\n"]}
|
|
1
|
+
{"version":3,"file":"hall-library-target-fields.js","sourceRoot":"","sources":["../../src/media/hall-library-target-fields.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,uEAAuE;AACvE,+DAA+D;AAC/D,EAAE;AACF,kEAAkE;AAClE,sEAAsE;AACtE,oEAAoE;AACpE,oDAAoD;AACpD,EAAE;AACF,qEAAqE;AACrE,qCAAqC;AACrC,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,0BAA0B,EAAK,oBAAoB;IACnD,0BAA0B,EAAK,oBAAoB;IACnD,6BAA6B,EAAE,uBAAuB;IACtD,eAAe,EAAY,cAAc;IACzC,kBAAkB,EAAe,cAAc;IAC/C,kBAAkB,EAAe,cAAc;IAC/C,0BAA0B,EAAe,cAAc;IACvD,0BAA0B,EAAe,cAAc;CACD,CAAC;AAkBzD,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,0BAA0B,EAAK,0BAA0B,CAAC,0BAA0B,CAAC;IACrF,0BAA0B,EAAK,0BAA0B,CAAC,0BAA0B,CAAC;IACrF,6BAA6B,EAAE,0BAA0B,CAAC,6BAA6B,CAAC;CACF,CAAC;AAEzF,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,eAAe,EAAa,0BAA0B,CAAC,eAAe,CAAC;IACvE,kBAAkB,EAAU,0BAA0B,CAAC,kBAAkB,CAAC;IAC1E,kBAAkB,EAAU,0BAA0B,CAAC,kBAAkB,CAAC;IAC1E,0BAA0B,EAAE,0BAA0B,CAAC,0BAA0B,CAAC;IAClF,0BAA0B,EAAE,0BAA0B,CAAC,0BAA0B,CAAC;CACM,CAAC;AAO3F,uFAAuF;AACvF,MAAM,UAAU,4BAA4B,CAC1C,MAAc;IAEd,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC;AACxF,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,8BAA8B,CAC5C,MAAc;IAEd,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC;AAC3F,CAAC","sourcesContent":["import type { FileOrigin } from './file-origin.js';\n\n// Server-side mapping from hallLibrary/sub-item fileOrigin to the doc field\n// that receives the processed media-asset reference (never a URL — see\n// ttt-prod docs/design/media-assets-and-protected-serving.md).\n//\n// Owned in ttt-core because it's a contract fact about the upload\n// pipeline — same tier as TTT_MEDIA_SPECS and PATH_BUILDERS. Frontend\n// never reads this. Processors look the field up after deriving the\n// target doc path from the typed IDs in targetInfo.\n//\n// The Partial<Record<FileOrigin, string>> constraint guarantees only\n// valid FileOrigin strings are keys.\nexport const HALL_LIBRARY_TARGET_FIELDS = {\n 'hallLibrary-cover-square': 'coverSquareAssetId',\n 'hallLibrary-cover-poster': 'coverPosterAssetId',\n 'hallLibrary-cover-cinematic': 'coverCinematicAssetId',\n 'chapter-photo': 'photoAssetId',\n 'tune-track-photo': 'photoAssetId',\n 'tune-track-audio': 'audioAssetId',\n 'television-episode-photo': 'photoAssetId',\n 'television-episode-video': 'videoAssetId',\n} as const satisfies Partial<Record<FileOrigin, string>>;\n\nexport type HallLibraryFileOrigin = keyof typeof HALL_LIBRARY_TARGET_FIELDS;\nexport type HallLibraryTargetField = typeof HALL_LIBRARY_TARGET_FIELDS[HallLibraryFileOrigin];\n\n// The same map split by WRITE LEVEL. A cover origin attaches its field on the hall\n// PARENT (the Work's tale/tune/television section doc); a sub-item origin attaches on a\n// chapter / track / episode doc. A processor owns exactly one level, so indexing the whole\n// map there types the write against fields the document it writes never declares.\n//\n// Both subsets are derived from the one map above — no field name is restated — and the\n// `satisfies Pick<...>` constraints close the partition at compile time: an origin added to\n// the parent map lands in one of the two key unions and fails to build until it is listed.\nexport type HallLibraryCoverFileOrigin =\n Extract<HallLibraryFileOrigin, `hallLibrary-cover-${string}`>;\nexport type HallLibrarySubItemFileOrigin =\n Exclude<HallLibraryFileOrigin, HallLibraryCoverFileOrigin>;\n\nexport const HALL_LIBRARY_COVER_TARGET_FIELDS = {\n 'hallLibrary-cover-square': HALL_LIBRARY_TARGET_FIELDS['hallLibrary-cover-square'],\n 'hallLibrary-cover-poster': HALL_LIBRARY_TARGET_FIELDS['hallLibrary-cover-poster'],\n 'hallLibrary-cover-cinematic': HALL_LIBRARY_TARGET_FIELDS['hallLibrary-cover-cinematic'],\n} as const satisfies Pick<typeof HALL_LIBRARY_TARGET_FIELDS, HallLibraryCoverFileOrigin>;\n\nexport const HALL_LIBRARY_SUB_ITEM_TARGET_FIELDS = {\n 'chapter-photo': HALL_LIBRARY_TARGET_FIELDS['chapter-photo'],\n 'tune-track-photo': HALL_LIBRARY_TARGET_FIELDS['tune-track-photo'],\n 'tune-track-audio': HALL_LIBRARY_TARGET_FIELDS['tune-track-audio'],\n 'television-episode-photo': HALL_LIBRARY_TARGET_FIELDS['television-episode-photo'],\n 'television-episode-video': HALL_LIBRARY_TARGET_FIELDS['television-episode-video'],\n} as const satisfies Pick<typeof HALL_LIBRARY_TARGET_FIELDS, HallLibrarySubItemFileOrigin>;\n\nexport type HallLibraryCoverTargetField =\n typeof HALL_LIBRARY_COVER_TARGET_FIELDS[HallLibraryCoverFileOrigin];\nexport type HallLibrarySubItemTargetField =\n typeof HALL_LIBRARY_SUB_ITEM_TARGET_FIELDS[HallLibrarySubItemFileOrigin];\n\n/** True when the origin writes a cover field on the hall parent / Work section doc. */\nexport function isHallLibraryCoverFileOrigin(\n origin: string,\n): origin is HallLibraryCoverFileOrigin {\n return Object.prototype.hasOwnProperty.call(HALL_LIBRARY_COVER_TARGET_FIELDS, origin);\n}\n\n/** True when the origin writes a media field on a chapter / track / episode doc. */\nexport function isHallLibrarySubItemFileOrigin(\n origin: string,\n): origin is HallLibrarySubItemFileOrigin {\n return Object.prototype.hasOwnProperty.call(HALL_LIBRARY_SUB_ITEM_TARGET_FIELDS, origin);\n}\n\n"]}
|
|
@@ -28,5 +28,7 @@ export declare const COLLECTION_REFS: {
|
|
|
28
28
|
readonly guildInviteConversationFiles: (guildInviteId: string) => [string, string, string];
|
|
29
29
|
readonly adminDispatchConversationFiles: (adminDispatchId: string) => [string, string, string];
|
|
30
30
|
readonly adminDispatchConversationMessages: (adminDispatchId: string) => [string, string, string];
|
|
31
|
+
readonly pendingMedia: () => [string];
|
|
32
|
+
readonly pendingMediaArchive: () => [string];
|
|
31
33
|
};
|
|
32
34
|
//# sourceMappingURL=collection-refs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-refs.d.ts","sourceRoot":"","sources":["../../src/paths/collection-refs.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,eAAe;iCAER,CAAC,MAAM,CAAC;oCACL,CAAC,MAAM,CAAC;uCACL,CAAC,MAAM,CAAC;+BAChB,CAAC,MAAM,CAAC;sCACD,CAAC,MAAM,CAAC;uCACP,CAAC,MAAM,CAAC;kCACb,CAAC,MAAM,CAAC;gCACV,CAAC,MAAM,CAAC;mCACL,CAAC,MAAM,CAAC;4CAIC,CAAC,MAAM,CAAC;6CACP,CAAC,MAAM,CAAC;uCAGZ,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAIzB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAGjC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;oDAG5B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8DAGvB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gDAG/C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;6CAMpC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gCAIhD,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;mCAIrB,CAAC,MAAM,CAAC;8BAEb,CAAC,MAAM,CAAC;8CAEQ,CAAC,MAAM,CAAC;wDAGI,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2CAG9C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;yCAGnC,MAAM,UAAU,MAAM,KAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;uDAG5D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2DAK7B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+DAG7B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;kEAO9B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"collection-refs.d.ts","sourceRoot":"","sources":["../../src/paths/collection-refs.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,eAAe;iCAER,CAAC,MAAM,CAAC;oCACL,CAAC,MAAM,CAAC;uCACL,CAAC,MAAM,CAAC;+BAChB,CAAC,MAAM,CAAC;sCACD,CAAC,MAAM,CAAC;uCACP,CAAC,MAAM,CAAC;kCACb,CAAC,MAAM,CAAC;gCACV,CAAC,MAAM,CAAC;mCACL,CAAC,MAAM,CAAC;4CAIC,CAAC,MAAM,CAAC;6CACP,CAAC,MAAM,CAAC;uCAGZ,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAIzB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAGjC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;oDAG5B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8DAGvB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gDAG/C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;6CAMpC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gCAIhD,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;mCAIrB,CAAC,MAAM,CAAC;8BAEb,CAAC,MAAM,CAAC;8CAEQ,CAAC,MAAM,CAAC;wDAGI,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2CAG9C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;yCAGnC,MAAM,UAAU,MAAM,KAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;uDAG5D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2DAK7B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+DAG7B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;kEAO9B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iCAOpE,CAAC,MAAM,CAAC;wCAED,CAAC,MAAM,CAAC;CACzB,CAAC"}
|
|
@@ -50,5 +50,11 @@ export const COLLECTION_REFS = {
|
|
|
50
50
|
// admin-dispatch panel subscribes to the same collection. The per-document counterpart is
|
|
51
51
|
// PATH_BUILDERS.adminConversationMessage.
|
|
52
52
|
adminDispatchConversationMessages: (adminDispatchId) => [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId, NESTED_SUBCOLLECTIONS.CONVERSATION_MESSAGES],
|
|
53
|
+
// The upload pipeline's pending-row collection and the archive it sweeps terminal rows
|
|
54
|
+
// into. The sweep addresses both as COLLECTIONS (query the live one, write a row per
|
|
55
|
+
// archived doc); the per-document counterparts are PATH_BUILDERS.pendingMedia /
|
|
56
|
+
// PATH_BUILDERS.pendingMediaArchive.
|
|
57
|
+
pendingMedia: () => [COLLECTIONS.PENDING_MEDIA],
|
|
58
|
+
pendingMediaArchive: () => [COLLECTIONS.PENDING_MEDIA_ARCHIVE],
|
|
53
59
|
};
|
|
54
60
|
//# sourceMappingURL=collection-refs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-refs.js","sourceRoot":"","sources":["../../src/paths/collection-refs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"collection-refs.js","sourceRoot":"","sources":["../../src/paths/collection-refs.ts"],"names":[],"mappings":"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","sourcesContent":["// Collection reference builders — for collection-level operations.\n//\n// Frontend: collection(db, ...COLLECTION_REFS.userProfiles())\n// Backend: db.collection(toPath(COLLECTION_REFS.userProfiles()))\n\nimport {\n COLLECTIONS,\n USER_SUBCOLLECTIONS,\n WORK_PROJECT_SUBCOLLECTIONS,\n WORK_REALM_SUBCOLLECTIONS,\n NESTED_SUBCOLLECTIONS,\n} from './collections.js';\n\nexport const COLLECTION_REFS = {\n // Top-level collections\n userProfiles: (): [string] => [COLLECTIONS.USER_PROFILES],\n allWorkProjects: (): [string] => [COLLECTIONS.ALL_WORK_PROJECTS],\n publicWorkProjects: (): [string] => [COLLECTIONS.PUBLIC_WORK_PROJECTS],\n workRealms: (): [string] => [COLLECTIONS.WORK_REALMS],\n squareStreetzFeed: (): [string] => [COLLECTIONS.SQUARE_STREETZ_FEED],\n commissionListings: (): [string] => [COLLECTIONS.COMMISSION_LISTINGS],\n auditionBoard: (): [string] => [COLLECTIONS.AUDITION_BOARD],\n followEdges: (): [string] => [COLLECTIONS.FOLLOW_EDGES],\n followCounters: (): [string] => [COLLECTIONS.FOLLOW_COUNTERS],\n\n // Active notification lanes. Both collections are top-level and are selected by\n // notification category; callers never hand-roll their collection names.\n activeUserNotifications: (): [string] => [COLLECTIONS.ACTIVE_USER_NOTIFICATIONS],\n activeAdminNotifications: (): [string] => [COLLECTIONS.ACTIVE_ADMIN_NOTIFICATIONS],\n\n // User subcollections\n userCraftSkills: (userId: string): [string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.PROFILE_CRAFT_SKILLS],\n\n // WorkProject subcollections\n workProjectTales: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TALES],\n\n workProjectTunes: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TUNES],\n\n workProjectTelevision: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TELEVISION],\n\n workProjectPublicGuildmateUsers: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.PUBLIC_GUILDMATE_USERS],\n\n guildChatChannels: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.GUILD_CHAT_CHANNELS],\n\n // WorkRealm subcollections — the steward's realm shared-file folders. The projection owner\n // lists this collection (bounded by MAX_REALM_FILE_FOLDERS) and the folder-cap /\n // name-uniqueness checks query it; clients never read it directly.\n realmFileFolders: (workRealmId: string): [string, string, string] =>\n [COLLECTIONS.WORK_REALMS, workRealmId, WORK_REALM_SUBCOLLECTIONS.REALM_FILE_FOLDERS],\n\n // SquareStreetz collections\n activePosts: (): [string, string, string] =>\n [COLLECTIONS.SQUARE_STREETZ_FEED, NESTED_SUBCOLLECTIONS.ACTIVE_POSTS, NESTED_SUBCOLLECTIONS.SOCIAL_POSTS],\n\n // HallLibrary collections\n thresholdItems: (): [string] => [COLLECTIONS.THRESHOLD_ITEMS],\n\n hallItems: (): [string] => [COLLECTIONS.HALL_ITEMS],\n\n hallContentChangeRequests: (): [string] => [COLLECTIONS.HALL_CONTENT_CHANGE_REQUESTS],\n\n // Commission/Audition collections\n commissionProposals: (commissionListingId: string): [string, string, string] =>\n [COLLECTIONS.COMMISSION_LISTINGS, commissionListingId, NESTED_SUBCOLLECTIONS.COMMISSION_PROPOSALS],\n\n auditionEntries: (auditionId: string): [string, string, string] =>\n [COLLECTIONS.AUDITION_BOARD, auditionId, NESTED_SUBCOLLECTIONS.AUDITION_ENTRIES],\n\n tuneTracks: (workProjectId: string, tuneId: string): readonly [string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TUNES, tuneId, NESTED_SUBCOLLECTIONS.TUNE_TRACKS] as const,\n\n moderationCascadeChangedDocs: (cascadeId: string): [string, string, string] =>\n [COLLECTIONS.MODERATION_CASCADE_MANIFESTS, cascadeId, NESTED_SUBCOLLECTIONS.CHANGED_DOCS],\n\n // Conversation Files list for each supported ConversationFileRef scope (the panel\n // subscribes to the collection; the backend writes the docs).\n guildInviteConversationFiles: (guildInviteId: string): [string, string, string] =>\n [COLLECTIONS.GUILD_INVITE_CONVERSATIONS, guildInviteId, NESTED_SUBCOLLECTIONS.CONVERSATION_FILES],\n\n adminDispatchConversationFiles: (adminDispatchId: string): [string, string, string] =>\n [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId, NESTED_SUBCOLLECTIONS.CONVERSATION_FILES],\n\n // The admin-support thread's message subcollection. Backend writers mint a new message\n // document with `db.collection(toPath(...)).doc()` so the id is a Firestore auto-id; the\n // admin-dispatch panel subscribes to the same collection. The per-document counterpart is\n // PATH_BUILDERS.adminConversationMessage.\n adminDispatchConversationMessages: (adminDispatchId: string): [string, string, string] =>\n [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId, NESTED_SUBCOLLECTIONS.CONVERSATION_MESSAGES],\n\n // The upload pipeline's pending-row collection and the archive it sweeps terminal rows\n // into. The sweep addresses both as COLLECTIONS (query the live one, write a row per\n // archived doc); the per-document counterparts are PATH_BUILDERS.pendingMedia /\n // PATH_BUILDERS.pendingMediaArchive.\n pendingMedia: (): [string] => [COLLECTIONS.PENDING_MEDIA],\n\n pendingMediaArchive: (): [string] => [COLLECTIONS.PENDING_MEDIA_ARCHIVE],\n} as const;\n"]}
|