@forgeax/engine-pack 0.1.20 → 0.1.23
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 +159 -46
- package/dist/__tests__/inventory-schema.test.d.ts +2 -0
- package/dist/__tests__/inventory-schema.test.d.ts.map +1 -0
- package/dist/__tests__/parameterized-pack-authoring-gateway.unit.test.d.ts +2 -0
- package/dist/__tests__/parameterized-pack-authoring-gateway.unit.test.d.ts.map +1 -0
- package/dist/__tests__/parameterized-pack-scanner.unit.test.d.ts +2 -0
- package/dist/__tests__/parameterized-pack-scanner.unit.test.d.ts.map +1 -0
- package/dist/__tests__/parameterized-pack.unit.test.d.ts +2 -0
- package/dist/__tests__/parameterized-pack.unit.test.d.ts.map +1 -0
- package/dist/__tests__/scanner-blacklist.test.d.ts +2 -0
- package/dist/__tests__/scanner-blacklist.test.d.ts.map +1 -0
- package/dist/build.d.ts +9 -4
- package/dist/build.d.ts.map +1 -1
- package/dist/build.mjs +3317 -804
- package/dist/build.mjs.map +1 -1
- package/dist/builtin.mjs +37 -4
- package/dist/builtin.mjs.map +1 -1
- package/dist/catalog-builder.d.ts.map +1 -1
- package/dist/cli-asset.d.ts.map +1 -1
- package/dist/cli-asset.mjs +1368 -850
- package/dist/cli-asset.mjs.map +1 -1
- package/dist/deriveAssetName.d.ts +11 -7
- package/dist/deriveAssetName.d.ts.map +1 -1
- package/dist/evidence/material-cook.d.ts.map +1 -1
- package/dist/evidence/source-inventory.d.ts.map +1 -1
- package/dist/guid.d.ts +15 -0
- package/dist/guid.d.ts.map +1 -1
- package/dist/guid.mjs +53 -5
- package/dist/guid.mjs.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +1255 -561
- package/dist/index.mjs.map +1 -1
- package/dist/inventory/binding.d.ts +6 -0
- package/dist/inventory/binding.d.ts.map +1 -0
- package/dist/inventory/declaration.d.ts +24 -0
- package/dist/inventory/declaration.d.ts.map +1 -0
- package/dist/inventory/index.d.ts +3 -0
- package/dist/inventory/index.d.ts.map +1 -0
- package/dist/inventory/sync.d.ts +5 -0
- package/dist/inventory/sync.d.ts.map +1 -0
- package/dist/material-cook.mjs +3 -1
- package/dist/material-cook.mjs.map +1 -1
- package/dist/name.mjs +4 -7
- package/dist/name.mjs.map +1 -1
- package/dist/package-finalizer.d.ts +2 -20
- package/dist/package-finalizer.d.ts.map +1 -1
- package/dist/parameterized-pack-node.d.ts +26 -0
- package/dist/parameterized-pack-node.d.ts.map +1 -0
- package/dist/parameterized-pack-node.mjs +11093 -0
- package/dist/parameterized-pack-node.mjs.map +1 -0
- package/dist/parameterized-pack.d.ts +233 -0
- package/dist/parameterized-pack.d.ts.map +1 -0
- package/dist/resolve-asset-source.d.ts +1 -3
- package/dist/resolve-asset-source.d.ts.map +1 -1
- package/dist/resolve-asset-source.mjs +6 -81
- package/dist/resolve-asset-source.mjs.map +1 -1
- package/dist/runtime.mjs +77 -7
- package/dist/runtime.mjs.map +1 -1
- package/dist/scanner.d.ts +19 -8
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.mjs +1169 -690
- package/dist/scanner.mjs.map +1 -1
- package/dist/schema-compiled.d.ts.map +1 -1
- package/dist/schema.mjs +79 -7
- package/dist/schema.mjs.map +1 -1
- package/dist/scriptable-pack-node.d.ts +8 -32
- package/dist/scriptable-pack-node.d.ts.map +1 -1
- package/dist/scriptable-pack-node.mjs +576 -1021
- package/dist/scriptable-pack-node.mjs.map +1 -1
- package/dist/scriptable-pack-worker.mjs +29 -11
- package/dist/scriptable-pack-worker.mjs.map +1 -1
- package/dist/scriptable-pack.d.ts +19 -532
- package/dist/scriptable-pack.d.ts.map +1 -1
- package/dist/scriptable-pack.mjs +1042 -527
- package/dist/scriptable-pack.mjs.map +1 -1
- package/package.json +7 -7
- package/schema/meta.schema.json +1 -1
- package/schema/pack.schema.json +76 -6
- package/src/__tests__/guid-collision.unit.test.ts +18 -9
- package/src/__tests__/inventory-schema.test.ts +109 -0
- package/src/__tests__/pack.unit.test.ts +1 -238
- package/src/__tests__/package-finalizer.contract.test.ts +55 -0
- package/src/__tests__/parameterized-pack-authoring-gateway.unit.test.ts +249 -0
- package/src/__tests__/parameterized-pack-scanner.unit.test.ts +123 -0
- package/src/__tests__/parameterized-pack.unit.test.ts +266 -0
- package/src/__tests__/resolve-asset-source.test.ts +15 -98
- package/src/__tests__/scanner-blacklist.test.ts +55 -0
- package/src/__tests__/scanner-inventory.contract.test.ts +14 -15
- package/src/__tests__/scanner-inventory.test.ts +24 -12
- package/src/__tests__/scriptable-pack-cli.integration.test.ts +4 -9
- package/src/__tests__/topology.unit.test.ts +23 -0
- package/src/build.ts +28 -18
- package/src/catalog-builder.ts +61 -34
- package/src/cli-asset.ts +70 -85
- package/src/deriveAssetName.ts +14 -13
- package/src/evidence/material-cook.ts +3 -1
- package/src/evidence/source-inventory.ts +34 -21
- package/src/guid.ts +65 -4
- package/src/index.ts +12 -11
- package/src/inventory/binding.ts +25 -0
- package/src/inventory/declaration.ts +168 -0
- package/src/inventory/index.ts +18 -0
- package/src/inventory/sync.ts +22 -0
- package/src/package-finalizer.ts +2 -42
- package/src/parameterized-pack-node.ts +1968 -0
- package/src/parameterized-pack.ts +1493 -0
- package/src/resolve-asset-source.ts +4 -76
- package/src/scanner.ts +241 -59
- package/src/schema-compiled.ts +2 -0
- package/src/scriptable-pack-node.ts +111 -722
- package/src/scriptable-pack-worker.ts +48 -16
- package/src/scriptable-pack.ts +27 -939
- package/dist/.tsbuildinfo +0 -1
- package/dist/__tests__/load-asset-config.test.d.ts +0 -2
- package/dist/__tests__/load-asset-config.test.d.ts.map +0 -1
- package/dist/__tests__/scriptable-pack.test-d.d.ts +0 -2
- package/dist/__tests__/scriptable-pack.test-d.d.ts.map +0 -1
- package/dist/__tests__/scriptable-pack.unit.test.d.ts +0 -2
- package/dist/__tests__/scriptable-pack.unit.test.d.ts.map +0 -1
- package/dist/config.d.ts +0 -6
- package/dist/config.d.ts.map +0 -1
- package/dist/config.mjs +0 -29
- package/dist/config.mjs.map +0 -1
- package/src/__tests__/load-asset-config.test.ts +0 -121
- package/src/__tests__/scriptable-pack.test-d.ts +0 -131
- package/src/__tests__/scriptable-pack.unit.test.ts +0 -789
- package/src/config.ts +0 -36
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import type { Asset, AssetGuid, Result } from '@forgeax/engine-types';
|
|
2
|
+
import { PackageId } from './guid.js';
|
|
3
|
+
import type { ScriptablePackSceneComponentInput } from './scriptable-pack.js';
|
|
4
|
+
/** Values deliberately stay finite and serialisable at the authoring boundary. */
|
|
5
|
+
export type PackParameterScalar = boolean | number | string;
|
|
6
|
+
export type PackParameterValue = PackParameterScalar | readonly number[] | AssetGuid;
|
|
7
|
+
export type PackParameterType = 'bool' | 'u32' | 'i32' | 'f32' | 'f64' | 'string' | 'enum' | 'vec2' | 'vec3' | 'vec4' | 'color' | 'asset-guid';
|
|
8
|
+
export declare const PACK_PARAMETER_TYPES: readonly ["bool", "u32", "i32", "f32", "f64", "string", "enum", "vec2", "vec3", "vec4", "color", "asset-guid"];
|
|
9
|
+
export interface PackParameterDefinition<TName extends string = string, TType extends PackParameterType = PackParameterType, TDefault extends PackParameterValue = PackParameterValue> {
|
|
10
|
+
readonly name: TName;
|
|
11
|
+
readonly type: TType;
|
|
12
|
+
readonly default: TDefault;
|
|
13
|
+
readonly minimum?: number;
|
|
14
|
+
readonly maximum?: number;
|
|
15
|
+
/** Closed choices are required for `enum` and forbidden for other types. */
|
|
16
|
+
readonly values?: readonly PackParameterScalar[];
|
|
17
|
+
/** Optional authoring-only kind constraint for asset GUID parameters. */
|
|
18
|
+
readonly kind?: Asset['kind'];
|
|
19
|
+
}
|
|
20
|
+
export type PackParameterValueFor<T extends PackParameterType> = T extends 'bool' ? boolean : T extends 'u32' | 'i32' | 'f32' | 'f64' ? number : T extends 'string' | 'enum' ? string : T extends 'vec2' ? readonly [number, number] : T extends 'vec3' ? readonly [number, number, number] : T extends 'vec4' | 'color' ? readonly [number, number, number, number] : T extends 'asset-guid' ? AssetGuid : never;
|
|
21
|
+
export type PackParameterValues<TParameters extends readonly PackParameterDefinition[]> = Readonly<{
|
|
22
|
+
[TParameter in TParameters[number] as TParameter['name']]: TParameter extends {
|
|
23
|
+
readonly type: infer TType extends PackParameterType;
|
|
24
|
+
} ? TType extends 'enum' ? TParameter extends {
|
|
25
|
+
readonly values: readonly (infer TValue)[];
|
|
26
|
+
} ? Extract<TValue, string> : string : PackParameterValueFor<TType> : never;
|
|
27
|
+
}>;
|
|
28
|
+
export interface PackAuthoringError {
|
|
29
|
+
readonly code: PackAuthoringErrorCode;
|
|
30
|
+
readonly expected: string;
|
|
31
|
+
readonly hint: string;
|
|
32
|
+
readonly actual?: string;
|
|
33
|
+
readonly detail: Readonly<Record<string, unknown>>;
|
|
34
|
+
}
|
|
35
|
+
export type PackAuthoringErrorCode = 'pack-package-id-invalid' | 'pack-package-id-collision' | 'pack-source-key-invalid' | 'pack-guid-collision' | 'pack-parent-not-found' | 'pack-parent-cycle' | 'pack-parent-not-parameterized' | 'pack-parameter-invalid' | 'pack-content-dependency-stalled' | 'pack-output-reference-missing' | 'pack-output-reference-conflict' | 'pack-output-not-materialized' | 'asset-not-ready' | 'pack-source-revision-conflict' | 'pack-source-path-invalid' | 'pack-source-not-found' | 'pack-source-mutation-unsupported' | 'pack-source-write-failed';
|
|
36
|
+
export interface PackBuildReadContext {
|
|
37
|
+
readByGuid<TAsset extends Asset = Asset>(guid: AssetGuid): Promise<Result<TAsset, unknown>>;
|
|
38
|
+
}
|
|
39
|
+
export interface PackBuildContextWithoutParameters extends PackBuildReadContext {
|
|
40
|
+
readonly packageId: PackageId;
|
|
41
|
+
}
|
|
42
|
+
export interface PackBuildContextWithParameters<TParameters extends readonly PackParameterDefinition[]> extends PackBuildReadContext {
|
|
43
|
+
readonly packageId: PackageId;
|
|
44
|
+
readonly values: PackParameterValues<TParameters>;
|
|
45
|
+
}
|
|
46
|
+
export type PackBuildContext<TParameters extends readonly PackParameterDefinition[] | undefined> = TParameters extends readonly PackParameterDefinition[] ? PackBuildContextWithParameters<TParameters> : PackBuildContextWithoutParameters;
|
|
47
|
+
export type PackOutputMap = Readonly<Record<string, Asset>>;
|
|
48
|
+
export type PackBuildResult<TError = unknown> = Result<PackOutputMap, TError> | Promise<Result<PackOutputMap, TError>>;
|
|
49
|
+
interface PackDefinitionBase {
|
|
50
|
+
readonly schemaVersion: '2.0.0';
|
|
51
|
+
readonly packageId: PackageId;
|
|
52
|
+
readonly name?: string;
|
|
53
|
+
/** Neutral component schemas used only to externalize SceneAsset refs at cook time. */
|
|
54
|
+
readonly sceneComponents?: readonly ScriptablePackSceneComponentInput[];
|
|
55
|
+
}
|
|
56
|
+
export type ParameterizedPackDefinition<TParameters extends readonly PackParameterDefinition[] | undefined = undefined> = PackDefinitionBase & (TParameters extends readonly PackParameterDefinition[] ? {
|
|
57
|
+
readonly parameters: TParameters;
|
|
58
|
+
readonly build: (context: PackBuildContextWithParameters<TParameters>) => PackBuildResult;
|
|
59
|
+
} : {
|
|
60
|
+
readonly build: (context: PackBuildContextWithoutParameters) => PackBuildResult;
|
|
61
|
+
});
|
|
62
|
+
export type PackDefinition = ParameterizedPackDefinition<undefined> | ParameterizedPackDefinition<readonly [PackParameterDefinition, ...PackParameterDefinition[]]>;
|
|
63
|
+
export type PackParameterList = readonly [PackParameterDefinition, ...PackParameterDefinition[]];
|
|
64
|
+
type NonEmptyParameters = PackParameterList;
|
|
65
|
+
type NoParameterPackInput = PackDefinitionBase & {
|
|
66
|
+
readonly parameters?: never;
|
|
67
|
+
readonly build: (context: PackBuildContextWithoutParameters) => PackBuildResult;
|
|
68
|
+
};
|
|
69
|
+
type ParameterizedPackInput<TParameters extends NonEmptyParameters> = PackDefinitionBase & {
|
|
70
|
+
readonly parameters: TParameters;
|
|
71
|
+
readonly build: (context: PackBuildContextWithParameters<TParameters>) => PackBuildResult;
|
|
72
|
+
};
|
|
73
|
+
/** Convert a UUID literal into the distinct Pack-level identity brand. */
|
|
74
|
+
export declare function definePackageId(value: string | PackageId): PackageId;
|
|
75
|
+
/**
|
|
76
|
+
* Define the only executable authoring shape. A missing `parameters` property
|
|
77
|
+
* is meaningful: its build context has no `values` member.
|
|
78
|
+
*/
|
|
79
|
+
export declare function definePack(definition: NoParameterPackInput): ParameterizedPackDefinition<undefined>;
|
|
80
|
+
export declare function definePack<const TParameters extends NonEmptyParameters>(definition: ParameterizedPackInput<TParameters>): ParameterizedPackDefinition<TParameters>;
|
|
81
|
+
/** Union used only at orchestration boundaries that accept either source form. */
|
|
82
|
+
export type AnyParameterizedPackDefinition = ParameterizedPackDefinition<PackParameterList> | ParameterizedPackDefinition<undefined>;
|
|
83
|
+
export interface ParameterizedPackSourceMeta {
|
|
84
|
+
readonly schemaVersion: '2.0.0';
|
|
85
|
+
readonly kind: 'parameterized-pack-source';
|
|
86
|
+
readonly packageId: string;
|
|
87
|
+
readonly source: string;
|
|
88
|
+
readonly parameters?: readonly Readonly<Record<string, unknown>>[];
|
|
89
|
+
}
|
|
90
|
+
/** Ephemeral scan evidence; it intentionally contains no output GUID table. */
|
|
91
|
+
export declare function projectParameterizedPackMeta(definition: AnyParameterizedPackDefinition, sourcePath: string): ParameterizedPackSourceMeta;
|
|
92
|
+
/** Runtime validation used by the isolated module loader and source scanner. */
|
|
93
|
+
export declare function validatePackDefinition(value: unknown, sourcePath?: string): Result<ParameterizedPackDefinition<NonEmptyParameters> | ParameterizedPackDefinition<undefined>, PackAuthoringError>;
|
|
94
|
+
export declare function isParameterizedPack(value: ParameterizedPackDefinition | unknown): value is ParameterizedPackDefinition<NonEmptyParameters>;
|
|
95
|
+
/** Resolve defaults plus a sparse instance override with shallow replacement. */
|
|
96
|
+
export declare function resolvePackParameterValues(definition: ParameterizedPackDefinition<NonEmptyParameters>, overrides?: unknown, inheritedValues?: Readonly<Record<string, PackParameterValue>>): Result<PackParameterValues<NonEmptyParameters>, PackAuthoringError>;
|
|
97
|
+
export interface DirectPackJsonAsset {
|
|
98
|
+
readonly kind: string;
|
|
99
|
+
readonly payload: Readonly<Record<string, unknown>>;
|
|
100
|
+
readonly refs: readonly string[];
|
|
101
|
+
readonly name?: string;
|
|
102
|
+
readonly artifacts?: Readonly<Record<string, Readonly<Record<string, unknown>>>>;
|
|
103
|
+
}
|
|
104
|
+
export interface DirectPackJson {
|
|
105
|
+
readonly schemaVersion: '3.0.0';
|
|
106
|
+
readonly packageId: string;
|
|
107
|
+
readonly assets: Readonly<Record<string, DirectPackJsonAsset>>;
|
|
108
|
+
}
|
|
109
|
+
export interface PackInstanceJson {
|
|
110
|
+
readonly schemaVersion: '3.0.0';
|
|
111
|
+
readonly packageId: string;
|
|
112
|
+
readonly parent: string;
|
|
113
|
+
readonly values: Readonly<Record<string, unknown>>;
|
|
114
|
+
}
|
|
115
|
+
export interface ParsedDirectPackJson {
|
|
116
|
+
readonly format: 'direct';
|
|
117
|
+
readonly schemaVersion: '3.0.0';
|
|
118
|
+
readonly packageId: PackageId;
|
|
119
|
+
readonly assets: Readonly<Record<string, DirectPackJsonAsset>>;
|
|
120
|
+
}
|
|
121
|
+
export interface ParsedPackInstanceJson {
|
|
122
|
+
readonly format: 'instance';
|
|
123
|
+
readonly schemaVersion: '3.0.0';
|
|
124
|
+
readonly packageId: PackageId;
|
|
125
|
+
readonly parent: PackageId;
|
|
126
|
+
readonly values: Readonly<Record<string, unknown>>;
|
|
127
|
+
}
|
|
128
|
+
export type ParsedPackJson = ParsedDirectPackJson | ParsedPackInstanceJson;
|
|
129
|
+
/** Parse the two mutually exclusive v3 pack.json branches. */
|
|
130
|
+
export declare function parseParameterizedPackJson(value: unknown): Result<ParsedPackJson, PackAuthoringError>;
|
|
131
|
+
export declare const parsePackJson: typeof parseParameterizedPackJson;
|
|
132
|
+
export declare const parsePackAuthoringJson: typeof parseParameterizedPackJson;
|
|
133
|
+
export interface DirectPackAssetProjection extends DirectPackJsonAsset {
|
|
134
|
+
readonly guid: string;
|
|
135
|
+
readonly sourceKey: string;
|
|
136
|
+
}
|
|
137
|
+
export interface DirectPackProjection {
|
|
138
|
+
readonly packageId: string;
|
|
139
|
+
readonly assets: readonly DirectPackAssetProjection[];
|
|
140
|
+
}
|
|
141
|
+
/** Add the computed GUIDs needed by the ordinary Pack v2 publication path. */
|
|
142
|
+
export declare function projectDirectPackJson(value: ParsedDirectPackJson | DirectPackJson): Result<DirectPackProjection, PackAuthoringError>;
|
|
143
|
+
export interface PackParameterRootSubject {
|
|
144
|
+
readonly format: 'source';
|
|
145
|
+
readonly packageId: PackageId;
|
|
146
|
+
readonly parameters: readonly PackParameterDefinition[];
|
|
147
|
+
}
|
|
148
|
+
export interface PackParameterInstanceSubject {
|
|
149
|
+
readonly format: 'instance';
|
|
150
|
+
readonly packageId: PackageId;
|
|
151
|
+
readonly parent: PackageId;
|
|
152
|
+
readonly values: Readonly<Record<string, unknown>>;
|
|
153
|
+
}
|
|
154
|
+
export interface PackDirectSubject {
|
|
155
|
+
readonly format: 'direct';
|
|
156
|
+
readonly packageId: PackageId;
|
|
157
|
+
}
|
|
158
|
+
export type PackParameterInheritanceSubject = PackParameterRootSubject | PackParameterInstanceSubject | PackDirectSubject;
|
|
159
|
+
export interface ResolvedPackParameterInheritance {
|
|
160
|
+
readonly packageId: PackageId;
|
|
161
|
+
readonly rootPackageId: PackageId;
|
|
162
|
+
readonly values: Readonly<Record<string, PackParameterValue>>;
|
|
163
|
+
readonly parentChain: readonly string[];
|
|
164
|
+
readonly parameters: readonly PackParameterDefinition[];
|
|
165
|
+
}
|
|
166
|
+
export type PackParameterSubjectReader = (packageId: PackageId) => PackParameterInheritanceSubject | undefined | Promise<PackParameterInheritanceSubject | undefined>;
|
|
167
|
+
/** Resolve one finite parent chain. Every instance keeps its own packageId. */
|
|
168
|
+
export declare function resolvePackParameterInheritance(subject: PackParameterInheritanceSubject, readParent: PackParameterSubjectReader): Promise<Result<ResolvedPackParameterInheritance, PackAuthoringError>>;
|
|
169
|
+
export declare const resolvePackInheritance: typeof resolvePackParameterInheritance;
|
|
170
|
+
export declare const PARAMETERIZED_PACK_OPERATION_IDS: readonly ["asset.list", "asset.inspect", "asset.resolve", "asset.verify", "asset-source.create", "asset-source.clone", "asset-source.create-instance", "asset-source.apply-values", "asset-source.rebuild", "asset-source.cold-cook"];
|
|
171
|
+
export type ParameterizedPackOperationId = (typeof PARAMETERIZED_PACK_OPERATION_IDS)[number];
|
|
172
|
+
export interface ParameterizedPackOperation {
|
|
173
|
+
readonly requestId: string;
|
|
174
|
+
readonly expectedRevision?: string;
|
|
175
|
+
readonly operation: ParameterizedPackOperationId;
|
|
176
|
+
readonly subject?: string;
|
|
177
|
+
readonly sourcePath?: string;
|
|
178
|
+
readonly targetPath?: string;
|
|
179
|
+
readonly packageId?: string;
|
|
180
|
+
/** Parent package identity used by asset-source.create-instance. */
|
|
181
|
+
readonly parentPackageId?: string;
|
|
182
|
+
/** JSON-facing alias accepted by adapters at the operation boundary. */
|
|
183
|
+
readonly parent?: string;
|
|
184
|
+
readonly sourceKey?: string;
|
|
185
|
+
readonly values?: Readonly<Record<string, unknown>>;
|
|
186
|
+
/** `pack.ts` or `pack.json`; omitted defaults to the target extension. */
|
|
187
|
+
readonly format?: 'pack.ts' | 'pack.json';
|
|
188
|
+
/** Direct v3 entries for asset-source.create. */
|
|
189
|
+
readonly initialAssets?: Readonly<Record<string, DirectPackJsonAsset>>;
|
|
190
|
+
/** Explicit non-empty parameter declarations for a generated pack.ts scaffold. */
|
|
191
|
+
readonly parameters?: readonly Readonly<Record<string, unknown>>[];
|
|
192
|
+
/** Required proof level for asset.resolve. */
|
|
193
|
+
readonly require?: 'identity' | 'present' | 'ready';
|
|
194
|
+
}
|
|
195
|
+
export type ParameterizedPackResolutionStatus = 'identity' | 'present' | 'ready';
|
|
196
|
+
export interface ParameterizedPackOperationResult {
|
|
197
|
+
readonly operation: ParameterizedPackOperationId;
|
|
198
|
+
readonly requestId: string;
|
|
199
|
+
readonly sourcePath?: string;
|
|
200
|
+
readonly targetPath?: string;
|
|
201
|
+
readonly revision?: string;
|
|
202
|
+
readonly packageId?: string;
|
|
203
|
+
readonly parentPackageId?: string;
|
|
204
|
+
readonly sourceKey?: string;
|
|
205
|
+
readonly guid?: string;
|
|
206
|
+
readonly format?: 'pack.ts' | 'pack.json' | 'direct' | 'instance';
|
|
207
|
+
readonly status?: ParameterizedPackResolutionStatus;
|
|
208
|
+
readonly kind?: string;
|
|
209
|
+
readonly parameters?: readonly Readonly<Record<string, unknown>>[];
|
|
210
|
+
readonly values?: Readonly<Record<string, unknown>>;
|
|
211
|
+
readonly effectiveValues?: Readonly<Record<string, unknown>>;
|
|
212
|
+
readonly parentChain?: readonly string[];
|
|
213
|
+
readonly assets?: readonly Readonly<Record<string, unknown>>[];
|
|
214
|
+
readonly sources?: readonly Readonly<Record<string, unknown>>[];
|
|
215
|
+
readonly capabilities?: readonly ParameterizedPackOperationId[];
|
|
216
|
+
readonly snapshot?: {
|
|
217
|
+
readonly sourceCount: number;
|
|
218
|
+
readonly assetCount: number;
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
export interface ParameterizedPackGatewayPort<TResult = unknown> {
|
|
222
|
+
execute(operation: ParameterizedPackOperation): Promise<Result<TResult, PackAuthoringError>>;
|
|
223
|
+
}
|
|
224
|
+
/** One idempotent gateway wrapper shared by Editor and CLI adapters. */
|
|
225
|
+
export declare function createParameterizedPackAuthoringGateway<TResult = unknown>(port: ParameterizedPackGatewayPort<TResult>): ParameterizedPackGatewayPort<TResult>;
|
|
226
|
+
export declare const PARAMETERIZED_PACK_OPERATION_DESCRIPTORS: readonly {
|
|
227
|
+
id: ParameterizedPackOperationId;
|
|
228
|
+
domain: "asset" | "session";
|
|
229
|
+
readOnly: boolean;
|
|
230
|
+
requiresRevision: boolean;
|
|
231
|
+
}[];
|
|
232
|
+
export {};
|
|
233
|
+
//# sourceMappingURL=parameterized-pack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameterized-pack.d.ts","sourceRoot":"","sources":["../src/parameterized-pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { PackError } from './errors.js';
|
|
3
|
-
export declare function resolveAssetSource(metaPath: string, source: string | undefined, paths: Record<string, string>): Result<string, PackError>;
|
|
1
|
+
export declare function resolveAssetSource(metaPath: string, source: string | undefined): string;
|
|
4
2
|
//# sourceMappingURL=resolve-asset-source.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-asset-source.d.ts","sourceRoot":"","sources":["../src/resolve-asset-source.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve-asset-source.d.ts","sourceRoot":"","sources":["../src/resolve-asset-source.ts"],"names":[],"mappings":"AAOA,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQvF"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { dirname, resolve
|
|
2
|
-
import { ok, err, PACK_ERROR_HINTS } from '@forgeax/engine-types';
|
|
1
|
+
import { dirname, resolve } from 'path';
|
|
3
2
|
|
|
4
3
|
// src/resolve-asset-source.ts
|
|
5
4
|
|
|
@@ -9,99 +8,25 @@ function baseName(p) {
|
|
|
9
8
|
const idx = Math.max(trimmed.lastIndexOf("/"), trimmed.lastIndexOf("\\"));
|
|
10
9
|
return idx === -1 ? trimmed : trimmed.slice(idx + 1);
|
|
11
10
|
}
|
|
12
|
-
function deriveAssetName(packagePath,
|
|
11
|
+
function deriveAssetName(packagePath, _assetCount, storedName) {
|
|
13
12
|
if (packagePath === null) {
|
|
14
13
|
return "";
|
|
15
14
|
}
|
|
16
|
-
|
|
17
|
-
return baseName(packagePath);
|
|
18
|
-
}
|
|
15
|
+
return baseName(packagePath);
|
|
19
16
|
}
|
|
20
17
|
|
|
21
|
-
// src/errors.ts
|
|
22
|
-
var PackError = class extends Error {
|
|
23
|
-
code;
|
|
24
|
-
expected;
|
|
25
|
-
hint;
|
|
26
|
-
detail;
|
|
27
|
-
constructor(args) {
|
|
28
|
-
super(`[PackError ${args.code}] expected: ${args.expected}; hint: ${args.hint}`);
|
|
29
|
-
this.name = "PackError";
|
|
30
|
-
this.code = args.code;
|
|
31
|
-
this.expected = args.expected;
|
|
32
|
-
this.hint = args.hint;
|
|
33
|
-
this.detail = args.detail;
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
|
|
37
18
|
// src/resolve-asset-source.ts
|
|
38
19
|
function deriveSourceName(metaFileName) {
|
|
39
20
|
return metaFileName.replace(/\.meta\.json$/, "");
|
|
40
21
|
}
|
|
41
|
-
|
|
42
|
-
function isPathEscape(pathDir, resolved) {
|
|
43
|
-
const rel = posix.relative(pathDir, resolved);
|
|
44
|
-
return rel.startsWith("..") || posix.isAbsolute(rel);
|
|
45
|
-
}
|
|
46
|
-
function resolveAssetSource(metaPath, source, paths) {
|
|
22
|
+
function resolveAssetSource(metaPath, source) {
|
|
47
23
|
if (source === void 0) {
|
|
48
24
|
const metaDir = dirname(metaPath);
|
|
49
25
|
const metaName = deriveAssetName(metaPath);
|
|
50
26
|
const derived = deriveSourceName(metaName);
|
|
51
|
-
return
|
|
52
|
-
}
|
|
53
|
-
if (source.startsWith("@")) {
|
|
54
|
-
const match = source.match(PATH_REF_RE);
|
|
55
|
-
if (!match) {
|
|
56
|
-
return err(
|
|
57
|
-
new PackError({
|
|
58
|
-
code: "pack-malformed-path-ref",
|
|
59
|
-
expected: "source in format @<name>/<rest>",
|
|
60
|
-
hint: PACK_ERROR_HINTS["pack-malformed-path-ref"],
|
|
61
|
-
detail: {
|
|
62
|
-
code: "pack-malformed-path-ref",
|
|
63
|
-
reason: "format",
|
|
64
|
-
rawSource: source,
|
|
65
|
-
expectedFormat: "@<name>/<rest>"
|
|
66
|
-
}
|
|
67
|
-
})
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
const [, name, rest] = match;
|
|
71
|
-
const pathDir = paths[name];
|
|
72
|
-
if (pathDir === void 0) {
|
|
73
|
-
return err(
|
|
74
|
-
new PackError({
|
|
75
|
-
code: "pack-unknown-path",
|
|
76
|
-
expected: "path name found in package.json#forgeax.assets.paths",
|
|
77
|
-
hint: PACK_ERROR_HINTS["pack-unknown-path"],
|
|
78
|
-
detail: {
|
|
79
|
-
code: "pack-unknown-path",
|
|
80
|
-
pathName: name,
|
|
81
|
-
knownNames: Object.keys(paths)
|
|
82
|
-
}
|
|
83
|
-
})
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
const resolved = resolve(pathDir, rest);
|
|
87
|
-
if (isPathEscape(pathDir, resolved)) {
|
|
88
|
-
return err(
|
|
89
|
-
new PackError({
|
|
90
|
-
code: "pack-malformed-path-ref",
|
|
91
|
-
expected: "rest path must not escape the declared path directory",
|
|
92
|
-
hint: PACK_ERROR_HINTS["pack-malformed-path-ref"],
|
|
93
|
-
detail: {
|
|
94
|
-
code: "pack-malformed-path-ref",
|
|
95
|
-
reason: "escape",
|
|
96
|
-
rawSource: source,
|
|
97
|
-
expectedFormat: "@<name>/<rest>"
|
|
98
|
-
}
|
|
99
|
-
})
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
return ok(resolved);
|
|
27
|
+
return resolve(metaDir, derived);
|
|
103
28
|
}
|
|
104
|
-
return
|
|
29
|
+
return resolve(dirname(metaPath), source);
|
|
105
30
|
}
|
|
106
31
|
|
|
107
32
|
export { resolveAssetSource };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/deriveAssetName.ts","../src/
|
|
1
|
+
{"version":3,"sources":["../src/deriveAssetName.ts","../src/resolve-asset-source.ts"],"names":[],"mappings":";;;;;AAOA,SAAS,SAAS,CAAA,EAAmB;AACnC,EAAA,MAAM,OAAA,GAAU,CAAA,CAAE,OAAA,CAAQ,SAAA,EAAW,EAAE,CAAA;AACvC,EAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,OAAA,CAAQ,WAAA,CAAY,GAAG,CAAA,EAAG,OAAA,CAAQ,WAAA,CAAY,IAAI,CAAC,CAAA;AACxE,EAAA,OAAO,QAAQ,EAAA,GAAK,OAAA,GAAU,OAAA,CAAQ,KAAA,CAAM,MAAM,CAAC,CAAA;AACrD;AAmBO,SAAS,eAAA,CACd,WAAA,EACA,WAAA,EACA,UAAA,EACQ;AAIR,EAAA,IAAI,gBAAgB,IAAA,EAAM;AACxB,IAAA,OAAO,EAAA;AAAA,EACT;AACA,EAAA,OAAO,SAAS,WAAW,CAAA;AAC7B;;;ACvCA,SAAS,iBAAiB,YAAA,EAA8B;AACtD,EAAA,OAAO,YAAA,CAAa,OAAA,CAAQ,eAAA,EAAiB,EAAE,CAAA;AACjD;AAEO,SAAS,kBAAA,CAAmB,UAAkB,MAAA,EAAoC;AACvF,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,MAAM,OAAA,GAAU,QAAQ,QAAQ,CAAA;AAChC,IAAA,MAAM,QAAA,GAAW,eAAA,CAAgB,QAAW,CAAA;AAC5C,IAAA,MAAM,OAAA,GAAU,iBAAiB,QAAQ,CAAA;AACzC,IAAA,OAAO,OAAA,CAAQ,SAAS,OAAO,CAAA;AAAA,EACjC;AACA,EAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA,EAAG,MAAM,CAAA;AAC1C","file":"resolve-asset-source.mjs","sourcesContent":["/**\n * Last path segment of a `/`- or `\\`-separated path, trailing separators\n * stripped. Inlined rather than imported from `node:path` so this module stays\n * browser-safe: the dev-server pack path (`vite-plugin-pack` `/__pack/`) runs\n * `buildCatalog` -> `deriveAssetName` in client code where `node:path` is\n * externalized and `path.basename` throws.\n */\nfunction baseName(p: string): string {\n const trimmed = p.replace(/[/\\\\]+$/, '');\n const idx = Math.max(trimmed.lastIndexOf('/'), trimmed.lastIndexOf('\\\\'));\n return idx === -1 ? trimmed : trimmed.slice(idx + 1);\n}\n\n/**\n * Derive an asset's display name from package metadata.\n *\n * Pure function -- zero IO, zero side effects, browser-safe. Build-time\n * (build-catalog) and runtime (resolveName) share this single source of truth\n * for deterministic asset display-name resolution.\n *\n * Resolution contract:\n * - an explicit storedName is authoritative;\n * - a package path is the fallback when no storedName is present;\n * - an asset without a package and without a storedName resolves to ''.\n *\n * `assetCount` remains in the signature because callers derive it from their\n * package model, but it must not erase an explicitly authored name. In\n * particular, a single authored entry in `Materials.pack.json` resolves to its\n * entry name rather than temporarily appearing as the package basename.\n */\nexport function deriveAssetName(\n packagePath: string | null,\n _assetCount: number,\n storedName?: string,\n): string {\n if (storedName !== undefined) {\n return storedName;\n }\n if (packagePath === null) {\n return '';\n }\n return baseName(packagePath);\n}\n","import { dirname, resolve } from 'node:path';\nimport { deriveAssetName } from './deriveAssetName.js';\n\nfunction deriveSourceName(metaFileName: string): string {\n return metaFileName.replace(/\\.meta\\.json$/, '');\n}\n\nexport function resolveAssetSource(metaPath: string, source: string | undefined): string {\n if (source === undefined) {\n const metaDir = dirname(metaPath);\n const metaName = deriveAssetName(metaPath, 1);\n const derived = deriveSourceName(metaName);\n return resolve(metaDir, derived);\n }\n return resolve(dirname(metaPath), source);\n}\n"]}
|
package/dist/runtime.mjs
CHANGED
|
@@ -6859,7 +6859,7 @@ var meta_schema_default = {
|
|
|
6859
6859
|
source: {
|
|
6860
6860
|
type: "string",
|
|
6861
6861
|
minLength: 1,
|
|
6862
|
-
description: "Optional. Omit to derive the companion file in the same directory (strip .meta.json suffix from the meta filename).
|
|
6862
|
+
description: "Optional. Omit to derive the companion file in the same directory (strip .meta.json suffix from the meta filename). An explicit source is resolved relative to this sidecar."
|
|
6863
6863
|
},
|
|
6864
6864
|
importSettings: {
|
|
6865
6865
|
type: "object",
|
|
@@ -7000,11 +7000,11 @@ var pack_schema_default = {
|
|
|
7000
7000
|
$comment: "The ordinary durable consumer matrix is SCRIPTABLE_PACK_ASSET_KINDS in @forgeax/engine-pack/source. Pack kind fields remain open for registered producer extensions.",
|
|
7001
7001
|
type: "object",
|
|
7002
7002
|
additionalProperties: false,
|
|
7003
|
-
required: ["schemaVersion"
|
|
7003
|
+
required: ["schemaVersion"],
|
|
7004
7004
|
properties: {
|
|
7005
7005
|
schemaVersion: {
|
|
7006
7006
|
type: "string",
|
|
7007
|
-
enum: ["1.0.0", "2.0.0"]
|
|
7007
|
+
enum: ["1.0.0", "2.0.0", "3.0.0"]
|
|
7008
7008
|
},
|
|
7009
7009
|
kind: {
|
|
7010
7010
|
type: "string",
|
|
@@ -7026,12 +7026,58 @@ var pack_schema_default = {
|
|
|
7026
7026
|
items: { $ref: "#/$defs/diagnostic" }
|
|
7027
7027
|
},
|
|
7028
7028
|
assets: {
|
|
7029
|
-
|
|
7030
|
-
|
|
7031
|
-
|
|
7032
|
-
|
|
7029
|
+
oneOf: [
|
|
7030
|
+
{
|
|
7031
|
+
type: "array",
|
|
7032
|
+
items: { $ref: "#/$defs/asset" }
|
|
7033
|
+
},
|
|
7034
|
+
{ $ref: "#/$defs/authoringAssets" }
|
|
7035
|
+
]
|
|
7036
|
+
},
|
|
7037
|
+
parent: {
|
|
7038
|
+
$ref: "#/$defs/guid36",
|
|
7039
|
+
description: "Parent parameterized Pack packageId for one v3 instance."
|
|
7040
|
+
},
|
|
7041
|
+
values: {
|
|
7042
|
+
type: "object",
|
|
7043
|
+
additionalProperties: true,
|
|
7044
|
+
description: "Sparse shallow parameter overrides for one v3 instance."
|
|
7033
7045
|
}
|
|
7034
7046
|
},
|
|
7047
|
+
oneOf: [
|
|
7048
|
+
{
|
|
7049
|
+
required: ["kind", "assets"],
|
|
7050
|
+
properties: {
|
|
7051
|
+
schemaVersion: { enum: ["1.0.0", "2.0.0"] },
|
|
7052
|
+
kind: { const: "internal-text-package" },
|
|
7053
|
+
assets: { type: "array" },
|
|
7054
|
+
parent: false,
|
|
7055
|
+
values: false
|
|
7056
|
+
}
|
|
7057
|
+
},
|
|
7058
|
+
{
|
|
7059
|
+
required: ["packageId", "assets"],
|
|
7060
|
+
properties: {
|
|
7061
|
+
schemaVersion: { const: "3.0.0" },
|
|
7062
|
+
kind: false,
|
|
7063
|
+
packageId: { $ref: "#/$defs/guid36" },
|
|
7064
|
+
assets: { $ref: "#/$defs/authoringAssets" },
|
|
7065
|
+
parent: false,
|
|
7066
|
+
values: false
|
|
7067
|
+
}
|
|
7068
|
+
},
|
|
7069
|
+
{
|
|
7070
|
+
required: ["packageId", "parent", "values"],
|
|
7071
|
+
properties: {
|
|
7072
|
+
schemaVersion: { const: "3.0.0" },
|
|
7073
|
+
kind: false,
|
|
7074
|
+
packageId: { $ref: "#/$defs/guid36" },
|
|
7075
|
+
parent: { $ref: "#/$defs/guid36" },
|
|
7076
|
+
values: { type: "object" },
|
|
7077
|
+
assets: false
|
|
7078
|
+
}
|
|
7079
|
+
}
|
|
7080
|
+
],
|
|
7035
7081
|
allOf: [
|
|
7036
7082
|
{
|
|
7037
7083
|
if: {
|
|
@@ -7123,6 +7169,30 @@ var pack_schema_default = {
|
|
|
7123
7169
|
}
|
|
7124
7170
|
]
|
|
7125
7171
|
},
|
|
7172
|
+
authoringAssets: {
|
|
7173
|
+
type: "object",
|
|
7174
|
+
additionalProperties: false,
|
|
7175
|
+
patternProperties: {
|
|
7176
|
+
"^[a-z0-9][a-z0-9._-]*(/[a-z0-9][a-z0-9._-]*)*$": {
|
|
7177
|
+
$ref: "#/$defs/authoringAsset"
|
|
7178
|
+
}
|
|
7179
|
+
}
|
|
7180
|
+
},
|
|
7181
|
+
authoringAsset: {
|
|
7182
|
+
type: "object",
|
|
7183
|
+
additionalProperties: false,
|
|
7184
|
+
required: ["kind", "payload", "refs"],
|
|
7185
|
+
properties: {
|
|
7186
|
+
kind: { type: "string", minLength: 1 },
|
|
7187
|
+
name: { type: "string", minLength: 1 },
|
|
7188
|
+
payload: { type: "object" },
|
|
7189
|
+
refs: {
|
|
7190
|
+
type: "array",
|
|
7191
|
+
items: { $ref: "#/$defs/guid36" }
|
|
7192
|
+
},
|
|
7193
|
+
artifacts: { $ref: "#/$defs/artifacts" }
|
|
7194
|
+
}
|
|
7195
|
+
},
|
|
7126
7196
|
artifacts: {
|
|
7127
7197
|
type: "object",
|
|
7128
7198
|
additionalProperties: false,
|