@byline/cli 4.0.0 → 4.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.
Files changed (26) hide show
  1. package/dist/manifest/deps.d.ts.map +1 -1
  2. package/dist/manifest/deps.js +6 -0
  3. package/dist/manifest/deps.js.map +1 -1
  4. package/dist/phases/scaffold-smoke.test.js +10 -3
  5. package/dist/phases/scaffold-smoke.test.js.map +1 -1
  6. package/dist/templates/byline/collection-types.contract.ts +1 -1
  7. package/dist/templates/byline/collections/index.ts +1 -1
  8. package/dist/templates/byline/generated/collection-types.ts +14 -6
  9. package/dist/templates/byline/server.config.ts +8 -1
  10. package/dist/templates/byline-examples/collection-types.contract.ts +1 -1
  11. package/dist/templates/byline-examples/collections/docs/hooks.ts +2 -2
  12. package/dist/templates/byline-examples/collections/index.ts +1 -1
  13. package/dist/templates/byline-examples/generated/collection-types.ts +138 -130
  14. package/dist/templates/byline-examples/scripts/import-docs.ts +3 -3
  15. package/dist/templates/byline-examples/scripts/regenerate-media-operation.ts +112 -0
  16. package/dist/templates/byline-examples/scripts/regenerate-media.ts +126 -90
  17. package/dist/templates/byline-examples/server.config.ts +10 -3
  18. package/dist/templates/ui-byline/blocks/richtext-block/index.tsx +1 -1
  19. package/dist/templates/ui-byline/types/content.ts +1 -1
  20. package/dist/ui-template-contract.test.js +27 -7
  21. package/dist/ui-template-contract.test.js.map +1 -1
  22. package/dist/workspace-root.test.js +5 -1
  23. package/dist/workspace-root.test.js.map +1 -1
  24. package/package.json +1 -1
  25. package/dist/templates/byline/clients.server.ts +0 -77
  26. package/dist/templates/byline-examples/clients.server.ts +0 -77
@@ -23,21 +23,28 @@
23
23
  * The script orchestrates the same two-step flow the admin UI uses
24
24
  * for an existing document — upload (createDocument: false) followed by
25
25
  * a document update — but as a single "one-shot" Client SDK pass per
26
- * media item. Variants and the original written under fresh paths;
27
- * the previous original + variant files are deleted once the document
28
- * has been re-pointed at the new value.
26
+ * media item. Variants and the original are written under fresh paths.
27
+ * Previous files are retained because immutable historical versions — or an
28
+ * older published version while the current version is draft — may still
29
+ * reference them. Storage reclamation requires a separate reference-aware
30
+ * garbage collector.
29
31
  *
30
32
  * Bypass-MIME images (SVG / GIF) are passed through untouched — Sharp
31
33
  * does not produce variants for them, so the only effect is a new
32
34
  * storagePath on a re-stored copy.
33
35
  *
34
- * Status preservation: `updateDocument` always stamps new versions with
35
- * the workflow's default status (`getDefaultStatus`, i.e. the first
36
- * declared status — `'draft'` for media). After the update we step the
37
- * new version forward through `changeStatus` until it lands in the same
38
- * slot the original occupied. Skipping this leaves the previously-
39
- * published version (with the old variant set) as what
40
- * `current_published_documents` returns to public readers.
36
+ * Status preservation: `updateDocument` stamps new versions with the
37
+ * workflow's default status (`'draft'` for media). The script wraps that
38
+ * update and a direct restoration of the captured status in one database
39
+ * transaction. This is a deliberate maintenance-only use of adapter
40
+ * commands: an archived item is never temporarily published, and callers
41
+ * cannot observe the intermediate draft. Run without concurrent editorial
42
+ * writes to the media collection.
43
+ *
44
+ * Safety: the generated variant names must exactly match the current schema
45
+ * before the document is changed. A failed upload/update is compensated by
46
+ * deleting the newly-written files, failures are collected per document, and
47
+ * the process exits non-zero after attempting the remaining items.
41
48
  *
42
49
  * Currently requires the local storage provider — pulls bytes back via
43
50
  * the provider's `uploadDir`. Variant generation itself is provider-
@@ -53,17 +60,21 @@ import fs from 'node:fs'
53
60
  import path from 'node:path'
54
61
 
55
62
  import { createSuperAdminContext } from '@byline/auth'
56
- import { type CollectionHandle, createBylineClient } from '@byline/client'
63
+ import { createBylineClient } from '@byline/client'
57
64
  import {
58
65
  type FieldUploadContext,
59
66
  getCollectionDefinition,
60
67
  getServerConfig,
61
- getWorkflowStatuses,
62
68
  } from '@byline/core'
