@patterkit/ops 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +189 -9
- package/dist/index.js +567 -152
- package/package.json +6 -6
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ProjectFile, Bundle, HostScopeRegistry, Scene, LocaleFile, AuthoringFile, ExtensionShard, GameData, CoverageDriver, GrammaticalGender, Effect, GameDataFieldType, GameDataNodeKind, DocumentationClass, DocLine,
|
|
1
|
+
import { ProjectFile, Bundle, HostScopeRegistry, Scene, LocaleFile, AuthoringFile, ExtensionShard, CastMember, GameData, CoverageDriver, GrammaticalGender, Effect, GameDataFieldType, GameDataNodeKind, DocumentationClass, DocLine, HandoffFile, Suggestion, LineBeat, Comment } from '@patterkit/model';
|
|
2
2
|
import { NamedScopesFile, MergedScopes, ScopesIssue, ScopesCatalogueEntry, ScopesFile } from '@wildwinter/scoperegistry/scopes';
|
|
3
3
|
export { GAME_SCOPES_DIR, GAME_SCOPES_FILE, serialiseScopesFile } from '@wildwinter/scoperegistry/scopes';
|
|
4
4
|
import { ScopeDeclaration, ScopeRegistry } from '@wildwinter/scoperegistry';
|
|
5
5
|
import { ValidationIssue } from '@patterkit/core';
|
|
6
|
-
import { ConditionIssue, ExtensionIssue, ExportInput } from '@patterkit/compiler';
|
|
6
|
+
import { ConditionIssue, ExtensionIssue, ExtensionPools, ExportInput } from '@patterkit/compiler';
|
|
7
7
|
import { ChoiceOption, PlayError } from '@patterkit/runtime';
|
|
8
8
|
import { Dialect } from '@wildwinter/expr';
|
|
9
9
|
export { renameStageInExpression } from '@wildwinter/expr';
|
|
@@ -288,6 +288,9 @@ interface ValidateResult {
|
|
|
288
288
|
* refuses them; warnings (a missing manifest, an orphaned entry, a pin still carrying settings, a
|
|
289
289
|
* `.gitattributes` with no merge rule for the data) don't. */
|
|
290
290
|
extensions: ExtensionIssue[];
|
|
291
|
+
/** Each extension's pools (a pick's `{ "pool": name }` source), by extension and pool: the values the
|
|
292
|
+
* project's data holds, the commonest first, for an editor to suggest. */
|
|
293
|
+
extensionPools: ExtensionPools;
|
|
291
294
|
/** Only ERRORS count: a warning (another tool's scope, say) never fails a build. */
|
|
292
295
|
ok: boolean;
|
|
293
296
|
}
|
|
@@ -316,7 +319,10 @@ interface AudioRung {
|
|
|
316
319
|
interface AudioEntry {
|
|
317
320
|
status: string;
|
|
318
321
|
path: string;
|
|
322
|
+
/** The text hash the take was made from (its `PTRK` stamp), when it has one and the reader looked. */
|
|
319
323
|
textHash?: string;
|
|
324
|
+
/** Placeholder Speech's request hash (its `PTPS` stamp): set only on a generated take. */
|
|
325
|
+
generated?: string;
|
|
320
326
|
}
|
|
321
327
|
/** beatId -> resolved audio. Absent ids are implicitly "missing". */
|
|
322
328
|
type AudioSnapshot = Record<string, AudioEntry>;
|
|
@@ -348,11 +354,25 @@ declare function scanAudio(loaded: LoadedProject): AudioSnapshot | undefined;
|
|
|
348
354
|
* doesn't derive status from folders, so callers fall back to the manual recording map as Patterpad does. */
|
|
349
355
|
declare function scanAudioStatus(loaded: LoadedProject): Map<string, string> | undefined;
|
|
350
356
|
/** Serialise a snapshot into the sidecar manifest JSON, with each absolute path made root-relative
|
|
351
|
-
* (forward-slashed) against `<projectRoot>/<audioRoot>`.
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
357
|
+
* (forward-slashed) against `<projectRoot>/<audioRoot>`. `opts.lines` keeps only takes whose line is in the
|
|
358
|
+
* project (a deleted line's take is left out straight away); `opts.leaveOut` drops takes on those statuses
|
|
359
|
+
* (a shipping manifest without Placeholder Speech). */
|
|
360
|
+
declare function audioManifest(snapshot: AudioSnapshot, projectRoot: string, audioRoot: string, opts?: {
|
|
361
|
+
lines?: ReadonlySet<string>;
|
|
362
|
+
leaveOut?: ReadonlySet<string>;
|
|
363
|
+
}): string;
|
|
364
|
+
/** The ids a manifest may name: every beat in the project (spoken lines, text, option prompts), less lines
|
|
365
|
+
* marked cut. A take for anything else (a deleted line, or one pasted under a new id) is left out. */
|
|
366
|
+
declare function manifestLineIds(loaded: LoadedProject): Set<string>;
|
|
367
|
+
/** The manifest write for a snapshot: beside the audio, or at `opts.path` (a shipping manifest, written to a
|
|
368
|
+
* build folder so it never overwrites the development one). Undefined when the project does not use Audio
|
|
369
|
+
* Folders or no take has been found yet; a snapshot whose takes are all for deleted lines still writes, so
|
|
370
|
+
* an old manifest naming them doesn't linger. `opts.leaveOutPlaceholderSpeech` drops the Placeholder Speech
|
|
371
|
+
* status's takes. */
|
|
372
|
+
declare function audioManifestWrite(loaded: LoadedProject, snapshot: AudioSnapshot | undefined, opts?: {
|
|
373
|
+
path?: string;
|
|
374
|
+
leaveOutPlaceholderSpeech?: boolean;
|
|
375
|
+
}): PlannedWrite | undefined;
|
|
356
376
|
|
|
357
377
|
/** What a shipped build may not be built over. */
|
|
358
378
|
interface ExportOptions {
|
|
@@ -387,11 +407,14 @@ interface BuildPlan {
|
|
|
387
407
|
* (CLI review 2026-10, item 23). Patterpad's Build wrote bundle, scopes and audio manifest; its Auto
|
|
388
408
|
* Rebuild skipped the scopes file; `patter export` never wrote the manifest. `bundlePath` overrides
|
|
389
409
|
* where the bundle goes (the CLI's `-o`); `audio` is a snapshot the caller already holds (Patterpad's
|
|
390
|
-
* live index), else the folders are scanned now.
|
|
410
|
+
* live index), else the folders are scanned now. `audioManifestPath` writes the audio manifest elsewhere (a
|
|
411
|
+
* shipping manifest), and `leaveOutPlaceholderSpeech` leaves Placeholder Speech's takes out of it.
|
|
391
412
|
*/
|
|
392
413
|
declare function planBuild(loaded: LoadedProject, opts?: ExportOptions & {
|
|
393
414
|
bundlePath?: string;
|
|
394
415
|
audio?: AudioSnapshot;
|
|
416
|
+
audioManifestPath?: string;
|
|
417
|
+
leaveOutPlaceholderSpeech?: boolean;
|
|
395
418
|
}): BuildPlan;
|
|
396
419
|
|
|
397
420
|
/**
|
|
@@ -448,6 +471,154 @@ interface WebExport {
|
|
|
448
471
|
}
|
|
449
472
|
declare function runExportWeb(loaded: LoadedProject): WebExport;
|
|
450
473
|
|
|
474
|
+
/** The fixed output: low on purpose. */
|
|
475
|
+
declare const PLACEHOLDER_SAMPLE_RATE = 16000;
|
|
476
|
+
/** Where the key file is: the project's path (relative to the `.patter` folder, or `~/...`), else the
|
|
477
|
+
* `GOOGLE_APPLICATION_CREDENTIALS` environment variable, else gcloud's own sign-in (`gcloud auth
|
|
478
|
+
* application-default login`), where Google's libraries look last too. `source` says which, for the settings
|
|
479
|
+
* page. */
|
|
480
|
+
declare function resolveKeyFile(projectRoot: string, keyFile: string | undefined, env?: Record<string, string | undefined>): {
|
|
481
|
+
path?: string;
|
|
482
|
+
source: "project" | "environment" | "gcloud" | "none";
|
|
483
|
+
stored?: string;
|
|
484
|
+
};
|
|
485
|
+
/** Where `gcloud auth application-default login` keeps its sign-in: `CLOUDSDK_CONFIG` when set, else gcloud's
|
|
486
|
+
* config folder (`%APPDATA%\gcloud` on Windows, `~/.config/gcloud` elsewhere). */
|
|
487
|
+
declare function gcloudCredentialsPath(env?: Record<string, string | undefined>): string | undefined;
|
|
488
|
+
/** A stored key path made absolute: a leading `~/` is the home folder on every system (Node expands it nowhere),
|
|
489
|
+
* a relative path is against the project folder, forward slashes work everywhere. */
|
|
490
|
+
declare function expandKeyPath(projectRoot: string, stored: string): string;
|
|
491
|
+
/** How a chosen key file should be stored: `~/...` under the home folder, else relative to the project folder,
|
|
492
|
+
* always with forward slashes, so one stored path works on every system. */
|
|
493
|
+
declare function storedKeyPath(projectRoot: string, chosen: string): string;
|
|
494
|
+
/**
|
|
495
|
+
* A Google credential Placeholder Speech can use: a service account's JSON key, or gcloud's own sign-in for a
|
|
496
|
+
* person (`gcloud auth application-default login`, `"type": "authorized_user"`), which Google bills to its quota
|
|
497
|
+
* project. `projectId` is the project that's billed, `account` the email it acts as (empty when the file doesn't
|
|
498
|
+
* say).
|
|
499
|
+
*/
|
|
500
|
+
type GoogleKey = {
|
|
501
|
+
readonly kind: "service-account";
|
|
502
|
+
readonly projectId: string;
|
|
503
|
+
readonly account: string;
|
|
504
|
+
readonly privateKey: string;
|
|
505
|
+
} | {
|
|
506
|
+
readonly kind: "user";
|
|
507
|
+
readonly projectId: string;
|
|
508
|
+
readonly account: string;
|
|
509
|
+
readonly clientId: string;
|
|
510
|
+
readonly clientSecret: string;
|
|
511
|
+
readonly refreshToken: string;
|
|
512
|
+
};
|
|
513
|
+
/** Read a Google credential file. Throws, in plain words, when it isn't one Placeholder Speech can use. */
|
|
514
|
+
declare function readGoogleKey(path: string): GoogleKey;
|
|
515
|
+
/** What a request to Google carries: the token, and for a person's sign-in the project to bill. */
|
|
516
|
+
interface GoogleAuth {
|
|
517
|
+
readonly token: string;
|
|
518
|
+
readonly quotaProject?: string;
|
|
519
|
+
}
|
|
520
|
+
/** A short-lived OAuth token for the key: minted from a signed JWT for a service account, or from the refresh
|
|
521
|
+
* token for a person's gcloud sign-in. */
|
|
522
|
+
declare function mintToken(key: GoogleKey, fetchFn?: typeof fetch): Promise<{
|
|
523
|
+
token: string;
|
|
524
|
+
expiresAt: number;
|
|
525
|
+
}>;
|
|
526
|
+
/** Why a request failed. `auth` and `forbidden` stop a run; `rate` backs off; `offline` stops quietly. */
|
|
527
|
+
type SpeechErrorKind = "auth" | "forbidden" | "rate" | "offline" | "bad-request" | "server";
|
|
528
|
+
declare class SpeechError extends Error {
|
|
529
|
+
readonly kind: SpeechErrorKind;
|
|
530
|
+
constructor(kind: SpeechErrorKind, message: string);
|
|
531
|
+
}
|
|
532
|
+
/** A plain-words line for a stopped run (the settings page and the notice). */
|
|
533
|
+
declare function describeSpeechError(e: unknown): string;
|
|
534
|
+
interface SpeechRequest {
|
|
535
|
+
text: string;
|
|
536
|
+
voice: string;
|
|
537
|
+
languageCode: string;
|
|
538
|
+
}
|
|
539
|
+
/** The request hash stamped as PTPS: everything that shapes the audio. */
|
|
540
|
+
declare function requestHash(r: SpeechRequest): string;
|
|
541
|
+
/** Ask Google for one line's speech: the raw WAV it returns (LINEAR16 comes with a WAV header). */
|
|
542
|
+
declare function synthesize(auth: string | GoogleAuth, r: SpeechRequest, fetchFn?: typeof fetch): Promise<Uint8Array>;
|
|
543
|
+
/** Trim leading and trailing silence from a 16-bit mono WAV (as scratch takes are), and stamp it. */
|
|
544
|
+
declare function finishTake(wav: Uint8Array, stamps: {
|
|
545
|
+
text: string;
|
|
546
|
+
request: string;
|
|
547
|
+
}): Uint8Array;
|
|
548
|
+
/** The generated stamp of a file on disk (PTPS, or Patterstage's PSVT), read from its chunk headers only;
|
|
549
|
+
* null when it has none or can't be read. */
|
|
550
|
+
declare function readGeneratedStampFromFile(path: string): string | null;
|
|
551
|
+
/** One line to make. */
|
|
552
|
+
interface PlaceholderTask {
|
|
553
|
+
beatId: string;
|
|
554
|
+
character: string;
|
|
555
|
+
request: SpeechRequest;
|
|
556
|
+
/** The PTPS value it will carry. */
|
|
557
|
+
hash: string;
|
|
558
|
+
/** The PTRK value: the line's text hash. */
|
|
559
|
+
textHash: string;
|
|
560
|
+
/** Where it goes. */
|
|
561
|
+
path: string;
|
|
562
|
+
}
|
|
563
|
+
/** Why a line was left alone. */
|
|
564
|
+
type PlaceholderSkip = "unchanged" | "better" | "not-ours" | "no-voice" | "unspoken";
|
|
565
|
+
interface PlaceholderPlan {
|
|
566
|
+
/** The status and folder speech goes in. */
|
|
567
|
+
status: string;
|
|
568
|
+
folder: string;
|
|
569
|
+
accent: string | undefined;
|
|
570
|
+
tasks: PlaceholderTask[];
|
|
571
|
+
skipped: Partial<Record<PlaceholderSkip, number>>;
|
|
572
|
+
}
|
|
573
|
+
interface PlanOptions {
|
|
574
|
+
/** Only these lines (Patterpad's "edited this session"); absent, every spoken line. */
|
|
575
|
+
only?: Set<string>;
|
|
576
|
+
/** Only this scene, by id. */
|
|
577
|
+
scene?: string;
|
|
578
|
+
/** Remake these lines even when their stamp matches (Make again). */
|
|
579
|
+
force?: Set<string> | "all";
|
|
580
|
+
/** The current audio snapshot; read from disk when absent. */
|
|
581
|
+
snapshot?: AudioSnapshot;
|
|
582
|
+
}
|
|
583
|
+
/** The voice a character speaks with: their own, else the default from the name and gender. */
|
|
584
|
+
declare function voiceFor(cast: CastMember[] | undefined, character: string, accent: string | undefined): string | undefined;
|
|
585
|
+
/** The accent in use: the project's choice, else the one its main language implies. */
|
|
586
|
+
declare function placeholderAccentOf(p: ProjectFile): string | undefined;
|
|
587
|
+
/** Work out what to make: every spoken line (or the ones asked for) whose placeholder take is missing or no
|
|
588
|
+
* longer matches its request, skipping lines with a take on a higher status (even an out-of-date one: speech
|
|
589
|
+
* under it would never be heard), files in the folder that a person put there, and lines with no voice.
|
|
590
|
+
* Undefined when the project doesn't have Placeholder Speech on with Audio Folders. */
|
|
591
|
+
declare function planPlaceholderSpeech(loaded: LoadedProject, opts?: PlanOptions): PlaceholderPlan | undefined;
|
|
592
|
+
interface RunOptions {
|
|
593
|
+
/** A fresh token when asked (minted once, then reused until near expiry), with the project to bill for a
|
|
594
|
+
* person's sign-in (`tokenSource`). */
|
|
595
|
+
token(): Promise<string | GoogleAuth>;
|
|
596
|
+
/** Write a finished take; return false to say it was skipped (a file someone else has open). */
|
|
597
|
+
write(path: string, bytes: Uint8Array): Promise<boolean>;
|
|
598
|
+
onProgress?(done: number, total: number, task: PlaceholderTask): void;
|
|
599
|
+
signal?: AbortSignal;
|
|
600
|
+
concurrency?: number;
|
|
601
|
+
fetchFn?: typeof fetch;
|
|
602
|
+
}
|
|
603
|
+
interface RunResult {
|
|
604
|
+
made: string[];
|
|
605
|
+
failed: Array<{
|
|
606
|
+
beatId: string;
|
|
607
|
+
error: string;
|
|
608
|
+
}>;
|
|
609
|
+
skippedLocked: string[];
|
|
610
|
+
stopped?: {
|
|
611
|
+
kind: SpeechErrorKind;
|
|
612
|
+
message: string;
|
|
613
|
+
};
|
|
614
|
+
notTried: number;
|
|
615
|
+
}
|
|
616
|
+
/** Make the planned takes, two at a time. Bad keys, a refused project, and no network stop the run with one
|
|
617
|
+
* reason; a rate limit backs off and retries, and stops only if it persists; other failures are counted. */
|
|
618
|
+
declare function runPlaceholderSpeech(tasks: PlaceholderTask[], o: RunOptions): Promise<RunResult>;
|
|
619
|
+
/** A token source for a key: mints once, refreshes near expiry. A person's sign-in bills its quota project. */
|
|
620
|
+
declare function tokenSource(key: GoogleKey, fetchFn?: typeof fetch): () => Promise<GoogleAuth>;
|
|
621
|
+
|
|
451
622
|
interface PlayOptions {
|
|
452
623
|
/** Scene id to start at (defaults to the bundle's first scene). */
|
|
453
624
|
scene?: string;
|
|
@@ -707,6 +878,8 @@ declare function renderCoverageText(report: CoverageReport, sceneName?: (id: str
|
|
|
707
878
|
order?: CoverageOrder;
|
|
708
879
|
}): string[];
|
|
709
880
|
|
|
881
|
+
/** The SOURCE (default-locale) string table - the most-used `tableFor`. */
|
|
882
|
+
declare function sourceStrings(loaded: LoadedProject): Record<string, string>;
|
|
710
883
|
/** Resolve where a flow starts: an explicit override, else the project's authored `start`, else `{}`
|
|
711
884
|
* (the runtime's first-scene default). Shared by `runPlay` and `runCoverage`. A block named with no scene
|
|
712
885
|
* is looked for in every scene (see `findBlockAnywhere`), so it is never silently dropped for the
|
|
@@ -814,6 +987,9 @@ interface ReportData {
|
|
|
814
987
|
recordingTracked: boolean;
|
|
815
988
|
writingLadder: string[];
|
|
816
989
|
recordingLadder: string[];
|
|
990
|
+
/** With Placeholder Speech on: voiced lines still to record, counting those with only placeholder speech (and
|
|
991
|
+
* those flagged for re-record) with the ones with nothing. Undefined when Placeholder Speech is off. */
|
|
992
|
+
toRecord?: number;
|
|
817
993
|
scenes: SceneReport[];
|
|
818
994
|
characters: CharacterReport[];
|
|
819
995
|
locales: LocaleReport[];
|
|
@@ -1946,6 +2122,10 @@ declare function renameCastKeys(shards: ReadonlyArray<{
|
|
|
1946
2122
|
* their OLD name hashed to, in place, so the cue, the play window, and the readable script don't recolour
|
|
1947
2123
|
* them. A slot already stored stays. Run on the new cast, in the same save as the rename. */
|
|
1948
2124
|
declare function keepCastColours(cast: CastMember[], renames: ReadonlyMap<string, string>): void;
|
|
2125
|
+
/** A renamed member keeps their Placeholder Speech voice, as they keep their colour: one with no voice of
|
|
2126
|
+
* their own is given the default their OLD name hashed to, in place, so a rename doesn't remake their lines
|
|
2127
|
+
* in another voice. Only when the project has Placeholder Speech on (`accent` is its accent in use). */
|
|
2128
|
+
declare function keepPlaceholderVoices(cast: CastMember[], renames: ReadonlyMap<string, string>, accent: string | undefined): void;
|
|
1949
2129
|
/** Old name -> new name, with no-ops and blanks dropped. Null when nothing is renamed. */
|
|
1950
2130
|
declare function cleanCastRenames(renames: Record<string, string> | undefined): Map<string, string> | null;
|
|
1951
2131
|
/** Rewrite the speaker of `scene`'s lines (option prompts among them) through `renames`, in place; all at
|
|
@@ -2206,4 +2386,4 @@ declare const REFUSE_MISSING_SHARE = 0.25;
|
|
|
2206
2386
|
/** Plan an import. Reads the handoff record named in the document from the project. */
|
|
2207
2387
|
declare function planEditableImport(loaded: LoadedProject, returned: ReturnedDoc, opts: ImportOptions): ImportPlan;
|
|
2208
2388
|
|
|
2209
|
-
export { AUDIO_MANIFEST_FILE, AUDIO_MANIFEST_SCHEMA, AUTHORING_HANDLED, type ActionTextChange, type ApplyStats, type AudioEntry, type AudioRung, type AudioSnapshot, type BuildPlan, CONFLICT_SIDECAR, type CastKeyRewrite, type CharacterReport, type ClashPathSegment, type Conflict, type ConflictKind, type ConflictSidecar, type ContentError, type CoverageAsyncHooks, type CoverageBeat, type CoverageHooks, type CoverageOptions, type CoverageOrder, type CoverageReport, type DecisionPlan, type DecisionResult, type DocumentManifest, type EditableScript, type EditableScriptOptions, type ExportOptions, type ExtensionUpgrade, type FormatResult, GAME_SCOPES_OWNER, type GameDataStageRenameResult, type GameScopes, type GameScopesIssue, HANDOFF_DIR, type HandoffIssue, type HygieneIssue, type ImportOptions, type ImportPlan, type ImportProblem, type ImportReport, type InitOptions, type InitResult, type InitVcs, type LoadedManifest, type LoadedProject, type LocCatalog, type LocEntry, type LocImportLine, type LocImportReport, type LocMismatch, type LocaleReport, type MarkedShard, type MergeFileType, type MergeResult, type MergedShard, NotAPackError, type OpenSuggestion, PATTER_SCOPES_FILE, PATTER_SCOPES_OWNER, PATTER_VCS_FORMAT, PROJECT_HANDLED, type PinPlan, type PinnedName, type PlannedWrite, type PlayEvent, type PlayOptions, type PlayOutcome, type PlayResult, type ProvenanceCheck, RARE_REACH_PCT, REFUSE_MISSING_SHARE, type Random, type ReadBox, type ReadComment, type ReadEffect, type ReadItem, type ReadMarker, type ReadParagraph, type ReadText, type ReplaceField, type ReplaceHit, type ReplaceOptions, type ReplacePlan, type ReportData, type ReportTotals, type Resolution, type ResolutionDecision, ResolutionError, type ResolveEntry, type ReturnedDoc, SCRIPT_FONT_FILES, SCRIPT_FONT_PACKAGES, SHARD_EXTENSIONS, type SceneReport, type ScriptDoc, type ScriptElement, type ScriptFace, type SearchFocus, type ShardText, type StageRenameResult, type StageTarget, type SuggestionDecision, type TrackedChange, type UnpackMergeResult, type UnpackResult, type UnresolvedClash, UnsafeEntryError, UnsupportedMergeError, type ValidateResult, type VoiceLine, type VoiceScript, type VoicedCounts, type WebExport, type WrittenCounts, actionTextChanges, actionTextIds, applyLoc, applyResolutions, applySceneNavOrder, applySceneOrder, applySuggestionDecisions, applyWrites, audioFolderRungs, audioFoldersActive, audioManifest, audioManifestWrite, authoringPath, besideBundlePath, bundleOutputPath, castColours, catalogToJson, catalogToPo, catalogToXlsx, characterColour, clashPathSegments, classesForChannel, cleanCastRenames, compareLocTokens, compileLoaded, cueLabel, currentBundlePosture, defaultBundlePath, defaultGameScopesDir, describeLocExport, describeLocImport, detectMergeType, discoverGameScopes, drivableScopes, effectDescriber, exportBlockers, exportEditableScript, extractLoc, findMarkedShards, findProjectFile, formatMarker, gameScopeTokens, gameScopesCatalogue, gameScopesSnapshot, handoffPath, handoffWrite, hostScopeTokens, importLocale, isSettableClash, issueMarkerCodes, jsonToCatalog, keepCastColours, leastReachedFirst, listGameDataFields, listOpenSuggestions, listProjectTags, loadProject, loadProjectLanding, loadedExtensions, locLineHomes, manifestPath, markerLength, moveCastKeys, newHandoffId, parseHandoff, patterScopesFile, patterScopesStale, patterScopesWrite, pickAudio, planBuild, planEditableImport, planExtensionUpgrades, planPins, planReturnedWorld, planShareScopes, planWorldSave, poToCatalog, previewRegistry, projectManifests, projectStringSources, proposeCoverageDrivers, qualifierNamer, reachabilityIssues, readEditableDocx, readGameScopes, readHandoff, readHandoffs, readMarker, readProjectManifest, renameCastInScene, renameCastKeys, renameCastStrings, renameGameDataStage, renameStage, renderCoverageText, renderPlay, renderReportText, resolveDocumentation, resolveStart, runCoverage, runCoverageAsync, runExport, runExportFull, runExportHtml, runExportWeb, runFieldBrowse, runFormat, runInit, runMerge, runPack, runPlay, runPropertyUsage, runReplace, runReport, runReportXlsx, runResolve, runScriptDoc, runSearch, runStatusBrowse, runTagBrowse, runUnpack, runUnpackMerge, runValidate, runVoiceScript, scanAudio, scanAudioStatus, sceneFolderPaths, sceneIdForShard, sceneTextIds, scriptFontLicencePath, scriptFontLicences, scriptToDocx, scriptToPdf, serialiseHandoff, setCut, sidecarIssues, soundManifest, stageDialect, stageGateCount, staleParts, unresolvedClashes, unresolvedMarkIssues, useScriptFontFiles, valueAtClashPath, vcsConfigWrites, voiceScriptToXlsx, worldSettingsScopes, xlsxToCatalog };
|
|
2389
|
+
export { AUDIO_MANIFEST_FILE, AUDIO_MANIFEST_SCHEMA, AUTHORING_HANDLED, type ActionTextChange, type ApplyStats, type AudioEntry, type AudioRung, type AudioSnapshot, type BuildPlan, CONFLICT_SIDECAR, type CastKeyRewrite, type CharacterReport, type ClashPathSegment, type Conflict, type ConflictKind, type ConflictSidecar, type ContentError, type CoverageAsyncHooks, type CoverageBeat, type CoverageHooks, type CoverageOptions, type CoverageOrder, type CoverageReport, type DecisionPlan, type DecisionResult, type DocumentManifest, type EditableScript, type EditableScriptOptions, type ExportOptions, type ExtensionUpgrade, type FormatResult, GAME_SCOPES_OWNER, type GameDataStageRenameResult, type GameScopes, type GameScopesIssue, type GoogleAuth, type GoogleKey, HANDOFF_DIR, type HandoffIssue, type HygieneIssue, type ImportOptions, type ImportPlan, type ImportProblem, type ImportReport, type InitOptions, type InitResult, type InitVcs, type LoadedManifest, type LoadedProject, type LocCatalog, type LocEntry, type LocImportLine, type LocImportReport, type LocMismatch, type LocaleReport, type MarkedShard, type MergeFileType, type MergeResult, type MergedShard, NotAPackError, type OpenSuggestion, PATTER_SCOPES_FILE, PATTER_SCOPES_OWNER, PATTER_VCS_FORMAT, PLACEHOLDER_SAMPLE_RATE, PROJECT_HANDLED, type PinPlan, type PinnedName, type PlaceholderPlan, type PlaceholderSkip, type PlaceholderTask, type PlanOptions, type PlannedWrite, type PlayEvent, type PlayOptions, type PlayOutcome, type PlayResult, type ProvenanceCheck, RARE_REACH_PCT, REFUSE_MISSING_SHARE, type Random, type ReadBox, type ReadComment, type ReadEffect, type ReadItem, type ReadMarker, type ReadParagraph, type ReadText, type ReplaceField, type ReplaceHit, type ReplaceOptions, type ReplacePlan, type ReportData, type ReportTotals, type Resolution, type ResolutionDecision, ResolutionError, type ResolveEntry, type ReturnedDoc, type RunOptions, type RunResult, SCRIPT_FONT_FILES, SCRIPT_FONT_PACKAGES, SHARD_EXTENSIONS, type SceneReport, type ScriptDoc, type ScriptElement, type ScriptFace, type SearchFocus, type ShardText, SpeechError, type SpeechErrorKind, type SpeechRequest, type StageRenameResult, type StageTarget, type SuggestionDecision, type TrackedChange, type UnpackMergeResult, type UnpackResult, type UnresolvedClash, UnsafeEntryError, UnsupportedMergeError, type ValidateResult, type VoiceLine, type VoiceScript, type VoicedCounts, type WebExport, type WrittenCounts, actionTextChanges, actionTextIds, applyLoc, applyResolutions, applySceneNavOrder, applySceneOrder, applySuggestionDecisions, applyWrites, audioFolderRungs, audioFoldersActive, audioManifest, audioManifestWrite, authoringPath, besideBundlePath, bundleOutputPath, castColours, catalogToJson, catalogToPo, catalogToXlsx, characterColour, clashPathSegments, classesForChannel, cleanCastRenames, compareLocTokens, compileLoaded, cueLabel, currentBundlePosture, defaultBundlePath, defaultGameScopesDir, describeLocExport, describeLocImport, describeSpeechError, detectMergeType, discoverGameScopes, drivableScopes, effectDescriber, expandKeyPath, exportBlockers, exportEditableScript, extractLoc, findMarkedShards, findProjectFile, finishTake, formatMarker, gameScopeTokens, gameScopesCatalogue, gameScopesSnapshot, gcloudCredentialsPath, handoffPath, handoffWrite, hostScopeTokens, importLocale, isSettableClash, issueMarkerCodes, jsonToCatalog, keepCastColours, keepPlaceholderVoices, leastReachedFirst, listGameDataFields, listOpenSuggestions, listProjectTags, loadProject, loadProjectLanding, loadedExtensions, locLineHomes, manifestLineIds, manifestPath, markerLength, mintToken, moveCastKeys, newHandoffId, parseHandoff, patterScopesFile, patterScopesStale, patterScopesWrite, pickAudio, placeholderAccentOf, planBuild, planEditableImport, planExtensionUpgrades, planPins, planPlaceholderSpeech, planReturnedWorld, planShareScopes, planWorldSave, poToCatalog, previewRegistry, projectManifests, projectStringSources, proposeCoverageDrivers, qualifierNamer, reachabilityIssues, readEditableDocx, readGameScopes, readGeneratedStampFromFile, readGoogleKey, readHandoff, readHandoffs, readMarker, readProjectManifest, renameCastInScene, renameCastKeys, renameCastStrings, renameGameDataStage, renameStage, renderCoverageText, renderPlay, renderReportText, requestHash, resolveDocumentation, resolveKeyFile, resolveStart, runCoverage, runCoverageAsync, runExport, runExportFull, runExportHtml, runExportWeb, runFieldBrowse, runFormat, runInit, runMerge, runPack, runPlaceholderSpeech, runPlay, runPropertyUsage, runReplace, runReport, runReportXlsx, runResolve, runScriptDoc, runSearch, runStatusBrowse, runTagBrowse, runUnpack, runUnpackMerge, runValidate, runVoiceScript, scanAudio, scanAudioStatus, sceneFolderPaths, sceneIdForShard, sceneTextIds, scriptFontLicencePath, scriptFontLicences, scriptToDocx, scriptToPdf, serialiseHandoff, setCut, sidecarIssues, soundManifest, sourceStrings, stageDialect, stageGateCount, staleParts, storedKeyPath, synthesize, tokenSource, unresolvedClashes, unresolvedMarkIssues, useScriptFontFiles, valueAtClashPath, vcsConfigWrites, voiceFor, voiceScriptToXlsx, worldSettingsScopes, xlsxToCatalog };
|