@animus-ui/cli 0.1.32 → 0.1.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -109,7 +109,9 @@ files, and structural emptiness are fatal in every mode.
109
109
 
110
110
  `animus build` publishes to `--out-dir` (default `<root>/.animus/` —
111
111
  `.gitignore` it) at fixed paths: `styles.css`, `system-props.js`,
112
- `manifest.json`, and `commit.json` — written last, carrying a content hash
112
+ `manifest.json`, `font-preloads.json` (the font faces' preloads, for
113
+ `renderFontPreloads`; present only when a face preloads), and
114
+ `commit.json` — written last, carrying a content hash
113
115
  per payload, so one read verifies set completeness and freshness. Bytes are
114
116
  deterministic and identity-free; `lock.json` is a single-writer advisory
115
117
  lock that fails loud. The full contract, including the consistency-check
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,iBAAiB,EAKlB,MAAM,4BAA4B,CAAC;AAcpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAIlD,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAC/C,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAC1C,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,eAAO,MAAM,GAAG,aAAc,OAAO,EAAE,KAAG,IACL,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;qCACqC;AACrC,wBAAsB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB3E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAkC7E;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,iBAAiB,GACzB,cAAc,CA+DhB;AAqBD,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,iBAAiB,GAAG,IAAI,EAC1C,WAAW,EAAE,MAAM,IAAI,GACtB,MAAM,IAAI,CAOZ;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,iBAAiB,GACzB,IAAI,CAUN;AAED,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAgBD,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,iBAAiB,EACzB,KAAK,GAAE,UAAe,GACrB,OAAO,CAAC,WAAW,CAAC,CAwDtB"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,iBAAiB,EAMlB,MAAM,4BAA4B,CAAC;AAcpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAKlD,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAC/C,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAC1C,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,eAAO,MAAM,GAAG,aAAc,OAAO,EAAE,KAAG,IACL,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;qCACqC;AACrC,wBAAsB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB3E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAkC7E;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,iBAAiB,GACzB,cAAc,CAmEhB;AAqBD,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,iBAAiB,GAAG,IAAI,EAC1C,WAAW,EAAE,MAAM,IAAI,GACtB,MAAM,IAAI,CAOZ;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,iBAAiB,GACzB,IAAI,CAUN;AAED,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAgBD,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,iBAAiB,EACzB,KAAK,GAAE,UAAe,GACrB,OAAO,CAAC,WAAW,CAAC,CAwDtB"}
package/dist/index.cjs CHANGED
@@ -62,6 +62,7 @@ const MANIFEST_FILE = _animus_ui_extract_session.MANIFEST_ARTIFACT;
62
62
  const COMMIT_FILE = _animus_ui_extract_session.CLI_COMMIT_ARTIFACT;
63
63
  const LOCK_FILE = _animus_ui_extract_session.CLI_LOCK_ARTIFACT;
64
64
  const ASSETS_DIR = _animus_ui_extract_session.SESSION_ASSETS_DIR;
65
+ const FONT_PRELOADS_FILE = _animus_ui_extract_session.CLI_FONT_PRELOADS_ARTIFACT;
65
66
  function isFileExistsError(error) {
66
67
  return error instanceof Object && "code" in error && error.code === "EEXIST";
67
68
  }
@@ -101,7 +102,8 @@ const STAGING_PREFIX = ".staging-";
101
102
  const NAMED_PAYLOAD_FIELDS = [
102
103
  [STYLES_FILE, "stylesCss"],
103
104
  [SYSTEM_PROPS_FILE, "systemPropsJs"],
104
- [MANIFEST_FILE, "manifestJson"]
105
+ [MANIFEST_FILE, "manifestJson"],
106
+ [FONT_PRELOADS_FILE, "fontPreloadsJson"]
105
107
  ];
106
108
  const PUBLISHED_NAMES = [...NAMED_PAYLOAD_FIELDS.map(([name]) => name), COMMIT_FILE];