63
69
  import { extractImageMeta, generateImageVariants, isBypassMimeType } from '@byline/core/image'
64
70
  import { uploadField as coreUploadField } from '@byline/core/services'
65
71
 
66
- import type { CollectionFieldsByPath, MediaFields } from '../generated/collection-types.js'
72
+ import type { MediaFields } from '@byline/generated-types'
73
+ import {
74
+ assertCompleteVariantSet,
75
+ replaceMediaVersionPreservingStatus,
76
+ storedFilePaths,
77
+ } from './regenerate-media-operation.js'
67
78
 
68
79
  const COLLECTION_PATH = 'media'
69
80
  const FIELD_NAME = 'image'
@@ -93,7 +104,7 @@ async function run(): Promise<void> {
93
104
  }
94
105
 
95
106
  const requestContext = createSuperAdminContext({ id: 'regenerate-media-script' })
96
- const client = createBylineClient<CollectionFieldsByPath>({ config, requestContext })
107
+ const client = createBylineClient({ config, requestContext })
97
108
 
98
109
  const { id: collectionId, version: collectionVersion } =
99
110
  await client.resolveCollectionRecord(COLLECTION_PATH)
@@ -103,8 +114,8 @@ async function run(): Promise<void> {
103
114
  // Snapshot the full set up-front. Each update bumps `updated_at` and
104
115
  // reorders the default sort, so paging through a moving window would
105
116
  // either skip or re-visit rows. Capture `status` so we can restore
106
- // each doc to its original workflow slot after the regenerated draft
107
- // is written (see `restoreStatus` below).
117
+ // each doc to its original workflow slot inside the replacement
118
+ // transaction.
108
119
  const allDocs: {
109
120
  id: string
110
121
  path: string
@@ -151,8 +162,21 @@ async function run(): Promise<void> {
151
162
  },
152
163
  }
153
164
 
165
+ const imageField = definition.fields.find((field) => field.name === FIELD_NAME)
166
+ if (imageField == null || (imageField.type !== 'image' && imageField.type !== 'file')) {
167
+ throw new Error(
168
+ `regenerate-media: '${COLLECTION_PATH}.${FIELD_NAME}' is not an image/file field.`
169
+ )
170
+ }
171
+ if (imageField.upload == null) {
172
+ throw new Error(
173
+ `regenerate-media: '${COLLECTION_PATH}.${FIELD_NAME}' has no upload configuration.`
174
+ )
175
+ }
176
+
154
177
  let processed = 0
155
178
  let skipped = 0
179
+ const failures: Error[] = []
156
180
 
157
181
  for (const doc of allDocs) {
158
182
  const image = doc.fields[FIELD_NAME]
@@ -162,102 +186,114 @@ async function run(): Promise<void> {
162
186
  continue
163
187
  }
164
188
 
189
+ const oldPaths = storedFilePaths(image)
165
190
  const sourceAbsolutePath = path.join(uploadDir, image.storagePath)
166
191
  let buffer: Buffer
167
192
  try {
168
193
  buffer = await fs.promises.readFile(sourceAbsolutePath)
169
194
  } catch (err) {
170
195
  console.error(
171
- ` ! skip ${doc.id} (${doc.path}) — failed to read original at ${sourceAbsolutePath}:`,
196
+ ` ! fail ${doc.id} (${doc.path}) — failed to read original at ${sourceAbsolutePath}:`,
172
197
  err
173
198
  )
174
- skipped += 1
199
+ failures.push(asDocumentError(doc.id, doc.path, err))
175
200
  continue
176
201
  }
177
202
 
178
- const uploadResult = await coreUploadField(
179
- { ...baseUploadCtx, requestContext },
180
- {
181
- buffer,
182
- originalFilename: image.originalFilename || image.filename,
183
- mimeType: image.mimeType,
184
- fileSize: buffer.byteLength,
185
- shouldCreateDocument: false,
186
- }
187
- )
188
-
189
- const nextFields = { ...doc.fields, [FIELD_NAME]: uploadResult.storedFile }
190
- await handle.update(doc.id, nextFields)
203
+ let freshPaths = new Set<string>()
204
+ try {
205
+ const uploadResult = await coreUploadField(
206
+ { ...baseUploadCtx, requestContext },
207
+ {
208
+ buffer,
209
+ originalFilename: image.originalFilename || image.filename,
210
+ mimeType: image.mimeType,
211
+ fileSize: buffer.byteLength,
212
+ shouldCreateDocument: false,
213
+ }
214
+ )
215
+ freshPaths = storedFilePaths(uploadResult.storedFile)
191
216
 
192
- // `updateDocument` always stamps the new version with the workflow's
193
- // default status (the first key — 'draft' for media), so without this
194
- // step the public read path keeps returning the prior published
195
- // version with the old variant set. Walk the new version forward to
196
- // the slot the doc originally occupied.
197
- await restoreStatus(handle, definition, doc.id, doc.status)
217
+ const expectedVariantNames = isBypassMimeType(image.mimeType)
218
+ ? []
219
+ : (imageField.upload.sizes ?? []).map((size) => size.name)
220
+ assertCompleteVariantSet(uploadResult.storedFile, expectedVariantNames)
198
221
 
199
- // Best-effort orphan cleanup. Failures are non-fatal — the new
200
- // value is already persisted, the doc is consistent, the unused
201
- // bytes are just dead weight on disk.
202
- const orphans: string[] = [
203
- image.storagePath,
204
- ...(image.variants ?? []).map((v) => v.storagePath).filter((p): p is string => Boolean(p)),
205
- ]
206
- for (const orphan of orphans) {
207
- try {
208
- await storage.delete(orphan)
209
- } catch (err) {
210
- console.warn(` ! failed to delete orphan ${orphan}:`, err)
222
+ const collisions = [...freshPaths].filter((storagePath) => oldPaths.has(storagePath))
223
+ if (collisions.length > 0) {
224
+ throw new Error(
225
+ `regenerate-media: upload hooks reused existing storage path(s): ${collisions.join(', ')}. ` +
226
+ 'Fresh paths are required for an atomic replacement.'
227
+ )
211
228
  }
212
- }
213
229
 
214
- const variantSummary =
215
- uploadResult.storedFile.variants?.map((v) => `${v.name}:${v.format ?? '?'}`).join(', ') ??
216
- '(none)'
217
- console.log(
218
- ` - ${doc.id} (${doc.path}) → ${uploadResult.storedFile.storagePath} [${variantSummary}]`
219
- )
220
- processed += 1
230
+ const nextFields = { ...doc.fields, [FIELD_NAME]: uploadResult.storedFile }
231
+ await replaceMediaVersionPreservingStatus({
232
+ db: config.db,
233
+ definition,
234
+ collectionId,
235
+ handle,
236
+ documentId: doc.id,
237
+ fields: nextFields,
238
+ targetStatus: doc.status,
239
+ })
240
+
241
+ const variantSummary =
242
+ uploadResult.storedFile.variants?.map((v) => `${v.name}:${v.format ?? '?'}`).join(', ') ??
243
+ '(none)'
244
+ console.log(
245
+ ` - ${doc.id} (${doc.path}) → ${uploadResult.storedFile.storagePath} [${variantSummary}]`
246
+ )
247
+ processed += 1
248
+ } catch (err) {
249
+ // The document transaction did not commit. Remove every fresh path we
250
+ // know about, but never delete a path that belonged to the old value — a
251
+ // deterministic beforeStore hook may already have overwritten it.
252
+ const rollbackPaths = new Set([...freshPaths].filter((storagePath) => !oldPaths.has(storagePath)))
253
+ const cleanupErrors = await deletePathsBestEffort(storage, rollbackPaths)
254
+ const failure = asDocumentError(doc.id, doc.path, err)
255
+ failures.push(
256
+ cleanupErrors.length === 0
257
+ ? failure
258
+ : new AggregateError(
259
+ [failure, ...cleanupErrors],
260
+ `regenerate-media: operation and rollback cleanup failed for '${doc.path}'`
261
+ )
262
+ )
263
+ console.error(` ! fail ${doc.id} (${doc.path}):`, err)
264
+ }
221
265
  }
222
266
 
223
267
  console.log(
224
- `regenerate-media: done. processed=${processed}, skipped=${skipped}, total=${allDocs.length}.`
268
+ `regenerate-media: done. processed=${processed}, skipped=${skipped}, ` +
269
+ `failed=${failures.length}, total=${allDocs.length}.`
225
270
  )
271
+ if (failures.length > 0) {
272
+ throw new AggregateError(failures, `regenerate-media: ${failures.length} document(s) failed`)
273
+ }
226
274
  }
227
275
 
228
- /**
229
- * Walk the workflow ladder forward from the new version's status (the
230
- * workflow's first slot, set by `updateDocument`) to `targetStatus`.
231
- *
232
- * `validateStatusTransition` allows ±1-step moves and reset-to-first, so
233
- * jumping straight from 'draft' to 'archived' is rejected — we step
234
- * through 'published' on the way. A target equal to the current status
235
- * is a no-op (transition validation accepts identical-status moves but
236
- * we skip the work).
237
- *
238
- * Throws if `targetStatus` is not declared on the collection's workflow,
239
- * since that signals a stale snapshot or a workflow definition that has
240
- * been edited since the docs were created.
241
- */
242
- async function restoreStatus(
243
- handle: CollectionHandle,
244
- definition: Parameters<typeof getWorkflowStatuses>[0],
245
- documentId: string,
246
- targetStatus: string
247
- ): Promise<void> {
248
- const statuses = getWorkflowStatuses(definition).map((s) => s.name)
249
- const targetIndex = statuses.indexOf(targetStatus)
250
- if (targetIndex === -1) {
251
- throw new Error(
252
- `restoreStatus: status '${targetStatus}' is not declared on collection ` +
253
- `'${definition.path}' (declared: ${statuses.join(', ')}).`
254
- )
255
- }
256
- // The new version is always at index 0 (workflow default). Anything at
257
- // index > 0 needs that many forward transitions.
258
- for (let i = 1; i <= targetIndex; i++) {
259
- await handle.changeStatus(documentId, statuses[i] as string)
276
+ async function deletePathsBestEffort(
277
+ storage: NonNullable<ReturnType<typeof getServerConfig>['storage']>,
278
+ storagePaths: Iterable<string>
279
+ ): Promise<Error[]> {
280
+ const errors: Error[] = []
281
+ for (const storagePath of storagePaths) {
282
+ try {
283
+ await storage.delete(storagePath)
284
+ } catch (err) {
285
+ const error = err instanceof Error ? err : new Error(String(err))
286
+ errors.push(error)
287
+ console.warn(` ! failed to delete ${storagePath}:`, error)
288
+ }
260
289
  }
290
+ return errors
291
+ }
292
+
293
+ function asDocumentError(documentId: string, documentPath: string, err: unknown): Error {
294
+ return new Error(`regenerate-media: '${documentPath}' (${documentId}) failed`, {
295
+ cause: err,
296
+ })
261
297
  }
262
298
 
263
299
  run()
@@ -28,7 +28,8 @@ import {
28
28
  import { migrate, postgresSearch } from '@byline/search-postgres'
29
29
  import { localStorageProvider } from '@byline/storage-local'
30
30
 
31
- import { getAdminBylineClient } from './clients.server.js'
31
+ import { getAdminBylineClient } from '@byline/client/server'
32
+ import { registerTanstackStartHostBridge } from '@byline/host-tanstack-start/integrations/host-bridge'
32
33
  import { collections } from './collections/index.js'
33
34
  import { serverHooks } from './collections/server-hooks.js'
34
35
  import { i18n } from './i18n.js'
@@ -135,6 +136,12 @@ async function buildBylineCore(): Promise<BylineCore<AdminStore>> {
135
136
  signingSecret,
136
137
  })
137
138
 
139
+ // Register the TanStack Start `HostRequestBridge` before any
140
+ // request-bound client getter (`@byline/client/server`) can run —
141
+ // structural at server boot rather than dependent on which host
142
+ // module happens to load first.
143
+ registerTanstackStartHostBridge()
144
+
138
145
  const core = await initBylineCore<AdminStore>({
139
146
  serverURL,
140
147
  i18n,
@@ -208,8 +215,8 @@ async function buildBylineCore(): Promise<BylineCore<AdminStore>> {
208
215
  // the admin host today — the populate phase inherits whichever
209
216
  // actor the request resolved. A future public-facing host would
210
217
  // register its own client whose `requestContext` factory resolves
211
- // an end-user actor instead. See `@byline/host-tanstack-start/
212
- // integrations/byline-client.ts` for how the admin client is built.
218
+ // an end-user actor instead. See `packages/client/src/server/
219
+ // clients.ts` (`@byline/client/server`) for how the admin client is built.
213
220
  //
214
221
  // Why a getter, not a value: `getAdminBylineClient()` reads the
215
222
  // server config singleton, which is only populated *after*
@@ -3,7 +3,7 @@
3
3
  import { Container } from '@byline/ui/react'
4
4
  import cx from 'classnames'
5
5
 
6
- import type { RichTextBlockData } from '~/generated/collection-types.js'
6
+ import type { RichTextBlockData } from '@byline/generated-types'
7
7
 
8
8
  import { LexicalRichText } from '@/ui/byline/components/richtext-lexical'
9
9
  import type { Locale } from '@/ui/byline/types/i18n'
@@ -1,6 +1,6 @@
1
1
  import type { WithPopulated } from '@byline/client'
2
2
 
3
- import type { DocsFields, MediaFields, PagesFields } from '~/generated/collection-types.js'
3
+ import type { DocsFields, MediaFields, PagesFields } from '@byline/generated-types'
4
4
 
5
5
  type ContentBlockOf<Fields extends { content?: unknown }> =
6
6
  NonNullable<Fields['content']> extends Array<infer Block> ? Block : never
@@ -5,6 +5,26 @@ import { describe, expect, it } from 'vitest';
5
5
  const templates = resolve(dirname(fileURLToPath(import.meta.url)), 'templates');
6
6
  const project = new Project({ skipAddingFilesFromTsConfig: true });
7
7
  const generated = project.addSourceFileAtPath(resolve(templates, 'byline-examples/generated/collection-types.ts'));
8
+ // Format 2 declares every type inside the `@byline/generated-types`
9
+ // declaration-merge block; alias lookups search the whole file.
10
+ function generatedTypeAliasOrThrow(name) {
11
+ const alias = generated
12
+ .getDescendantsOfKind(SyntaxKind.TypeAliasDeclaration)
13
+ .find((declaration) => declaration.getName() === name);
14
+ if (!alias)
15
+ throw new Error(`Expected to find type alias named '${name}'.`);
16
+ return alias;
17
+ }
18
+ // The plain-module body of the generated types, for in-memory typecheck
19
+ // fixtures: the augmentation block unwrapped to top-level declarations.
20
+ function generatedModuleBody() {
21
+ const match = generated
22
+ .getFullText()
23
+ .match(/declare module '@byline\/generated-types' \{\n([\s\S]*?)\n\}\n\ndeclare module/);
24
+ if (!match?.[1])
25
+ throw new Error('Expected a @byline/generated-types augmentation block.');
26
+ return match[1].replace(/^ {2}/gm, '');
27
+ }
8
28
  const contentTypes = project.addSourceFileAtPath(resolve(templates, 'ui-byline/types/content.ts'));
9
29
  const renderer = project.addSourceFileAtPath(resolve(templates, 'ui-byline/render-blocks.tsx'));
10
30
  describe('public block renderer templates', () => {
@@ -50,13 +70,14 @@ describe('public block renderer templates', () => {
50
70
  [P in keyof F]: P extends K ? PopulatedRelation<Target> : F[P]
51
71
  }
52
72
  `);
53
- typeProject.createSourceFile('/generated.ts', generated.getFullText().replace(/import type \{[\s\S]*?\} from '@byline\/core'/, `type JsonValue = unknown
54
- type RelatedDocumentValue = { documentId: string }
55
- type StoredFileValue = { key: string }`));
73
+ typeProject.createSourceFile('/generated.ts', `type JsonValue = unknown
74
+ type RelatedDocumentValue = { documentId: string }
75
+ type StoredFileValue = { key: string }
76
+ ${generatedModuleBody()}`);
56
77
  typeProject.createSourceFile('/content.ts', contentTypes
57
78
  .getFullText()
58
79
  .replace("from '@byline/client'", "from './client.js'")
59
- .replace("from '~/generated/collection-types.js'", "from './generated.js'"));
80
+ .replace("from '@byline/generated-types'", "from './generated.js'"));
60
81
  typeProject.createSourceFile('/contract.ts', `
61
82
  import type { WithPopulated } from './client.js'
62
83
  import type { DocsFields, MediaFields, PagesFields } from './generated.js'
@@ -102,8 +123,7 @@ describe('public block renderer templates', () => {
102
123
  });
103
124
  });
104
125
  function contentBlockNames(collection) {
105
- const content = generated
106
- .getTypeAliasOrThrow(collection)
126
+ const content = generatedTypeAliasOrThrow(collection)
107
127
  .getDescendantsOfKind(SyntaxKind.PropertySignature)
108
128
  .find((property) => property.getName() === 'content');
109
129
  const matches = content
@@ -113,7 +133,7 @@ function contentBlockNames(collection) {
113
133
  return [...(matches ?? [])].map((match) => match[1]).filter((name) => name !== undefined);
114
134
  }
115
135
  function blockDiscriminant(blockName) {
116
- const type = generated.getTypeAliasOrThrow(blockName);
136
+ const type = generatedTypeAliasOrThrow(blockName);
117
137
  const discriminant = type
118
138
  .getDescendantsOfKind(SyntaxKind.PropertySignature)
119
139
  .find((property) => property.getName() === '_type')
@@ -1 +1 @@
1
- {"version":3,"file":"ui-template-contract.test.js","sourceRoot":"","sources":["../src/ui-template-contract.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-template-contract.test.js","sourceRoot":"","sources":["../src/ui-template-contract.test.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync
2
2
  import { tmpdir } from 'node:os';
3
3
  import { join } from 'node:path';
4
4
  import { afterEach, describe, expect, it } from 'vitest';
5
+ import { CLI_PACKAGE_VERSION } from './lib/release-policy.js';
5
6
  import { resolveWorkspaceOwnership, validateWorkspacePackageManager, workspaceManagerConstraint, } from './lib/workspace-root.js';
6
7
  import { DEP_SPECS } from './manifest/deps.js';
7
8
  import { depsPhase } from './phases/deps.js';
@@ -160,7 +161,10 @@ describe('workspace root ownership', () => {
160
161
  const app = join(root, 'apps/webapp');
161
162
  mkdirSync(join(root, 'packages/core'), { recursive: true });
162
163
  writeFileSync(join(root, 'pnpm-workspace.yaml'), 'packages:\n - apps/*\n - packages/*\nallowBuilds:\n "@google/genai": true\n esbuild: true\n protobufjs: true\n sharp: true\n');
163
- writeFileSync(join(root, 'packages/core/package.json'), '{"name":"@byline/core","version":"3.21.4"}\n');
164
+ // The workspace-linked package's version must satisfy the CLI's derived
165
+ // release policy (`>=<cli version> <next major>`), which Changesets bumps
166
+ // every release — track it rather than pinning a literal that goes stale.
167
+ writeFileSync(join(root, 'packages/core/package.json'), `{"name":"@byline/core","version":"${CLI_PACKAGE_VERSION}"}\n`);
164
168
  const dependencies = compatibleDependencies();
165
169
  dependencies['@byline/core'] = 'workspace:*';
166
170
  writeFileSync(join(app, 'package.json'), `${JSON.stringify({ dependencies })}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-root.test.js","sourceRoot":"","sources":["../src/workspace-root.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACjG,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,0BAA0B,GAC3B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEvD,MAAM,KAAK,GAAa,EAAE,CAAA;AAC1B,SAAS,CAAC,GAAG,EAAE;IACb,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAAE,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AACpF,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,2FAA2F,EAAE,KAAK,IAAI,EAAE;QACzG,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrC,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAA;QAC7C,OAAO,YAAY,CAAC,UAAU,CAAA;QAC9B,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EACzB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACvF,CAAA;QACD,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE,yBAAyB,CAAC,CAAA;QAC3E,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,gBAAgB,CAAC,CAAA;QACzD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/D,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,EAAE,mCAAmC,CAAC,CAAA;QAE1F,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,GAAG,CAAC,EAAE,GAAG,MAAM,CAAA;QACf,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACrC,GAAG,EAAE,IAAI;YACT,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,mBAAmB,CAAC;SAChE,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3F,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5F,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAA;IACrF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAA;QAC7D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChB,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAA;QAC7C,OAAO,YAAY,CAAC,UAAU,CAAA;QAC9B,aAAa,CACX,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAC1B,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC,IAAI,CACnE,CAAA;QACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1D,GAAG,CAAC,EAAE,GAAG,MAAM,CAAA;QACf,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvD,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACtB,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,mBAAmB,CAAC;YACxC,GAAG,EAAE,IAAI;SACV,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,KAAK,EAAE,mBAAmB,CAAC;QAC5B,CAAC,KAAK,EAAE,UAAU,CAAC;KACX,CAAC,CAAC,sCAAsC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;QACxE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC9B,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;QACvC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,IAAI,CAAC;QACN,MAAM;QACN,KAAK;QACL,KAAK;KACG,CAAC,CAAC,yEAAyE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACvG,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAA;QACrE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChB,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,yBAAyB,CAAC,CAAA;QACpE,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;QACrC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;QACvC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;QACxC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAA;QACf,MAAM,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,IAAI,CAAC;QACN,MAAM;QACN,QAAQ;KACA,CAAC,CAAC,8EAA8E,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC7G,MAAM,IAAI,GAAG,wBAAwB,EAAE,CAAA;QACvC,MAAM,GAAG,GAAG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAClE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,CAAC,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACjG,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,IAAI,CAAC;QACN,MAAM;QACN,QAAQ;KACA,CAAC,CAAC,+EAA+E,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC9G,MAAM,IAAI,GAAG,wBAAwB,EAAE,CAAA;QACvC,MAAM,GAAG,GAAG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAClE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAA4B,CAAA;QACzF,aAAa,CACX,WAAW,EACX,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,sBAAsB,EAAE,EAAE,CAAC,IAAI,CAC/E,CAAA;QACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAA;QACxB,MAAM,CAAC,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5F,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAC5D,CAAA;QACD,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QACvD,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAC1D,MAAM,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7D,MAAM,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,IAAI,CAAC;QACN,KAAK;QACL,MAAM;QACN,KAAK;KACG,CAAC,CAAC,kFAAkF,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChH,MAAM,IAAI,GAAG,wBAAwB,EAAE,CAAA;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrC,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAA;QAC7C,OAAO,YAAY,CAAC,UAAU,CAAA;QAC9B,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EACzB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC,IAAI,CACjE,CAAA;QACD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;QAC5B,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAA;QACzB,MAAM,CAAC,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5F,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC3F,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,IAAI,CAAC;QACN,MAAM;QACN,KAAK;QACL,KAAK;KACG,CAAC,CAAC,qCAAqC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACnE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrC,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAA;QAC7C,OAAO,YAAY,CAAC,UAAU,CAAA;QAC9B,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EACzB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC,IAAI,CACjE,CAAA;QACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,GAAG,CAAC,EAAE,GAAG,OAAO,CAAA;QAChB,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvD,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;YAC5C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAA;QACpF,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;YAC5C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAC3B,MAAM,CAAC,eAAe,CAAC,CAAC,aAAa,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC,CAC9E,CAAA;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;YAC3C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;QACtD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,aAAa,CACX,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,EACjC,oIAAoI,CACrI,CAAA;QACD,aAAa,CACX,IAAI,CAAC,IAAI,EAAE,4BAA4B,CAAC,EACxC,8CAA8C,CAC/C,CAAA;QACD,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAA;QAC7C,YAAY,CAAC,cAAc,CAAC,GAAG,aAAa,CAAA;QAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,CAAA;QACjF,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,GAAG,CAAC,EAAE,GAAG,MAAM,CAAA;QACf,MAAM,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7B,aAAa,CACX,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,EACjC,+CAA+C,CAChD,CAAA;QACD,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,gBAAgB,CAAC,CAAA;QACzD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/D,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,EAAE,mCAAmC,CAAC,CAAA;QAC1F,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;QAC9C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1C,MAAM,sBAAsB,GAAG,sBAAsB,EAAE,CAAA;QACvD,OAAO,sBAAsB,CAAC,UAAU,CAAA;QACxC,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAChC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC,IAAI,CAC1F,CAAA;QAED,MAAM,GAAG,GAAG,mBAAmB,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QAChE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1C,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5F,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAA;QAEvF,GAAG,CAAC,EAAE,GAAG,MAAM,CAAA;QACf,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CACxF,KAAK,CACN,CAAA;QACD,MAAM,CACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CACpF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACZ,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QAC5E,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACxD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,MAAM,EAAE,KAAK,CAAC;QACf,CAAC,KAAK,EAAE,MAAM,CAAC;QACf,CAAC,MAAM,EAAE,KAAK,CAAC;QACf,CAAC,KAAK,EAAE,MAAM,CAAC;KACP,CAAC,CAAC,0CAA0C,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE;QAC3F,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrC,IAAI,gBAAgB,KAAK,MAAM,EAAE,CAAC;YAChC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE,yBAAyB,CAAC,CAAA;QAC7E,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,8BAA8B,CAAC,CAAA;QACxE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;QAC5B,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;QACpC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAA;QAC1B,MAAM,UAAU,GAAG,+BAA+B,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACjE,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YACzB,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,yBAAyB,gBAAgB,cAAc,gBAAgB,EAAE;SAClF,CAAC,CAAA;QACF,MAAM,CAAC,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACjG,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,8BAA8B,CAAC,CAAA;QACxE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;QAC5B,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;QACpC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAA;QACf,MAAM,CAAC,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5F,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,8BAA8B,CAAC,CAAA;QACxE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;QAC5B,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;QACpC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QACrC,MAAM,CAAC,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACjG,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC,CAAA;QACtE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChB,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,yBAAyB,CAAC,CAAA;QACpE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QAC7B,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;QACrC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAA;QACvB,MAAM,CAAC,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5F,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAA;QAC1C,MAAM,cAAc,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAA;QACvD,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAA;QACxD,MAAM,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9E,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAChD,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAA;IACjG,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrC,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EACzB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,sBAAsB,EAAE,EAAE,CAAC,IAAI,CAClE,CAAA;QACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,GAAG,CAAC,EAAE,GAAG,MAAM,CAAA;QACf,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC/B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAA;QAClF,MAAM,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAChE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,IAAI,CAAC;QACN,KAAK;QACL,MAAM;KACE,CAAC,CAAC,6DAA6D,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3F,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE,yBAAyB,CAAC,CAAA;QAC3E,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAA;QAC7C,OAAO,YAAY,CAAC,UAAU,CAAA;QAC9B,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,CAAA;QACjF,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,GAAG,CAAC,EAAE,GAAG,OAAO,CAAA;QAChB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC/B,MAAM,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,SAAS,QAAQ,CAAC,cAAsB;IACtC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,aAAa,CACX,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAC1B,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,cAAc,QAAQ,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAC5G,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,wBAAwB;IAC/B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAA;IACrE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,aAAa,CACX,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAC1B,0DAA0D,CAC3D,CAAA;IACD,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,EAAE,8BAA8B,CAAC,CAAA;IACrF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO,MAAM,CAAC,WAAW,CACvB,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CACpF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"workspace-root.test.js","sourceRoot":"","sources":["../src/workspace-root.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@byline/cli",
3
3
  "private": false,
4
4
  "license": "MPL-2.0",
5
- "version": "4.0.0",
5
+ "version": "4.1.0",
6
6
  "engines": {
7
7
  "node": ">=20.9.0"
8
8
  },
@@ -1,77 +0,0 @@
1
- /**
2
- * This Source Code is subject to the terms of the Mozilla Public
3
- * License, v. 2.0. If a copy of the MPL was not distributed with this
4
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
- *
6
- * Copyright (c) Infonomic Company Limited
7
- */
8
-
9
- /**
10
- * Typed, server-only access to this application's Byline clients.
11
- *
12
- * ```text
13
- * generated/collection-types.ts
14
- * `CollectionFieldsByPath`
15
- * |
16
- * v
17
- * collections/index.ts --------------------.
18
- * `BylineCollections` |
19
- * v
20
- * @byline/host-tanstack-start ------> clients.server.ts
21
- * runtime client getters |
22
- * v
23
- * typed `get*BylineClient()` getters
24
- * ```
25
- *
26
- * Why this boundary exists:
27
- *
28
- * The TanStack host owns the runtime admin, public, system, and viewer client
29
- * singletons. It intentionally knows nothing about an application's collection
30
- * schemas, so its getters cannot provide application-specific collection paths
31
- * and field shapes. The generated `CollectionFieldsByPath` registry is exported
32
- * as `BylineCollections` by `collections/index.ts`; this module joins the host
33
- * getters and app registry once instead of repeating a type assertion at every
34
- * server call site.
35
- *
36
- * Typical server usage:
37
- *
38
- * ```ts
39
- * const publicClient = getPublicBylineClient() // anonymous published reads
40
- * const viewerClient = getViewerBylineClient() // public or admin-preview reads
41
- * const adminClient = getAdminBylineClient() // current admin request authority
42
- * const systemClient = getSystemBylineClient() // trusted hooks and maintenance
43
- * ```
44
- *
45
- * Calls to `client.collection('<collection-path>')` are therefore checked
46
- * against this application's generated registry and return that collection's
47
- * canonical generated field shape. `collection-types.contract.ts` separately
48
- * proves that those generated shapes match the runtime schemas exactly.
49
- *
50
- * The `.server.ts` suffix is intentional. Import these getters only from server
51
- * routes, loaders, actions, scripts, or lifecycle-hook modules; browser code
52
- * must not cross this boundary.
53
- *
54
- * This module does not create client singletons, generate collection types, or
55
- * configure the host. It only applies the app-specific client type and
56
- * re-exports the host-owned getters (plus the viewer preview-state helper).
57
- */
58
- import type { BylineClient } from '@byline/client'
59
- import {
60
- getAdminBylineClient as getHostAdminBylineClient,
61
- getSystemBylineClient as getHostSystemBylineClient,
62
- } from '@byline/host-tanstack-start/integrations/byline-client'
63
- import { getPublicBylineClient as getHostPublicBylineClient } from '@byline/host-tanstack-start/integrations/byline-public-client'
64
- import {
65
- getViewerBylineClient as getHostViewerBylineClient,
66
- isPreviewActive,
67
- } from '@byline/host-tanstack-start/integrations/byline-viewer-client'
68
-
69
- import type { BylineCollections } from './collections/index.js'
70
-
71
- type AppBylineClient = BylineClient<BylineCollections>
72
-
73
- export const getAdminBylineClient = getHostAdminBylineClient as () => AppBylineClient
74
- export const getPublicBylineClient = getHostPublicBylineClient as () => AppBylineClient
75
- export const getSystemBylineClient = getHostSystemBylineClient as () => AppBylineClient
76
- export const getViewerBylineClient = getHostViewerBylineClient as () => AppBylineClient
77
- export { isPreviewActive }