@auspex-ai/next 0.0.0-stage → 1.4.2

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.
@@ -0,0 +1,54 @@
1
+ import { NextConfig } from "next";
2
+ //#region src/config.d.ts
3
+ export interface WithAuspexOptions {
4
+ /** false でアイコン名を書き込まない(手書きの属性は消す。コンポーネント名を本番の HTML に出したくない場合)。既定 true。elementNames とは独立 */
5
+ iconNames?: boolean;
6
+ /**
7
+ * false で要素の参照(data-auspex-ref)を書き込まない(手書きの属性は消す)。既定 true。iconNames とは独立
8
+ * 名前が無いと、対象解決(PdM の言い回しから決定点を選ぶ)の手がかりが減る(Design Doc #43・#50)。
9
+ * ビルド鍵(環境変数 AUSPEX_BUILD_KEY)と登録の受け口 host が無いときも、参照は書かれない
10
+ */
11
+ elementNames?: boolean;
12
+ /**
13
+ * 'cli': ビルドの終わりの登録を hook ではなく CLI(`auspex-register-names`。`next build` の後に流す)で行う。
14
+ * runAfterProductionCompile が使えない Next で参照を書きたいときに指定する(Design Doc #50 の 3 節)
15
+ */
16
+ registerNames?: 'cli';
17
+ /** 登録の受け口(受信口と同じ origin。https)。無ければ環境変数 NEXT_PUBLIC_AUSPEX_HOST。環境変数 AUSPEX_INTERNAL_HOST(セルフホストの internal の面)があれば名前の登録だけそちらへ送る */
18
+ host?: string;
19
+ }
20
+ /** ビルド済みのローダー(dist/ に config と並べて置く) */
21
+ export declare const ICON_NAME_LOADER: string;
22
+ export declare const SVG_NAME_LOADER: string;
23
+ type LoaderItem = string | {
24
+ loader: string;
25
+ options?: unknown;
26
+ };
27
+ type RuleItem = {
28
+ loaders: LoaderItem[];
29
+ [k: string]: unknown;
30
+ };
31
+ /** 顧客のプロジェクトの next のバージョン(取れなければ null) */
32
+ export declare function nextVersion(): string | null;
33
+ /** 顧客のプロジェクトの next のメジャーバージョン(取れなければ 0) */
34
+ export declare function nextMajor(): number;
35
+ /** 3 節の表(本番のビルドの行)。`turbopack` は Turbopack で動いているか */
36
+ export type HookRow = 'usable' | 'turbopack-15' | 'unusable' | 'unknown';
37
+ /** runAfterProductionCompile が使えるか(Design Doc #50 の 3 節の表。線は暫定)。数値で比べる */
38
+ export declare function hookRow(version: string | null, turbopack: boolean): HookRow;
39
+ /**
40
+ * 新しく作る JS/TS のルール。Next 16 以降は `condition: { not: 'foreign' }` で node_modules を
41
+ * ローダーに通さない(ファイルごとに Node のローダーを呼ぶコストを避ける)。それより前の Next の
42
+ * Turbopack には condition が無いので付けず、ローダーの中で node_modules を素通しする
43
+ */
44
+ export declare function iconNameRule(major: number, loader?: LoaderItem): RuleItem;
45
+ type ConfigFunction = (phase: string, ctx: {
46
+ defaultConfig: NextConfig;
47
+ }) => NextConfig | Promise<NextConfig>;
48
+ /**
49
+ * next.config を包む。戻り値の型は入力に合わせる(オブジェクトならオブジェクト、関数なら同じ引数で先に呼んで
50
+ * await してから包む async の関数)。できるだけ最も外側に置く(webpack・turbopack のキーを落とすプラグインが外側にあるとローダーが失われる)
51
+ */
52
+ export declare function withAuspex(config?: NextConfig, options?: WithAuspexOptions): NextConfig;
53
+ export declare function withAuspex(config: ConfigFunction, options?: WithAuspexOptions): ConfigFunction;
54
+ //#endregion
@@ -0,0 +1,54 @@
1
+ import { NextConfig } from "next";
2
+ //#region src/config.d.ts
3
+ export interface WithAuspexOptions {
4
+ /** false でアイコン名を書き込まない(手書きの属性は消す。コンポーネント名を本番の HTML に出したくない場合)。既定 true。elementNames とは独立 */
5
+ iconNames?: boolean;
6
+ /**
7
+ * false で要素の参照(data-auspex-ref)を書き込まない(手書きの属性は消す)。既定 true。iconNames とは独立
8
+ * 名前が無いと、対象解決(PdM の言い回しから決定点を選ぶ)の手がかりが減る(Design Doc #43・#50)。
9
+ * ビルド鍵(環境変数 AUSPEX_BUILD_KEY)と登録の受け口 host が無いときも、参照は書かれない
10
+ */
11
+ elementNames?: boolean;
12
+ /**
13
+ * 'cli': ビルドの終わりの登録を hook ではなく CLI(`auspex-register-names`。`next build` の後に流す)で行う。
14
+ * runAfterProductionCompile が使えない Next で参照を書きたいときに指定する(Design Doc #50 の 3 節)
15
+ */
16
+ registerNames?: 'cli';
17
+ /** 登録の受け口(受信口と同じ origin。https)。無ければ環境変数 NEXT_PUBLIC_AUSPEX_HOST。環境変数 AUSPEX_INTERNAL_HOST(セルフホストの internal の面)があれば名前の登録だけそちらへ送る */
18
+ host?: string;
19
+ }
20
+ /** ビルド済みのローダー(dist/ に config と並べて置く) */
21
+ export declare const ICON_NAME_LOADER: string;
22
+ export declare const SVG_NAME_LOADER: string;
23
+ type LoaderItem = string | {
24
+ loader: string;
25
+ options?: unknown;
26
+ };
27
+ type RuleItem = {
28
+ loaders: LoaderItem[];
29
+ [k: string]: unknown;
30
+ };
31
+ /** 顧客のプロジェクトの next のバージョン(取れなければ null) */
32
+ export declare function nextVersion(): string | null;
33
+ /** 顧客のプロジェクトの next のメジャーバージョン(取れなければ 0) */
34
+ export declare function nextMajor(): number;
35
+ /** 3 節の表(本番のビルドの行)。`turbopack` は Turbopack で動いているか */
36
+ export type HookRow = 'usable' | 'turbopack-15' | 'unusable' | 'unknown';
37
+ /** runAfterProductionCompile が使えるか(Design Doc #50 の 3 節の表。線は暫定)。数値で比べる */
38
+ export declare function hookRow(version: string | null, turbopack: boolean): HookRow;
39
+ /**
40
+ * 新しく作る JS/TS のルール。Next 16 以降は `condition: { not: 'foreign' }` で node_modules を
41
+ * ローダーに通さない(ファイルごとに Node のローダーを呼ぶコストを避ける)。それより前の Next の
42
+ * Turbopack には condition が無いので付けず、ローダーの中で node_modules を素通しする
43
+ */
44
+ export declare function iconNameRule(major: number, loader?: LoaderItem): RuleItem;
45
+ type ConfigFunction = (phase: string, ctx: {
46
+ defaultConfig: NextConfig;
47
+ }) => NextConfig | Promise<NextConfig>;
48
+ /**
49
+ * next.config を包む。戻り値の型は入力に合わせる(オブジェクトならオブジェクト、関数なら同じ引数で先に呼んで
50
+ * await してから包む async の関数)。できるだけ最も外側に置く(webpack・turbopack のキーを落とすプラグインが外側にあるとローダーが失われる)
51
+ */
52
+ export declare function withAuspex(config?: NextConfig, options?: WithAuspexOptions): NextConfig;
53
+ export declare function withAuspex(config: ConfigFunction, options?: WithAuspexOptions): ConfigFunction;
54
+ //#endregion