107
109
  /** Called only while the claim is held — deciding a tree is debris and
@@ -165,21 +167,21 @@ function acquireLock(outDir) {
165
167
  startedAt
166
168
  });
167
169
  }
168
- function publishedAssetNames(outDir) {
170
+ /** Every name the current commit record publishes. */
171
+ function publishedNames(outDir) {
169
172
  let record;
170
173
  try {
171
174
  record = (0, _animus_ui_extract_session.decodeCommitRecord)((0, fs.readFileSync)((0, path.join)(outDir, COMMIT_FILE), "utf-8"));
172
175
  } catch {
173
176
  return /* @__PURE__ */ new Set();
174
177
  }
175
- if (record === null) return /* @__PURE__ */ new Set();
176
- return new Set(Object.keys(record.payloads).filter((name) => name.startsWith(`${ASSETS_DIR}/`)).map((name) => name.slice(ASSETS_DIR.length + 1)));
178
+ return new Set(record === null ? [] : Object.keys(record.payloads));
177
179
  }
178
180
  /** Staged, verified, then renamed into place with the commit record LAST. A
179
181
  * set that cannot verify throws with the previous generation untouched. */
180
182
  function publishArtifacts(outDir, payloads) {
181
183
  (0, fs.mkdirSync)(outDir, { recursive: true });
182
- const previouslyPublishedAssets = publishedAssetNames(outDir);
184
+ const previouslyPublished = publishedNames(outDir);
183
185
  const staging = (0, path.join)(outDir, `${STAGING_PREFIX}${process.pid}`);
184
186
  (0, fs.rmSync)(staging, {
185
187
  recursive: true,
@@ -187,7 +189,11 @@ function publishArtifacts(outDir, payloads) {
187
189
  });
188
190
  (0, fs.mkdirSync)(staging, { recursive: true });
189
191
  try {
190
- const namedPayloads = NAMED_PAYLOAD_FIELDS.map(([name, field]) => [name, payloads[field]]);
192
+ const namedPayloads = [];
193
+ for (const [name, field] of NAMED_PAYLOAD_FIELDS) {
194
+ const text = payloads[field];
195
+ if (text !== void 0) namedPayloads.push([name, text]);
196
+ }
191
197
  const record = {
192
198
  schema: 1,
193
199
  payloads: {}
@@ -221,11 +227,11 @@ function publishArtifacts(outDir, payloads) {
221
227
  landed.push(`${ASSETS_DIR}/${name}`);
222
228
  }
223
229
  }
224
- const expectedNames = new Set(assets.map((asset) => asset.name));
225
- for (const name of previouslyPublishedAssets) {
226
- if (expectedNames.has(name)) continue;
230
+ const expectedNames = /* @__PURE__ */ new Set([...namedPayloads.map(([name]) => name), ...assets.map((asset) => `${ASSETS_DIR}/${asset.name}`)]);
231
+ for (const name of previouslyPublished) {
232
+ if (expectedNames.has(name) || name === COMMIT_FILE) continue;
227
233
  try {
228
- (0, fs.unlinkSync)((0, path.join)(publishedAssetsDir, name));
234
+ (0, fs.unlinkSync)((0, path.join)(outDir, name));
229
235
  } catch {}
230
236
  }
231
237
  (0, fs.renameSync)((0, path.join)(staging, COMMIT_FILE), (0, path.join)(outDir, COMMIT_FILE));
@@ -285,6 +291,7 @@ function publishSharedPayloads(config, session) {
285
291
  const manifestJson = (0, _animus_ui_extract_session.getManifestJson)(session.key) ?? "";
286
292
  const stylesCss = (0, _animus_ui_extract_session.getSharedCss)(session.key);
287
293
  const systemPropsJs = (0, _animus_ui_extract_session.getSharedSystemProps)(session.key);
294
+ const fontPreloads = (0, _animus_ui_extract_session.getSharedFontPreloads)(session.key);
288
295
  let componentCount = session.lastComponentCount ?? -1;
289
296
  if (componentCount < 0) try {
290
297
  const manifest = JSON.parse(manifestJson);
@@ -303,14 +310,15 @@ function publishSharedPayloads(config, session) {
303
310
  variableMapJson: session.variableMapJson
304
311
  });
305
312
  if (failures.length > 0) throw new ExtractionFailure(`Structural self-check failed:\n - ${failures.join("\n - ")}`);
306
- const assets = (0, _animus_ui_extract_session.collectSessionAssets)(session.sessionDir);
313
+ const payloads = {
314
+ stylesCss,
315
+ systemPropsJs,
316
+ manifestJson,
317
+ assets: (0, _animus_ui_extract_session.collectSessionAssets)(session.sessionDir)
318
+ };
319
+ if (fontPreloads.length > 0) payloads.fontPreloadsJson = JSON.stringify(fontPreloads);
307
320
  try {
308
- publishArtifacts(outDir, {
309
- stylesCss,
310
- systemPropsJs,
311
- manifestJson,
312
- assets
313
- });
321
+ publishArtifacts(outDir, payloads);
314
322
  } catch (error) {
315
323
  if (error instanceof PublishInconsistencyError) throw new EnvironmentFailure(error.message);
316
324
  throw error;
@@ -931,3 +939,9 @@ exports.EXIT_OK = EXIT_OK;
931
939
  exports.EXIT_USAGE = EXIT_USAGE;
932
940
  exports.exitCodeFor = exitCodeFor;
933
941
  exports.main = main;
942
+ Object.defineProperty(exports, "renderFontPreloads", {
943
+ enumerable: true,
944
+ get: function() {
945
+ return _animus_ui_extract_pipeline.renderFontPreloads;
946
+ }
947
+ });
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  /** The supported consumer surface is the `animus` binary; the programmatic
2
2
  * exports may change without semver ceremony. */
3
+ export { renderFontPreloads } from '@animus-ui/extract/pipeline';
4
+ export type { FontPreload } from '@animus-ui/extract/pipeline';
3
5
  export declare const EXIT_OK = 0;
4
6
  export declare const EXIT_EXTRACTION = 1;
5
7
  export declare const EXIT_USAGE = 2;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;kDACkD;AAiBlD,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC;qEACqE;AACrE,eAAO,MAAM,YAAY,IAAI,CAAC;AA4D9B;sDACsD;AACtD,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMzD;AAQD,wBAAsB,IAAI,CACxB,IAAI,GAAE,MAAM,EAA0B,GACrC,OAAO,CAAC,IAAI,CAAC,CA4Ff"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;kDACkD;AAiBlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC;qEACqE;AACrE,eAAO,MAAM,YAAY,IAAI,CAAC;AA4D9B;sDACsD;AACtD,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMzD;AAQD,wBAAsB,IAAI,CACxB,IAAI,GAAE,MAAM,EAA0B,GACrC,OAAO,CAAC,IAAI,CAAC,CA4Ff"}
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { AnimusConfigError, DIAGNOSTIC_LEVELS, KIT_DESCRIPTOR_FILE, REPLACEABLE_DEFAULT_EXCLUDE, STRUCTURAL_EXCLUDE, assertKnownOptionKeys, assertSupportedEngine, buildKitDescriptor, contentHash, createExcludeMatcher, kitPublicationFailures, outputExclusion, resolveMode, runStructuralSelfCheck } from "@animus-ui/extract/pipeline";
1
+ import { AnimusConfigError, DIAGNOSTIC_LEVELS, KIT_DESCRIPTOR_FILE, REPLACEABLE_DEFAULT_EXCLUDE, STRUCTURAL_EXCLUDE, assertKnownOptionKeys, assertSupportedEngine, buildKitDescriptor, contentHash, createExcludeMatcher, kitPublicationFailures, outputExclusion, renderFontPreloads, resolveMode, runStructuralSelfCheck } from "@animus-ui/extract/pipeline";
2
2
  import { parseArgs } from "node:util";
3
- import { ANIMUS_ARTIFACT_DIR, CLI_COMMIT_ARTIFACT, CLI_LOCK_ARTIFACT, ExtractionSession, MANIFEST_ARTIFACT, SESSION_ASSETS_DIR, STYLES_ARTIFACT, SYSTEM_PROPS_ARTIFACT, checkLockLiveness, collectSessionAssets, decodeCommitRecord, engineApi, getAnalyzedHashes, getManifestJson, getSharedCss, getSharedSystemProps, holdDirectoryClaim, isLockHolderAlive, lockRecordBytes, readCliLockRecord, startTurbopackWatcher, verifyCommitRecord } from "@animus-ui/extract/session";
3
+ import { ANIMUS_ARTIFACT_DIR, CLI_COMMIT_ARTIFACT, CLI_FONT_PRELOADS_ARTIFACT, CLI_LOCK_ARTIFACT, ExtractionSession, MANIFEST_ARTIFACT, SESSION_ASSETS_DIR, STYLES_ARTIFACT, SYSTEM_PROPS_ARTIFACT, checkLockLiveness, collectSessionAssets, decodeCommitRecord, engineApi, getAnalyzedHashes, getManifestJson, getSharedCss, getSharedFontPreloads, getSharedSystemProps, holdDirectoryClaim, isLockHolderAlive, lockRecordBytes, readCliLockRecord, startTurbopackWatcher, verifyCommitRecord } from "@animus-ui/extract/session";
4
4
  import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, unlinkSync, writeFileSync } from "fs";
5
5
  import { dirname, isAbsolute, join, relative, resolve } from "path";
6
6
  import { pathToFileURL } from "url";
@@ -61,6 +61,7 @@ const MANIFEST_FILE = MANIFEST_ARTIFACT;
61
61
  const COMMIT_FILE = CLI_COMMIT_ARTIFACT;
62
62
  const LOCK_FILE = CLI_LOCK_ARTIFACT;
63
63
  const ASSETS_DIR = SESSION_ASSETS_DIR;
64
+ const FONT_PRELOADS_FILE = CLI_FONT_PRELOADS_ARTIFACT;
64
65
  function isFileExistsError(error) {
65
66
  return error instanceof Object && "code" in error && error.code === "EEXIST";
66
67
  }
@@ -100,7 +101,8 @@ const STAGING_PREFIX = ".staging-";
100
101
  const NAMED_PAYLOAD_FIELDS = [
101
102
  [STYLES_FILE, "stylesCss"],
102
103
  [SYSTEM_PROPS_FILE, "systemPropsJs"],
103
- [MANIFEST_FILE, "manifestJson"]
104
+ [MANIFEST_FILE, "manifestJson"],
105
+ [FONT_PRELOADS_FILE, "fontPreloadsJson"]
104
106
  ];
105
107
  const PUBLISHED_NAMES = [...NAMED_PAYLOAD_FIELDS.map(([name]) => name), COMMIT_FILE];
106
108
  /** Called only while the claim is held — deciding a tree is debris and
@@ -164,21 +166,21 @@ function acquireLock(outDir) {
164
166
  startedAt
165
167
  });
166
168
  }
167
- function publishedAssetNames(outDir) {
169
+ /** Every name the current commit record publishes. */
170
+ function publishedNames(outDir) {
168
171
  let record;
169
172
  try {
170
173
  record = decodeCommitRecord(readFileSync(join(outDir, COMMIT_FILE), "utf-8"));
171
174
  } catch {
172
175
  return /* @__PURE__ */ new Set();
173
176
  }
174
- if (record === null) return /* @__PURE__ */ new Set();
175
- return new Set(Object.keys(record.payloads).filter((name) => name.startsWith(`${ASSETS_DIR}/`)).map((name) => name.slice(ASSETS_DIR.length + 1)));
177
+ return new Set(record === null ? [] : Object.keys(record.payloads));
176
178
  }
177
179
  /** Staged, verified, then renamed into place with the commit record LAST. A
178
180
  * set that cannot verify throws with the previous generation untouched. */
179
181
  function publishArtifacts(outDir, payloads) {
180
182
  mkdirSync(outDir, { recursive: true });
181
- const previouslyPublishedAssets = publishedAssetNames(outDir);
183
+ const previouslyPublished = publishedNames(outDir);
182
184
  const staging = join(outDir, `${STAGING_PREFIX}${process.pid}`);
183
185
  rmSync(staging, {
184
186
  recursive: true,
@@ -186,7 +188,11 @@ function publishArtifacts(outDir, payloads) {
186
188
  });
187
189
  mkdirSync(staging, { recursive: true });
188
190
  try {
189
- const namedPayloads = NAMED_PAYLOAD_FIELDS.map(([name, field]) => [name, payloads[field]]);
191
+ const namedPayloads = [];
192
+ for (const [name, field] of NAMED_PAYLOAD_FIELDS) {
193
+ const text = payloads[field];
194
+ if (text !== void 0) namedPayloads.push([name, text]);
195
+ }
190
196
  const record = {
191
197
  schema: 1,
192
198
  payloads: {}
@@ -220,11 +226,11 @@ function publishArtifacts(outDir, payloads) {
220
226
  landed.push(`${ASSETS_DIR}/${name}`);
221
227
  }
222
228
  }
223
- const expectedNames = new Set(assets.map((asset) => asset.name));
224
- for (const name of previouslyPublishedAssets) {
225
- if (expectedNames.has(name)) continue;
229
+ const expectedNames = /* @__PURE__ */ new Set([...namedPayloads.map(([name]) => name), ...assets.map((asset) => `${ASSETS_DIR}/${asset.name}`)]);
230
+ for (const name of previouslyPublished) {
231
+ if (expectedNames.has(name) || name === COMMIT_FILE) continue;
226
232
  try {
227
- unlinkSync(join(publishedAssetsDir, name));
233
+ unlinkSync(join(outDir, name));
228
234
  } catch {}
229
235
  }
230
236
  renameSync(join(staging, COMMIT_FILE), join(outDir, COMMIT_FILE));
@@ -284,6 +290,7 @@ function publishSharedPayloads(config, session) {
284
290
  const manifestJson = getManifestJson(session.key) ?? "";
285
291
  const stylesCss = getSharedCss(session.key);
286
292
  const systemPropsJs = getSharedSystemProps(session.key);
293
+ const fontPreloads = getSharedFontPreloads(session.key);
287
294
  let componentCount = session.lastComponentCount ?? -1;
288
295
  if (componentCount < 0) try {
289
296
  const manifest = JSON.parse(manifestJson);
@@ -302,14 +309,15 @@ function publishSharedPayloads(config, session) {
302
309
  variableMapJson: session.variableMapJson
303
310
  });
304
311
  if (failures.length > 0) throw new ExtractionFailure(`Structural self-check failed:\n - ${failures.join("\n - ")}`);
305
- const assets = collectSessionAssets(session.sessionDir);
312
+ const payloads = {
313
+ stylesCss,
314
+ systemPropsJs,
315
+ manifestJson,
316
+ assets: collectSessionAssets(session.sessionDir)
317
+ };
318
+ if (fontPreloads.length > 0) payloads.fontPreloadsJson = JSON.stringify(fontPreloads);
306
319
  try {
307
- publishArtifacts(outDir, {
308
- stylesCss,
309
- systemPropsJs,
310
- manifestJson,
311
- assets
312
- });
320
+ publishArtifacts(outDir, payloads);
313
321
  } catch (error) {
314
322
  if (error instanceof PublishInconsistencyError) throw new EnvironmentFailure(error.message);
315
323
  throw error;
@@ -923,4 +931,4 @@ async function main(argv = process.argv.slice(2)) {
923
931
  }
924
932
  }
925
933
  //#endregion
926
- export { EXIT_ENVIRONMENT, EXIT_EXTRACTION, EXIT_INSTALL, EXIT_OK, EXIT_USAGE, exitCodeFor, main };
934
+ export { EXIT_ENVIRONMENT, EXIT_EXTRACTION, EXIT_INSTALL, EXIT_OK, EXIT_USAGE, exitCodeFor, main, renderFontPreloads };
package/dist/writer.d.ts CHANGED
@@ -6,10 +6,14 @@ export declare const MANIFEST_FILE = "manifest.json";
6
6
  export declare const COMMIT_FILE = "commit.json";
7
7
  export declare const LOCK_FILE = "lock.json";
8
8
  export declare const ASSETS_DIR = "assets";
9
+ export declare const FONT_PRELOADS_FILE = "font-preloads.json";
9
10
  export interface ArtifactPayloads {
10
11
  stylesCss: string;
11
12
  systemPropsJs: string;
12
13
  manifestJson: string;
14
+ /** The faces' preloads, hrefs relative to styles.css, for
15
+ * `renderFontPreloads`; absent when no face preloads. */
16
+ fontPreloadsJson?: string;
13
17
  /** Published under `assets/<name>` beside styles.css — the stylesheet's
14
18
  * relative urls dangle without them. */
15
19
  assets?: readonly SessionAsset[];
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAe,MAAM,6BAA6B,CAAC;AA4B7E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI7E,eAAO,MAAM,WAAW,eAAkB,CAAC;AAC3C,eAAO,MAAM,iBAAiB,oBAAwB,CAAC;AACvD,eAAO,MAAM,aAAa,kBAAoB,CAAC;AAC/C,eAAO,MAAM,WAAW,gBAAsB,CAAC;AAC/C,eAAO,MAAM,SAAS,cAAoB,CAAC;AAC3C,eAAO,MAAM,UAAU,WAAqB,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB;6CACyC;IACzC,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CAClC;AAYD;8DAC8D;AAC9D,qBAAa,yBAA0B,SAAQ,KAAK;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;IAAvC,YAAqB,QAAQ,EAAE,MAAM,EAAE,EAKtC;CACF;AAED,qBAAa,0BAA0B,CAAC,MAAM,CAAE,SAAQ,KAAK;IAEzD,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM;IAJ1B,YACW,MAAM,EAAE,MAAM;IACvB,wDAAwD;IAC/C,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE,MAAM,EASzB;CACF;AAED;yEACyE;AACzE,qBAAa,uBAAwB,SAAQ,iBAAiB;IAC5D,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAmDD,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,CAoDtD;AAmBD;4EAC4E;AAC5E,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,GACzB,YAAY,CA8Ed"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAe,MAAM,6BAA6B,CAAC;AA6B7E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI7E,eAAO,MAAM,WAAW,eAAkB,CAAC;AAC3C,eAAO,MAAM,iBAAiB,oBAAwB,CAAC;AACvD,eAAO,MAAM,aAAa,kBAAoB,CAAC;AAC/C,eAAO,MAAM,WAAW,gBAAsB,CAAC;AAC/C,eAAO,MAAM,SAAS,cAAoB,CAAC;AAC3C,eAAO,MAAM,UAAU,WAAqB,CAAC;AAC7C,eAAO,MAAM,kBAAkB,uBAA6B,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB;8DAC0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;6CACyC;IACzC,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CAClC;AAYD;8DAC8D;AAC9D,qBAAa,yBAA0B,SAAQ,KAAK;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;IAAvC,YAAqB,QAAQ,EAAE,MAAM,EAAE,EAKtC;CACF;AAED,qBAAa,0BAA0B,CAAC,MAAM,CAAE,SAAQ,KAAK;IAEzD,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM;IAJ1B,YACW,MAAM,EAAE,MAAM;IACvB,wDAAwD;IAC/C,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE,MAAM,EASzB;CACF;AAED;yEACyE;AACzE,qBAAa,uBAAwB,SAAQ,iBAAiB;IAC5D,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAoDD,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,CAoDtD;AAeD;4EAC4E;AAC5E,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,GACzB,YAAY,CAqFd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@animus-ui/cli",
3
- "version": "0.1.32",
3
+ "version": "0.1.35",
4
4
  "description": "Standalone Animus extraction CLI — one-shot builds and artifact emission for any build system",
5
5
  "keywords": [
6
6
  "animus",
@@ -41,7 +41,7 @@
41
41
  "compile": "bun check"
42
42
  },
43
43
  "dependencies": {
44
- "@animus-ui/extract": "0.1.32"
44
+ "@animus-ui/extract": "0.1.35"
45
45
  },
46
46
  "engines": {
47
47
  "node": ">=22.12.0"