@milaboratories/pl-model-common 1.48.0 → 1.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/author_marker.d.ts +1 -2
- package/dist/author_marker.d.ts.map +1 -1
- package/dist/base64.d.ts +4 -6
- package/dist/base64.d.ts.map +1 -1
- package/dist/block_state.d.ts +13 -9
- package/dist/block_state.d.ts.map +1 -1
- package/dist/bmodel/block_config.d.ts +51 -29
- package/dist/bmodel/block_config.d.ts.map +1 -1
- package/dist/bmodel/block_kind_ref.d.ts +4 -6
- package/dist/bmodel/block_kind_ref.d.ts.map +1 -1
- package/dist/bmodel/code.d.ts +4 -5
- package/dist/bmodel/code.d.ts.map +1 -1
- package/dist/bmodel/container.d.ts +5 -5
- package/dist/bmodel/container.d.ts.map +1 -1
- package/dist/bmodel/normalization.d.ts +1 -3
- package/dist/bmodel/normalization.d.ts.map +1 -1
- package/dist/bmodel/types.d.ts +1 -2
- package/dist/bmodel/types.d.ts.map +1 -1
- package/dist/branding.d.ts +2 -3
- package/dist/branding.d.ts.map +1 -1
- package/dist/columns/accessor_traversal.d.ts +6 -8
- package/dist/columns/accessor_traversal.d.ts.map +1 -1
- package/dist/columns/column_registry.d.ts +2 -3
- package/dist/columns/column_registry.d.ts.map +1 -1
- package/dist/columns/column_selector.d.ts +9 -9
- package/dist/columns/column_selector.d.ts.map +1 -1
- package/dist/columns/dedup.d.ts +1 -3
- package/dist/columns/dedup.d.ts.map +1 -1
- package/dist/columns/providers.d.ts +3 -4
- package/dist/columns/providers.d.ts.map +1 -1
- package/dist/columns/types.d.ts +12 -9
- package/dist/columns/types.d.ts.map +1 -1
- package/dist/common_types.d.ts +4 -6
- package/dist/common_types.d.ts.map +1 -1
- package/dist/dialog/index.d.ts +4 -5
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/driver_kit.d.ts +2 -2
- package/dist/driver_kit.d.ts.map +1 -1
- package/dist/drivers/ChunkedStreamReader.d.ts +3 -5
- package/dist/drivers/ChunkedStreamReader.d.ts.map +1 -1
- package/dist/drivers/blob.d.ts +36 -25
- package/dist/drivers/blob.d.ts.map +1 -1
- package/dist/drivers/columns/columns_collection_driver.d.ts +6 -7
- package/dist/drivers/columns/columns_collection_driver.d.ts.map +1 -1
- package/dist/drivers/columns/discover_columns_options.d.ts +9 -8
- package/dist/drivers/columns/discover_columns_options.d.ts.map +1 -1
- package/dist/drivers/index.cjs +1 -0
- package/dist/drivers/index.d.ts +4 -2
- package/dist/drivers/index.js +2 -2
- package/dist/drivers/interfaces.d.ts +2 -3
- package/dist/drivers/interfaces.d.ts.map +1 -1
- package/dist/drivers/log.d.ts +26 -28
- package/dist/drivers/log.d.ts.map +1 -1
- package/dist/drivers/ls.d.ts +37 -27
- package/dist/drivers/ls.d.ts.map +1 -1
- package/dist/drivers/pframe/column_filter.d.ts +1 -3
- package/dist/drivers/pframe/column_filter.d.ts.map +1 -1
- package/dist/drivers/pframe/data_info.d.ts +77 -50
- package/dist/drivers/pframe/data_info.d.ts.map +1 -1
- package/dist/drivers/pframe/data_types.d.ts +50 -45
- package/dist/drivers/pframe/data_types.d.ts.map +1 -1
- package/dist/drivers/pframe/driver.d.ts +5 -5
- package/dist/drivers/pframe/driver.d.ts.map +1 -1
- package/dist/drivers/pframe/filter_spec.d.ts +10 -12
- package/dist/drivers/pframe/filter_spec.d.ts.map +1 -1
- package/dist/drivers/pframe/find_columns.d.ts +2 -4
- package/dist/drivers/pframe/find_columns.d.ts.map +1 -1
- package/dist/drivers/pframe/index.cjs +1 -0
- package/dist/drivers/pframe/index.d.ts +4 -2
- package/dist/drivers/pframe/index.js +2 -2
- package/dist/drivers/pframe/linker_columns.d.ts +4 -10
- package/dist/drivers/pframe/linker_columns.d.ts.map +1 -1
- package/dist/drivers/pframe/pframe.d.ts +3 -3
- package/dist/drivers/pframe/pframe.d.ts.map +1 -1
- package/dist/drivers/pframe/query/query_common.d.ts +52 -46
- package/dist/drivers/pframe/query/query_common.d.ts.map +1 -1
- package/dist/drivers/pframe/query/query_data.d.ts +26 -21
- package/dist/drivers/pframe/query/query_data.d.ts.map +1 -1
- package/dist/drivers/pframe/query/query_spec.d.ts +22 -19
- package/dist/drivers/pframe/query/query_spec.d.ts.map +1 -1
- package/dist/drivers/pframe/query/utils.d.ts +15 -11
- package/dist/drivers/pframe/query/utils.d.ts.map +1 -1
- package/dist/drivers/pframe/spec/anchored.d.ts +3 -5
- package/dist/drivers/pframe/spec/anchored.d.ts.map +1 -1
- package/dist/drivers/pframe/spec/discovered_column.d.ts +10 -11
- package/dist/drivers/pframe/spec/discovered_column.d.ts.map +1 -1
- package/dist/drivers/pframe/spec/filtered_column.d.ts +17 -18
- package/dist/drivers/pframe/spec/filtered_column.d.ts.map +1 -1
- package/dist/drivers/pframe/spec/ids.d.ts +16 -16
- package/dist/drivers/pframe/spec/ids.d.ts.map +1 -1
- package/dist/drivers/pframe/spec/index.cjs +1 -0
- package/dist/drivers/pframe/spec/index.d.ts +2 -2
- package/dist/drivers/pframe/spec/index.js +2 -2
- package/dist/drivers/pframe/spec/native_id.d.ts +3 -3
- package/dist/drivers/pframe/spec/native_id.d.ts.map +1 -1
- package/dist/drivers/pframe/spec/overridden.d.ts +14 -16
- package/dist/drivers/pframe/spec/overridden.d.ts.map +1 -1
- package/dist/drivers/pframe/spec/selectors.d.ts +22 -22
- package/dist/drivers/pframe/spec/selectors.d.ts.map +1 -1
- package/dist/drivers/pframe/spec/spec.cjs +31 -0
- package/dist/drivers/pframe/spec/spec.cjs.map +1 -1
- package/dist/drivers/pframe/spec/spec.d.ts +94 -70
- package/dist/drivers/pframe/spec/spec.d.ts.map +1 -1
- package/dist/drivers/pframe/spec/spec.js +31 -1
- package/dist/drivers/pframe/spec/spec.js.map +1 -1
- package/dist/drivers/pframe/spec_driver.d.ts +30 -25
- package/dist/drivers/pframe/spec_driver.d.ts.map +1 -1
- package/dist/drivers/pframe/table.d.ts +1 -3
- package/dist/drivers/pframe/table.d.ts.map +1 -1
- package/dist/drivers/pframe/table_calculate.d.ts +55 -46
- package/dist/drivers/pframe/table_calculate.d.ts.map +1 -1
- package/dist/drivers/pframe/table_common.d.ts +9 -10
- package/dist/drivers/pframe/table_common.d.ts.map +1 -1
- package/dist/drivers/pframe/unique_values.d.ts +3 -3
- package/dist/drivers/pframe/unique_values.d.ts.map +1 -1
- package/dist/drivers/upload.d.ts +2 -3
- package/dist/drivers/upload.d.ts.map +1 -1
- package/dist/drivers/urls.d.ts +7 -8
- package/dist/drivers/urls.d.ts.map +1 -1
- package/dist/errors.d.ts +35 -36
- package/dist/errors.d.ts.map +1 -1
- package/dist/flags/block_flags.cjs.map +1 -1
- package/dist/flags/block_flags.d.ts +7 -7
- package/dist/flags/block_flags.d.ts.map +1 -1
- package/dist/flags/block_flags.js.map +1 -1
- package/dist/flags/flag_utils.d.ts +6 -8
- package/dist/flags/flag_utils.d.ts.map +1 -1
- package/dist/flags/type_utils.d.ts +6 -7
- package/dist/flags/type_utils.d.ts.map +1 -1
- package/dist/httpAuth.d.ts +4 -5
- package/dist/httpAuth.d.ts.map +1 -1
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +9 -2
- package/dist/index.js +2 -2
- package/dist/json.d.ts +11 -12
- package/dist/json.d.ts.map +1 -1
- package/dist/navigation.d.ts +16 -11
- package/dist/navigation.d.ts.map +1 -1
- package/dist/plid.d.ts +7 -9
- package/dist/plid.d.ts.map +1 -1
- package/dist/pool/entry.d.ts +8 -6
- package/dist/pool/entry.d.ts.map +1 -1
- package/dist/pool/query.d.ts +3 -4
- package/dist/pool/query.d.ts.map +1 -1
- package/dist/pool/spec.d.ts +33 -30
- package/dist/pool/spec.d.ts.map +1 -1
- package/dist/pool_entry.d.ts +2 -3
- package/dist/pool_entry.d.ts.map +1 -1
- package/dist/project_id.d.ts +1 -3
- package/dist/project_id.d.ts.map +1 -1
- package/dist/ref.d.ts +22 -23
- package/dist/ref.d.ts.map +1 -1
- package/dist/resource_types.d.ts +2 -3
- package/dist/resource_types.d.ts.map +1 -1
- package/dist/services/node_service_handlers.d.ts +1 -3
- package/dist/services/node_service_handlers.d.ts.map +1 -1
- package/dist/services/service_capabilities.d.ts +7 -9
- package/dist/services/service_capabilities.d.ts.map +1 -1
- package/dist/services/service_declarations.d.ts +2 -2
- package/dist/services/service_declarations.d.ts.map +1 -1
- package/dist/services/service_injectors.d.ts +7 -8
- package/dist/services/service_injectors.d.ts.map +1 -1
- package/dist/services/service_registry.d.ts +2 -4
- package/dist/services/service_registry.d.ts.map +1 -1
- package/dist/services/service_types.d.ts +24 -26
- package/dist/services/service_types.d.ts.map +1 -1
- package/dist/template/kind_selector.d.ts +9 -11
- package/dist/template/kind_selector.d.ts.map +1 -1
- package/dist/template/project_template_v1.d.ts +22 -20
- package/dist/template/project_template_v1.d.ts.map +1 -1
- package/dist/template/template_ref_form.d.ts +6 -5
- package/dist/template/template_ref_form.d.ts.map +1 -1
- package/dist/template/template_relocate.cjs +24 -3
- package/dist/template/template_relocate.cjs.map +1 -1
- package/dist/template/template_relocate.d.ts +8 -4
- package/dist/template/template_relocate.d.ts.map +1 -1
- package/dist/template/template_relocate.js +24 -3
- package/dist/template/template_relocate.js.map +1 -1
- package/dist/utag.d.ts +2 -4
- package/dist/utag.d.ts.map +1 -1
- package/dist/util.d.ts +2 -3
- package/dist/util.d.ts.map +1 -1
- package/dist/value_or_error.d.ts +2 -3
- package/dist/value_or_error.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/drivers/pframe/spec/spec.ts +31 -0
- package/src/flags/block_flags.ts +1 -1
- package/src/template/template_relocate.test.ts +57 -0
- package/src/template/template_relocate.ts +32 -4
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Services } from "./service_declarations.js";
|
|
2
2
|
import { InferServiceModelHost, InferServiceUiHost, ModelServiceFactoryMap, ServiceName, ServiceTypesLike, UiServiceFactoryMap } from "./service_types.js";
|
|
3
|
-
|
|
4
3
|
//#region src/services/service_registry.d.ts
|
|
5
4
|
type RegistryName = "ModelServiceRegistry" | "UiServiceRegistry";
|
|
6
5
|
declare class ServiceRegistryBase {
|
|
@@ -12,14 +11,13 @@ declare class ServiceRegistryBase {
|
|
|
12
11
|
dispose(): Promise<void>;
|
|
13
12
|
protected getById(serviceId: ServiceName): Record<string, Function> | null;
|
|
14
13
|
}
|
|
15
|
-
declare class ModelServiceRegistry<SMap extends Record<string, ServiceName> = typeof Services> extends ServiceRegistryBase {
|
|
14
|
+
export declare class ModelServiceRegistry<SMap extends Record<string, ServiceName> = typeof Services> extends ServiceRegistryBase {
|
|
16
15
|
constructor(serviceMap: SMap, factories: ModelServiceFactoryMap<SMap>);
|
|
17
16
|
get<S extends ServiceTypesLike>(id: ServiceName<S>): ([unknown] extends [InferServiceModelHost<S>] ? Record<string, Function> : InferServiceModelHost<S>) | null;
|
|
18
17
|
}
|
|
19
|
-
declare class UiServiceRegistry<SMap extends Record<string, ServiceName> = typeof Services> extends ServiceRegistryBase {
|
|
18
|
+
export declare class UiServiceRegistry<SMap extends Record<string, ServiceName> = typeof Services> extends ServiceRegistryBase {
|
|
20
19
|
constructor(serviceMap: SMap, factories: UiServiceFactoryMap<SMap>);
|
|
21
20
|
get<S extends ServiceTypesLike>(id: ServiceName<S>): ([unknown] extends [InferServiceUiHost<S>] ? Record<string, Function> : InferServiceUiHost<S>) | null;
|
|
22
21
|
}
|
|
23
22
|
//#endregion
|
|
24
|
-
export { ModelServiceRegistry, UiServiceRegistry };
|
|
25
23
|
//# sourceMappingURL=service_registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service_registry.d.ts","names":[],"sources":["../../src/services/service_registry.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"service_registry.d.ts","names":[],"sources":["../../src/services/service_registry.ts"],"mappings":";;;KAWK;cAGC;mBACa;mBACA;mBACA;mBACA;YAER,YACP,cAAc,cACd,YAAY,eAAe,cAC3B,WAAW;EAYP,WAAW;YAWP,QAAQ,WAAW,cAAc,eAAe;;qBAiB/C,qBACX,aAAa,eAAe,sBAAsB,kBAC1C;EACR,YAAY,YAAY,MAAM,WAAW,uBAAuB;EAIhE,IAAI,UAAU,kBACZ,IAAI,YAAY,yBAEM,sBAAsB,MACtC,eAAe,YACf,sBAAsB;;qBAOnB,kBACX,aAAa,eAAe,sBAAsB,kBAC1C;EACR,YAAY,YAAY,MAAM,WAAW,oBAAoB;EAI7D,IAAI,UAAU,kBACZ,IAAI,YAAY,yBAEM,mBAAmB,MAAM,eAAe,YAAY,mBAAmB"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Branded as Branded$1 } from "../branding.js";
|
|
2
2
|
import { Services } from "./service_declarations.js";
|
|
3
3
|
import { UnionToIntersection } from "@milaboratories/helpers";
|
|
4
|
-
|
|
5
4
|
//#region src/services/service_types.d.ts
|
|
6
|
-
type ServiceTypesLike<Model = unknown, Ui = unknown, Kind extends ServiceType = ServiceType, ModelHost = Model, UiHost = Ui> = {
|
|
5
|
+
export type ServiceTypesLike<Model = unknown, Ui = unknown, Kind extends ServiceType = ServiceType, ModelHost = Model, UiHost = Ui> = {
|
|
7
6
|
readonly __types?: {
|
|
8
7
|
model: Model;
|
|
9
8
|
ui: Ui;
|
|
@@ -12,37 +11,37 @@ type ServiceTypesLike<Model = unknown, Ui = unknown, Kind extends ServiceType =
|
|
|
12
11
|
uiHost: UiHost;
|
|
13
12
|
};
|
|
14
13
|
};
|
|
15
|
-
type InferServiceModel<S extends ServiceTypesLike> = S extends ServiceTypesLike<infer M, unknown, ServiceType, unknown, unknown> ? M : unknown;
|
|
16
|
-
type InferServiceUi<S extends ServiceTypesLike> = S extends ServiceTypesLike<unknown, infer U, ServiceType, unknown, unknown> ? U : unknown;
|
|
17
|
-
type InferServiceKind<S extends ServiceTypesLike> = S extends ServiceTypesLike<unknown, unknown, infer K, unknown, unknown> ? K : ServiceType;
|
|
14
|
+
export type InferServiceModel<S extends ServiceTypesLike> = S extends ServiceTypesLike<infer M, unknown, ServiceType, unknown, unknown> ? M : unknown;
|
|
15
|
+
export type InferServiceUi<S extends ServiceTypesLike> = S extends ServiceTypesLike<unknown, infer U, ServiceType, unknown, unknown> ? U : unknown;
|
|
16
|
+
export type InferServiceKind<S extends ServiceTypesLike> = S extends ServiceTypesLike<unknown, unknown, infer K, unknown, unknown> ? K : ServiceType;
|
|
18
17
|
/**
|
|
19
18
|
* Host-side shape stored in the model service registry. Differs from
|
|
20
19
|
* {@link InferServiceModel} only when the registered impl carries extra
|
|
21
20
|
* parameters (e.g. per-call `host` bindings) that the sandbox-view does
|
|
22
21
|
* not expose. Defaults to {@link InferServiceModel}.
|
|
23
22
|
*/
|
|
24
|
-
type InferServiceModelHost<S extends ServiceTypesLike> = S extends ServiceTypesLike<unknown, unknown, ServiceType, infer MH, unknown> ? MH : unknown;
|
|
23
|
+
export type InferServiceModelHost<S extends ServiceTypesLike> = S extends ServiceTypesLike<unknown, unknown, ServiceType, infer MH, unknown> ? MH : unknown;
|
|
25
24
|
/**
|
|
26
25
|
* Host-side shape stored in the UI service registry. Differs from
|
|
27
26
|
* {@link InferServiceUi} only when the registered impl carries extra
|
|
28
27
|
* parameters that the UI-proxy view does not expose. Defaults to
|
|
29
28
|
* {@link InferServiceUi}.
|
|
30
29
|
*/
|
|
31
|
-
type InferServiceUiHost<S extends ServiceTypesLike> = S extends ServiceTypesLike<unknown, unknown, ServiceType, unknown, infer UH> ? UH : unknown;
|
|
32
|
-
type ServiceName<S extends ServiceTypesLike = ServiceTypesLike> = Branded$1<string, S>;
|
|
33
|
-
type ServiceType = "node" | "wasm" | "main";
|
|
34
|
-
declare const service: <Model, Ui, ModelHost = Model, UiHost = Ui>() => <K extends ServiceType, N extends string, MM extends readonly (keyof Model & string)[], UM extends readonly (keyof Ui & string)[]>(options: {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
declare function serviceFnKey(serviceId: string, method?: string): string;
|
|
41
|
-
type ServiceBrand<T> = T extends Branded$1<string, infer S extends ServiceTypesLike> ? S : never;
|
|
42
|
-
type ModelServiceFactoryMap<SMap extends Record<string, ServiceName>> = { [K in keyof SMap]: (() => InferServiceModelHost<ServiceBrand<SMap[K]>>) | null };
|
|
43
|
-
type UiServiceFactoryMap<SMap extends Record<string, ServiceName>> = { [K in keyof SMap]: (() => InferServiceUiHost<ServiceBrand<SMap[K]>>) | null };
|
|
30
|
+
export type InferServiceUiHost<S extends ServiceTypesLike> = S extends ServiceTypesLike<unknown, unknown, ServiceType, unknown, infer UH> ? UH : unknown;
|
|
31
|
+
export type ServiceName<S extends ServiceTypesLike = ServiceTypesLike> = Branded$1<string, S>;
|
|
32
|
+
export type ServiceType = "node" | "wasm" | "main";
|
|
33
|
+
export declare const service: <Model, Ui, ModelHost = Model, UiHost = Ui>() => <K extends ServiceType, N extends string, MM extends readonly (keyof Model & string)[], UM extends readonly (keyof Ui & string)[]>(options: {
|
|
34
|
+
readonly type: K;
|
|
35
|
+
readonly name: N;
|
|
36
|
+
readonly modelMethods: MM;
|
|
37
|
+
readonly uiMethods: UM;
|
|
38
|
+
}) => Branded$1<N, ServiceTypesLike<Model, Ui, K, ModelHost, UiHost>>, isNodeService: (id: ServiceName) => boolean, isWasmService: (id: ServiceName) => boolean, isMainService: (id: ServiceName) => boolean, getServiceKind: (id: ServiceName) => ServiceType | undefined, getServiceModelMethods: (id: ServiceName) => readonly string[], getServiceUiMethods: (id: ServiceName) => readonly string[];
|
|
39
|
+
export declare function serviceFnKey(serviceId: string, method?: string): string;
|
|
40
|
+
export type ServiceBrand<T> = T extends Branded$1<string, infer S extends ServiceTypesLike> ? S : never;
|
|
41
|
+
export type ModelServiceFactoryMap<SMap extends Record<string, ServiceName>> = { [K in keyof SMap]: (() => InferServiceModelHost<ServiceBrand<SMap[K]>>) | null; };
|
|
42
|
+
export type UiServiceFactoryMap<SMap extends Record<string, ServiceName>> = { [K in keyof SMap]: (() => InferServiceUiHost<ServiceBrand<SMap[K]>>) | null; };
|
|
44
43
|
/** Contract between any service provider and any service consumer. */
|
|
45
|
-
interface ServiceDispatch {
|
|
44
|
+
export interface ServiceDispatch {
|
|
46
45
|
getServiceNames(): ServiceName[];
|
|
47
46
|
getServiceMethods(serviceId: ServiceName): string[];
|
|
48
47
|
callServiceMethod(serviceId: ServiceName, method: string, ...args: unknown[]): unknown;
|
|
@@ -50,14 +49,13 @@ interface ServiceDispatch {
|
|
|
50
49
|
type TServices = typeof Services;
|
|
51
50
|
type ExtractServiceName<T> = T extends Branded$1<infer N extends string, any> ? N : never;
|
|
52
51
|
/** Model-side service interfaces keyed by service name literal. */
|
|
53
|
-
type ModelServices = { [K in keyof TServices as ExtractServiceName<TServices[K]>]: InferServiceModel<ServiceBrand<TServices[K]
|
|
52
|
+
export type ModelServices = { [K in keyof TServices as ExtractServiceName<TServices[K]>]: InferServiceModel<ServiceBrand<TServices[K]>>; };
|
|
54
53
|
/** UI-side service interfaces keyed by service name literal. */
|
|
55
|
-
type UiServices = { [K in keyof TServices as ExtractServiceName<TServices[K]>]: InferServiceUi<ServiceBrand<TServices[K]
|
|
54
|
+
export type UiServices = { [K in keyof TServices as ExtractServiceName<TServices[K]>]: InferServiceUi<ServiceBrand<TServices[K]>>; };
|
|
56
55
|
/** Map from Services keys to their unbranded string name literals. */
|
|
57
|
-
type ServiceNameLiterals = { [K in keyof TServices]: ExtractServiceName<TServices[K]
|
|
56
|
+
export type ServiceNameLiterals = { [K in keyof TServices]: ExtractServiceName<TServices[K]>; };
|
|
58
57
|
/** Auto-derived requires* feature flags from Services keys. */
|
|
59
|
-
type ServiceRequireFlags = { [K in keyof TServices as `requires${K & string}`]?: boolean };
|
|
60
|
-
type RequireServices<T extends ServiceName> = UnionToIntersection<T extends Branded$1<infer N extends string, infer S extends ServiceTypesLike> ? Record<N, InferServiceModel<S>> : never>;
|
|
58
|
+
export type ServiceRequireFlags = { [K in keyof TServices as `requires${K & string}`]?: boolean; };
|
|
59
|
+
export type RequireServices<T extends ServiceName> = UnionToIntersection<T extends Branded$1<infer N extends string, infer S extends ServiceTypesLike> ? Record<N, InferServiceModel<S>> : never>;
|
|
61
60
|
//#endregion
|
|
62
|
-
export { InferServiceKind, InferServiceModel, InferServiceModelHost, InferServiceUi, InferServiceUiHost, ModelServiceFactoryMap, ModelServices, RequireServices, ServiceBrand, ServiceDispatch, ServiceName, ServiceNameLiterals, ServiceRequireFlags, ServiceType, ServiceTypesLike, UiServiceFactoryMap, UiServices, getServiceKind, getServiceModelMethods, getServiceUiMethods, isMainService, isNodeService, isWasmService, service, serviceFnKey };
|
|
63
61
|
//# sourceMappingURL=service_types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service_types.d.ts","names":[],"sources":["../../src/services/service_types.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"service_types.d.ts","names":[],"sources":["../../src/services/service_types.ts"],"mappings":";;;;YAKY,iBACV,iBACA,cACA,aAAa,cAAc,aAC3B,YAAY,OACZ,SAAS;WAEA;IACP,OAAO;IACP,IAAI;IACJ,MAAM;IACN,WAAW;IACX,QAAQ;;;YAIA,kBAAkB,UAAU,oBACtC,UAAU,uBAAuB,YAAY,iCAAiC;YAEpE,eAAe,UAAU,oBACnC,UAAU,gCAAgC,GAAG,iCAAiC;YAEpE,iBAAiB,UAAU,oBACrC,UAAU,yCAAyC,uBAAuB,IAAI;;;;;;;YAQpE,sBAAsB,UAAU,oBAC1C,UAAU,mCAAmC,mBAAmB,eAAe;;;;;;;YAQrE,mBAAmB,UAAU,oBACvC,UAAU,mCAAmC,4BAA4B,MAAM;YAErE,YAAY,UAAU,mBAAmB,oBAAoB,kBAAgB;YAE7E;qBAKV,UAYU,OAAO,IAAI,YAAS,OAAU,SAAM,UAExC,UAAU,aACV,kBACA,2BAA2B,mBAC3B,2BAA2B,gBAAc;WAEhC,MAAM;WACN,MAAM;WACN,cAAc;WACd,WAAW;MAClB,UAAQ,GAAG,iBAAiB,OAAO,IAAI,GAAG,WAAW,UAtB7D,gBAAa,IAsCO,yBArCpB,gBAAa,IAwCO,yBAvCpB,gBAAa,IA0CO,yBAzCpB,iBAAc,IA4CO,gBAAc,yBA3CnC,yBAAsB,IA8CO,mCA7C7B,sBAAmB,IAgDO;wBAMZ,aAAa,mBAAmB;YAIpC,aAAa,KACvB,UAAU,wBAAsB,UAAU,oBAAoB;YAEpD,uBAAuB,aAAa,eAAe,mBAC5D,WAAW,cAAc,sBAAsB,aAAa,KAAK;YAGxD,oBAAoB,aAAa,eAAe,mBACzD,WAAW,cAAc,mBAAmB,aAAa,KAAK;;iBAIhD;EACf,mBAAmB;EACnB,kBAAkB,WAAW;EAC7B,kBAAkB,WAAW,aAAa,mBAAmB;;KAM1D,mBAAmB;KAEnB,mBAAmB,KAAK,UAAU,gBAAc,yBAAyB;;YAGlE,mBACT,WAAW,aAAa,mBAAmB,UAAU,MAAM,kBAC1D,aAAa,UAAU;;YAKf,gBACT,WAAW,aAAa,mBAAmB,UAAU,MAAM,eAC1D,aAAa,UAAU;;YAKf,yBACT,WAAW,YAAY,mBAAmB,UAAU;;YAI3C,yBACT,WAAW,wBAAwB;YAG1B,gBAAgB,UAAU,eAAe,oBACnD,UAAU,gBAAc,wBAAwB,UAAU,oBACtD,OAAO,GAAG,kBAAkB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { BlockKindReference } from "../bmodel/block_kind_ref.js";
|
|
2
2
|
import { Branded } from "@milaboratories/helpers";
|
|
3
|
-
|
|
4
3
|
//#region src/template/kind_selector.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* Version-selection tier of a template entry's `kind` field.
|
|
@@ -9,9 +8,9 @@ import { Branded } from "@milaboratories/helpers";
|
|
|
9
8
|
* - `patch` — `~X.Y.Z`: patch floor, behavior frozen.
|
|
10
9
|
* - `minor` — `^X.Y.Z`: minor floor, behavior floats.
|
|
11
10
|
*/
|
|
12
|
-
type KindSelectorOp = "exact" | "patch" | "minor";
|
|
11
|
+
export type KindSelectorOp = "exact" | "patch" | "minor";
|
|
13
12
|
/** The version half of a `{name}@{selector}` kind reference, split into parts. */
|
|
14
|
-
type KindSelector = {
|
|
13
|
+
export type KindSelector = {
|
|
15
14
|
readonly op: KindSelectorOp;
|
|
16
15
|
readonly version: string;
|
|
17
16
|
};
|
|
@@ -26,7 +25,7 @@ type KindSelector = {
|
|
|
26
25
|
* selector is expected, or vice versa. Widen an exact reference explicitly with
|
|
27
26
|
* {@link kindReferenceToSelectorReference}.
|
|
28
27
|
*/
|
|
29
|
-
type BlockKindSelectorReference = Branded<string, "BlockKindSelectorReference">;
|
|
28
|
+
export type BlockKindSelectorReference = Branded<string, "BlockKindSelectorReference">;
|
|
30
29
|
/**
|
|
31
30
|
* Split a raw selector string (`1.2.0`, `~1.2.0`, `^1.2.0`) into its parts.
|
|
32
31
|
*
|
|
@@ -42,16 +41,16 @@ type BlockKindSelectorReference = Branded<string, "BlockKindSelectorReference">;
|
|
|
42
41
|
*
|
|
43
42
|
* @throws if the version part is not `X.Y.Z`
|
|
44
43
|
*/
|
|
45
|
-
declare function parseKindSelector(raw: string): KindSelector;
|
|
44
|
+
export declare function parseKindSelector(raw: string): KindSelector;
|
|
46
45
|
/** Render a {@link KindSelector} back to its on-wire string. */
|
|
47
|
-
declare function formatKindSelector(sel: KindSelector): string;
|
|
46
|
+
export declare function formatKindSelector(sel: KindSelector): string;
|
|
48
47
|
/**
|
|
49
48
|
* Split a {@link BlockKindSelectorReference} into `{ name, selector }`.
|
|
50
49
|
*
|
|
51
50
|
* @throws if the reference carries no version segment, or the selector is
|
|
52
51
|
* outside the `X.Y.Z` / `~X.Y.Z` / `^X.Y.Z` grammar
|
|
53
52
|
*/
|
|
54
|
-
declare function parseKindSelectorReference(ref: BlockKindSelectorReference): {
|
|
53
|
+
export declare function parseKindSelectorReference(ref: BlockKindSelectorReference): {
|
|
55
54
|
name: string;
|
|
56
55
|
selector: KindSelector;
|
|
57
56
|
};
|
|
@@ -61,7 +60,7 @@ declare function parseKindSelectorReference(ref: BlockKindSelectorReference): {
|
|
|
61
60
|
* A formatter, not a validator — pass a selector that came from
|
|
62
61
|
* {@link parseKindSelector} or that you constructed from a known-good version.
|
|
63
62
|
*/
|
|
64
|
-
declare function formatKindSelectorReference(k: {
|
|
63
|
+
export declare function formatKindSelectorReference(k: {
|
|
65
64
|
name: string;
|
|
66
65
|
selector: KindSelector;
|
|
67
66
|
}): BlockKindSelectorReference;
|
|
@@ -72,9 +71,8 @@ declare function formatKindSelectorReference(k: {
|
|
|
72
71
|
* always emits `{name}@X.Y.Z`. Validates on the way through, so a
|
|
73
72
|
* malformed stored reference fails at the boundary rather than in the file.
|
|
74
73
|
*/
|
|
75
|
-
declare function kindReferenceToSelectorReference(ref: BlockKindReference): BlockKindSelectorReference;
|
|
74
|
+
export declare function kindReferenceToSelectorReference(ref: BlockKindReference): BlockKindSelectorReference;
|
|
76
75
|
/** Whether `value` is a well-formed `{name}@{selector}` string. */
|
|
77
|
-
declare function isBlockKindSelectorReference(value: unknown): value is BlockKindSelectorReference;
|
|
76
|
+
export declare function isBlockKindSelectorReference(value: unknown): value is BlockKindSelectorReference;
|
|
78
77
|
//#endregion
|
|
79
|
-
export { BlockKindSelectorReference, KindSelector, KindSelectorOp, formatKindSelector, formatKindSelectorReference, isBlockKindSelectorReference, kindReferenceToSelectorReference, parseKindSelector, parseKindSelectorReference };
|
|
80
78
|
//# sourceMappingURL=kind_selector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kind_selector.d.ts","names":[],"sources":["../../src/template/kind_selector.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"kind_selector.d.ts","names":[],"sources":["../../src/template/kind_selector.ts"],"mappings":";;;;;;;;;;YAWY;;YAGA;WACD,IAAI;WACJ;;;;;;;;;;;;;YAcC,6BAA6B;;;;;;;;;;;;;;;;wBAqBzB,kBAAkB,cAAc;;wBAahC,mBAAmB,KAAK;;;;;;;wBAiBxB,2BAA2B,KAAK;EAC9C;EACA,UAAU;;;;;;;;wBAYI,4BAA4B;EAC1C;EACA,UAAU;IACR;;;;;;;;wBAWY,iCACd,KAAK,qBACJ;;wBAMa,6BAA6B,iBAAiB,SAAS"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { BlockKindSelectorReference } from "./kind_selector.js";
|
|
2
2
|
import { Branded } from "@milaboratories/helpers";
|
|
3
|
-
|
|
4
3
|
//#region src/template/project_template_v1.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* Value of a template file's `schema` field — the format marker every
|
|
7
6
|
* `template-v1` document opens with.
|
|
8
7
|
*/
|
|
9
|
-
declare const PROJECT_TEMPLATE_SCHEMA_V1 = "template-v1";
|
|
10
|
-
type ProjectTemplateSchemaV1 = typeof PROJECT_TEMPLATE_SCHEMA_V1;
|
|
8
|
+
export declare const PROJECT_TEMPLATE_SCHEMA_V1 = "template-v1";
|
|
9
|
+
export type ProjectTemplateSchemaV1 = typeof PROJECT_TEMPLATE_SCHEMA_V1;
|
|
11
10
|
/**
|
|
12
11
|
* On-wire reference to one exact block package version, `{name}@X.Y.Z`.
|
|
13
12
|
*
|
|
@@ -16,14 +15,14 @@ type ProjectTemplateSchemaV1 = typeof PROJECT_TEMPLATE_SCHEMA_V1;
|
|
|
16
15
|
* `BlockPackId` (`{ organization, name, version }`) is import-side work; the
|
|
17
16
|
* organization lives inside the npm scope here, as it does for kind names.
|
|
18
17
|
*/
|
|
19
|
-
type BlockPackReference = Branded<string, "BlockPackReference">;
|
|
18
|
+
export type BlockPackReference = Branded<string, "BlockPackReference">;
|
|
20
19
|
/**
|
|
21
20
|
* Split a {@link BlockPackReference} into `{ name, version }`.
|
|
22
21
|
*
|
|
23
22
|
* @throws if the reference carries no version segment or the version is not
|
|
24
23
|
* exactly `X.Y.Z`
|
|
25
24
|
*/
|
|
26
|
-
declare function parseBlockPackReference(ref: BlockPackReference): {
|
|
25
|
+
export declare function parseBlockPackReference(ref: BlockPackReference): {
|
|
27
26
|
name: string;
|
|
28
27
|
version: string;
|
|
29
28
|
};
|
|
@@ -42,7 +41,7 @@ declare function parseBlockPackReference(ref: BlockPackReference): {
|
|
|
42
41
|
* business: this type fixes only the grammar, so a document remains readable by a
|
|
43
42
|
* consumer that cannot fetch every scheme.
|
|
44
43
|
*/
|
|
45
|
-
type BlockPackLocationReference = Branded<string, "BlockPackLocationReference">;
|
|
44
|
+
export type BlockPackLocationReference = Branded<string, "BlockPackLocationReference">;
|
|
46
45
|
/**
|
|
47
46
|
* Read the scheme off a {@link BlockPackLocationReference}, which is all the
|
|
48
47
|
* document layer knows about it — resolving the rest belongs to whoever can reach
|
|
@@ -54,7 +53,7 @@ type BlockPackLocationReference = Branded<string, "BlockPackLocationReference">;
|
|
|
54
53
|
*
|
|
55
54
|
* @throws if the value carries no scheme
|
|
56
55
|
*/
|
|
57
|
-
declare function parseBlockPackLocation(ref: BlockPackLocationReference): {
|
|
56
|
+
export declare function parseBlockPackLocation(ref: BlockPackLocationReference): {
|
|
58
57
|
scheme: string;
|
|
59
58
|
};
|
|
60
59
|
/**
|
|
@@ -75,7 +74,7 @@ declare function parseBlockPackLocation(ref: BlockPackLocationReference): {
|
|
|
75
74
|
* entirely; carrying both would state two different things with no way to reconcile them, so
|
|
76
75
|
* the type admits at most one.
|
|
77
76
|
*/
|
|
78
|
-
type ProjectTemplateV1Entry = {
|
|
77
|
+
export type ProjectTemplateV1Entry = {
|
|
79
78
|
/**
|
|
80
79
|
* Template-local identifier, unique within the file. Names the entry for
|
|
81
80
|
* inter-block references; on export it is the block's project-local UUID,
|
|
@@ -110,7 +109,7 @@ type ProjectTemplateV1Entry = {
|
|
|
110
109
|
* Readers are unaffected: every arm declares both keys, so `entry.block` and `entry.location`
|
|
111
110
|
* stay directly readable without narrowing.
|
|
112
111
|
*/
|
|
113
|
-
type BlockPackLocatorOverride = {
|
|
112
|
+
export type BlockPackLocatorOverride = {
|
|
114
113
|
/**
|
|
115
114
|
* WHICH VERSION to install, leaving it to the environment to decide which registry
|
|
116
115
|
* serves it — so an entry pinned this way stays portable.
|
|
@@ -120,10 +119,12 @@ type BlockPackLocatorOverride = {
|
|
|
120
119
|
* it already records the exact version the block implements, leaving a pin nothing to
|
|
121
120
|
* add — so this is a hand-written field.
|
|
122
121
|
*/
|
|
123
|
-
readonly block?: BlockPackReference;
|
|
122
|
+
readonly block?: BlockPackReference;
|
|
123
|
+
/** Excluded: this arm is the version pin. */
|
|
124
124
|
readonly location?: never;
|
|
125
125
|
} | {
|
|
126
|
-
/** Excluded: this arm is the place. */
|
|
126
|
+
/** Excluded: this arm is the place. */
|
|
127
|
+
readonly block?: never;
|
|
127
128
|
/**
|
|
128
129
|
* WHICH PLACE to install from, as an absolute URI (see
|
|
129
130
|
* {@link BlockPackLocationReference}).
|
|
@@ -151,13 +152,15 @@ type BlockPackLocatorOverride = {
|
|
|
151
152
|
* dependency; serializing to YAML bytes belongs with the caller that already
|
|
152
153
|
* has one (pl-middle-layer).
|
|
153
154
|
*/
|
|
154
|
-
type ProjectTemplateV1 = {
|
|
155
|
+
export type ProjectTemplateV1 = {
|
|
155
156
|
readonly schema: ProjectTemplateSchemaV1;
|
|
156
157
|
readonly blocks: readonly ProjectTemplateV1Entry[];
|
|
157
158
|
};
|
|
158
159
|
/** One thing wrong with a document, and where in it. */
|
|
159
|
-
type TemplateParseIssue = {
|
|
160
|
-
/** Location in the decoded value: `["blocks", 2, "kind"]`. */
|
|
160
|
+
export type TemplateParseIssue = {
|
|
161
|
+
/** Location in the decoded value: `["blocks", 2, "kind"]`. */
|
|
162
|
+
readonly path: readonly (string | number)[];
|
|
163
|
+
/** What is wrong, worded for whoever is editing the file. */
|
|
161
164
|
readonly message: string;
|
|
162
165
|
};
|
|
163
166
|
/**
|
|
@@ -166,19 +169,19 @@ type TemplateParseIssue = {
|
|
|
166
169
|
* Indexes read as they are written in the file — `blocks[2]`, not `blocks.2` — so the place
|
|
167
170
|
* can be found by reading rather than by counting.
|
|
168
171
|
*/
|
|
169
|
-
declare function formatTemplateParseIssue(issue: TemplateParseIssue): string;
|
|
172
|
+
export declare function formatTemplateParseIssue(issue: TemplateParseIssue): string;
|
|
170
173
|
/**
|
|
171
174
|
* Every problem a document has, thrown once so a caller fixes the file in one pass.
|
|
172
175
|
*
|
|
173
176
|
* The issues are in `message` as well as on `issues`, because a throw that escapes to a log is
|
|
174
177
|
* read as its message and nothing else.
|
|
175
178
|
*/
|
|
176
|
-
declare class ProjectTemplateV1ParseError extends Error {
|
|
179
|
+
export declare class ProjectTemplateV1ParseError extends Error {
|
|
177
180
|
readonly issues: readonly TemplateParseIssue[];
|
|
178
181
|
constructor(issues: readonly TemplateParseIssue[]);
|
|
179
182
|
}
|
|
180
183
|
/** A document, or everything wrong with the value that was supposed to be one. */
|
|
181
|
-
type ProjectTemplateV1ReadResult = {
|
|
184
|
+
export type ProjectTemplateV1ReadResult = {
|
|
182
185
|
readonly ok: true;
|
|
183
186
|
readonly document: ProjectTemplateV1;
|
|
184
187
|
} | {
|
|
@@ -202,14 +205,13 @@ type ProjectTemplateV1ReadResult = {
|
|
|
202
205
|
*
|
|
203
206
|
* Collects rather than stops: a file with three mistakes should take one pass to fix.
|
|
204
207
|
*/
|
|
205
|
-
declare function readProjectTemplateV1(value: unknown): ProjectTemplateV1ReadResult;
|
|
208
|
+
export declare function readProjectTemplateV1(value: unknown): ProjectTemplateV1ReadResult;
|
|
206
209
|
/**
|
|
207
210
|
* {@link readProjectTemplateV1} for a caller that treats an unreadable document as
|
|
208
211
|
* exceptional — export, which asserts on every run that what it wrote can be read back.
|
|
209
212
|
*
|
|
210
213
|
* @throws {ProjectTemplateV1ParseError} carrying every problem found
|
|
211
214
|
*/
|
|
212
|
-
declare function parseProjectTemplateV1(value: unknown): ProjectTemplateV1;
|
|
215
|
+
export declare function parseProjectTemplateV1(value: unknown): ProjectTemplateV1;
|
|
213
216
|
//#endregion
|
|
214
|
-
export { BlockPackLocationReference, BlockPackLocatorOverride, BlockPackReference, PROJECT_TEMPLATE_SCHEMA_V1, ProjectTemplateSchemaV1, ProjectTemplateV1, ProjectTemplateV1Entry, ProjectTemplateV1ParseError, ProjectTemplateV1ReadResult, TemplateParseIssue, formatTemplateParseIssue, parseBlockPackLocation, parseBlockPackReference, parseProjectTemplateV1, readProjectTemplateV1 };
|
|
215
217
|
//# sourceMappingURL=project_template_v1.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project_template_v1.d.ts","names":[],"sources":["../../src/template/project_template_v1.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"project_template_v1.d.ts","names":[],"sources":["../../src/template/project_template_v1.ts"],"mappings":";;;;;;;qBASa;YACD,iCAAiC;;;;;;;;;YAUjC,qBAAqB;;;;;;;wBAQjB,wBAAwB,KAAK;EAC3C;EACA;;;;;;;;;;;;;;;;;YA2BU,6BAA6B;;;;;;;;;;;;wBAazB,uBAAuB,KAAK;EAA+B;;;;;;;;;;;;;;;;;;;;YAwC/D;;;;;;WAMD;WACA,MAAM;;;;;;;;;;;;;;;WAeN,QAAQ;IACf;;;;;;;;;;;;YAaQ;;;;;;;;;;WAWG,QAAQ;;WAER;;;WAIA;;;;;;;;;;;;WAYA,WAAW;;;;;;;;;;;;;;;;YAiBd;WACD,QAAQ;WACR,iBAAiB;;;YAgBhB;;WAED;;WAEA;;;;;;;;wBASK,yBAAyB,OAAO;;;;;;;qBAmBnC,oCAAoC;WAC1B,iBAAiB;EAAtC,YAAqB,iBAAiB;;;YAY5B;WACG;WAAmB,UAAU;;WAC7B;WAAoB,iBAAiB;;;;;;;;;;;;;;;;;;;wBAyBpC,sBAAsB,iBAAiB;;;;;;;wBA6JvC,uBAAuB,iBAAiB"}
|
|
@@ -26,8 +26,10 @@
|
|
|
26
26
|
* parser runs, so a kind's params contract is written against `PlRef` alone and never learns
|
|
27
27
|
* this type exists.
|
|
28
28
|
*/
|
|
29
|
-
type TemplatePlRef = {
|
|
30
|
-
/** The template-local id of the entry this points at. */
|
|
29
|
+
export type TemplatePlRef = {
|
|
30
|
+
/** The template-local id of the entry this points at. */
|
|
31
|
+
readonly block: string;
|
|
32
|
+
/** The upstream output's name, exactly as a `PlRef` spells it. */
|
|
31
33
|
readonly name: string;
|
|
32
34
|
};
|
|
33
35
|
/**
|
|
@@ -37,7 +39,7 @@ type TemplatePlRef = {
|
|
|
37
39
|
* and nothing else. A value carrying `__isRef` is a `PlRef` already and is not this — the two
|
|
38
40
|
* are told apart by shape and never overlap.
|
|
39
41
|
*/
|
|
40
|
-
declare function isTemplatePlRef(value: unknown): value is TemplatePlRef;
|
|
42
|
+
export declare function isTemplatePlRef(value: unknown): value is TemplatePlRef;
|
|
41
43
|
/**
|
|
42
44
|
* Expand every readable reference form in `params` into the form the system stores.
|
|
43
45
|
*
|
|
@@ -68,7 +70,6 @@ declare function isTemplatePlRef(value: unknown): value is TemplatePlRef;
|
|
|
68
70
|
* would have to be resolved somewhere that knows the document, and would drag that knowledge
|
|
69
71
|
* into every caller of this. Keep them information-preserving.
|
|
70
72
|
*/
|
|
71
|
-
declare function expandTemplateRefs<T>(params: T): T;
|
|
73
|
+
export declare function expandTemplateRefs<T>(params: T): T;
|
|
72
74
|
//#endregion
|
|
73
|
-
export { TemplatePlRef, expandTemplateRefs, isTemplatePlRef };
|
|
74
75
|
//# sourceMappingURL=template_ref_form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template_ref_form.d.ts","names":[],"sources":["../../src/template/template_ref_form.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"template_ref_form.d.ts","names":[],"sources":["../../src/template/template_ref_form.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;YA6BY;;WAED;;WAEA;;;;;;;;;wBAUK,gBAAgB,iBAAiB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAsC1C,mBAAmB,GAAG,QAAQ,IAAI"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
const require_spec = require("../drivers/pframe/spec/spec.cjs");
|
|
1
2
|
const require_ids = require("../drivers/pframe/spec/ids.cjs");
|
|
2
3
|
require("../drivers/index.cjs");
|
|
4
|
+
let es_toolkit = require("es-toolkit");
|
|
3
5
|
//#region src/template/template_relocate.ts
|
|
4
6
|
/**
|
|
5
7
|
* Point every column identifier in a block's params at the blocks of the project being built.
|
|
@@ -16,8 +18,13 @@ require("../drivers/index.cjs");
|
|
|
16
18
|
*
|
|
17
19
|
* Rewriting is structural, never textual: an identifier is taken apart, its `blockId` fields
|
|
18
20
|
* are replaced, and it is rebuilt canonically. That is what keeps a value that merely *looks*
|
|
19
|
-
* like an id —
|
|
20
|
-
* what re-sorts a qualifications map whose
|
|
21
|
+
* like an id — an axis filter, a domain this package can see belongs to an identifier it
|
|
22
|
+
* knows — from being rewritten along with it, and what re-sorts a qualifications map whose
|
|
23
|
+
* keys are identifiers.
|
|
24
|
+
*
|
|
25
|
+
* A domain reached on its own is the exception, and `relocateDomain` below says why: an axis is
|
|
26
|
+
* qualified by the block that produced it. Only the domain keys known to name a block are
|
|
27
|
+
* repointed — matching an entry id is not on its own evidence of a reference.
|
|
21
28
|
*
|
|
22
29
|
* An id the map does not mention is left as it is. That is the ordering rule doing its work:
|
|
23
30
|
* a caller building the map as it creates blocks passes only the entries already created, so
|
|
@@ -35,9 +42,23 @@ function relocateBlockIds(params, blockIds) {
|
|
|
35
42
|
if (typeof node === "string") return require_ids.remapColumnIdBlockIds(node, remapBlockId);
|
|
36
43
|
if (require_ids.isColumnUniversalKey(node)) return require_ids.remapColumnIdBlockIds(node, remapBlockId);
|
|
37
44
|
if (Array.isArray(node)) return node.map(walk);
|
|
38
|
-
if (typeof node === "object" && node !== null) return Object.fromEntries(Object.entries(node).map(([key, value]) => [require_ids.remapColumnIdBlockIds(key, remapBlockId), walk(value)]));
|
|
45
|
+
if (typeof node === "object" && node !== null) return Object.fromEntries(Object.entries(node).map(([key, value]) => [require_ids.remapColumnIdBlockIds(key, remapBlockId), key === "domain" && (0, es_toolkit.isPlainObject)(value) ? relocateDomain(value) : walk(value)]));
|
|
39
46
|
return node;
|
|
40
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* The block-naming entries of a domain, repointed at the project being built: an axis a block
|
|
50
|
+
* produced names that block in its domain, so those are references like any other.
|
|
51
|
+
*
|
|
52
|
+
* Only the keys {@link BlockScopedDomain} lists, because a template's entry ids are arbitrary
|
|
53
|
+
* non-empty strings — a hand-written template may name an entry `closest`, and a qualifier
|
|
54
|
+
* reading `closest` is not a reference to it. Matching the map is not on its own enough to
|
|
55
|
+
* tell one from the other; the key is.
|
|
56
|
+
*
|
|
57
|
+
* Reached only from the generic object case — inside an identifier this package recognizes a
|
|
58
|
+
* domain is spec data and stays as it is, which is what keeps an overridden column's
|
|
59
|
+
* `specOverrides.domain` untouched.
|
|
60
|
+
*/
|
|
61
|
+
const relocateDomain = (domain) => Object.fromEntries(Object.entries(domain).map(([key, value]) => [key, typeof value === "string" && require_spec.BlockScopedDomain.has(key) ? remapBlockId(value) : walk(value)]));
|
|
41
62
|
return walk(params);
|
|
42
63
|
}
|
|
43
64
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template_relocate.cjs","names":["remapColumnIdBlockIds","isColumnUniversalKey"],"sources":["../../src/template/template_relocate.ts"],"sourcesContent":["import { isColumnUniversalKey, remapColumnIdBlockIds } from \"../drivers\";\n\n/**\n * Point every column identifier in a block's params at the blocks of the project being built.\n *\n * The whole of what a template does about references, and it lives here — in the package the\n * block's own bundle imports — because knowing which values carry block ids is knowing the\n * reference system. The engine carrying the params neither marks them, reads them, nor\n * rewrites them: it hands the block its params and this map, and takes back what comes out.\n *\n * Params travel verbatim precisely so that this is possible. A file holds a `PlRef` as the\n * object the block stored and a column id as the canonical string the block stored, with no\n * marker of any kind, and the identifiers are found here by recognizing them — the same way\n * the project's own dependency detector finds them in live args.\n *\n * Rewriting is structural, never textual: an identifier is taken apart, its `blockId` fields\n * are replaced, and it is rebuilt canonically. That is what keeps a value that merely *looks*\n * like an id — a
|
|
1
|
+
{"version":3,"file":"template_relocate.cjs","names":["remapColumnIdBlockIds","isColumnUniversalKey","BlockScopedDomain"],"sources":["../../src/template/template_relocate.ts"],"sourcesContent":["import { isPlainObject } from \"es-toolkit\";\n\nimport { BlockScopedDomain, isColumnUniversalKey, remapColumnIdBlockIds } from \"../drivers\";\n\n/**\n * Point every column identifier in a block's params at the blocks of the project being built.\n *\n * The whole of what a template does about references, and it lives here — in the package the\n * block's own bundle imports — because knowing which values carry block ids is knowing the\n * reference system. The engine carrying the params neither marks them, reads them, nor\n * rewrites them: it hands the block its params and this map, and takes back what comes out.\n *\n * Params travel verbatim precisely so that this is possible. A file holds a `PlRef` as the\n * object the block stored and a column id as the canonical string the block stored, with no\n * marker of any kind, and the identifiers are found here by recognizing them — the same way\n * the project's own dependency detector finds them in live args.\n *\n * Rewriting is structural, never textual: an identifier is taken apart, its `blockId` fields\n * are replaced, and it is rebuilt canonically. That is what keeps a value that merely *looks*\n * like an id — an axis filter, a domain this package can see belongs to an identifier it\n * knows — from being rewritten along with it, and what re-sorts a qualifications map whose\n * keys are identifiers.\n *\n * A domain reached on its own is the exception, and `relocateDomain` below says why: an axis is\n * qualified by the block that produced it. Only the domain keys known to name a block are\n * repointed — matching an entry id is not on its own evidence of a reference.\n *\n * An id the map does not mention is left as it is. That is the ordering rule doing its work:\n * a caller building the map as it creates blocks passes only the entries already created, so\n * a reference to an entry further down the file stays pointing at a block that does not\n * exist, and the applied block reports itself as missing references rather than being wired\n * to something below it.\n *\n * @param params Whatever the block projected, as the document stored it\n * @param blockIds template-local entry id → the block id that entry was given\n */\nexport function relocateBlockIds<T>(params: T, blockIds: ReadonlyMap<string, string>): T {\n if (blockIds.size === 0) return params;\n const remapBlockId = (blockId: string) => blockIds.get(blockId) ?? blockId;\n\n const walk = (node: unknown): unknown => {\n // Any string may be an identifier under any amount of escaping; one that is not comes\n // back as the very same string, so this needs no test of its own here.\n if (typeof node === \"string\") return remapColumnIdBlockIds(node, remapBlockId);\n\n // Before the generic object case: an identifier IS an object, and descending into one\n // would rewrite the strings nested in it piecemeal instead of rebuilding the whole id —\n // losing the bottom-up canonicalization that keeps the result a valid identifier.\n if (isColumnUniversalKey(node)) return remapColumnIdBlockIds(node, remapBlockId);\n\n if (Array.isArray(node)) return node.map(walk);\n\n if (typeof node === \"object\" && node !== null) {\n // Keys as well as values: params may be keyed by column id — per-column settings, say\n // — and a key is exactly as much of a reference as a value is.\n return Object.fromEntries(\n Object.entries(node).map(([key, value]) => [\n remapColumnIdBlockIds(key, remapBlockId),\n key === \"domain\" && isPlainObject(value) ? relocateDomain(value) : walk(value),\n ]),\n );\n }\n\n return node;\n };\n\n /**\n * The block-naming entries of a domain, repointed at the project being built: an axis a block\n * produced names that block in its domain, so those are references like any other.\n *\n * Only the keys {@link BlockScopedDomain} lists, because a template's entry ids are arbitrary\n * non-empty strings — a hand-written template may name an entry `closest`, and a qualifier\n * reading `closest` is not a reference to it. Matching the map is not on its own enough to\n * tell one from the other; the key is.\n *\n * Reached only from the generic object case — inside an identifier this package recognizes a\n * domain is spec data and stays as it is, which is what keeps an overridden column's\n * `specOverrides.domain` untouched.\n */\n const relocateDomain = (domain: Record<string, unknown>): Record<string, unknown> =>\n Object.fromEntries(\n Object.entries(domain).map(([key, value]) => [\n key,\n typeof value === \"string\" && BlockScopedDomain.has(key) ? remapBlockId(value) : walk(value),\n ]),\n );\n\n return walk(params) as T;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,SAAgB,iBAAoB,QAAW,UAA0C;CACvF,IAAI,SAAS,SAAS,GAAG,OAAO;CAChC,MAAM,gBAAgB,YAAoB,SAAS,IAAI,OAAO,KAAK;CAEnE,MAAM,QAAQ,SAA2B;EAGvC,IAAI,OAAO,SAAS,UAAU,OAAOA,YAAAA,sBAAsB,MAAM,YAAY;EAK7E,IAAIC,YAAAA,qBAAqB,IAAI,GAAG,OAAOD,YAAAA,sBAAsB,MAAM,YAAY;EAE/E,IAAI,MAAM,QAAQ,IAAI,GAAG,OAAO,KAAK,IAAI,IAAI;EAE7C,IAAI,OAAO,SAAS,YAAY,SAAS,MAGvC,OAAO,OAAO,YACZ,OAAO,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,CACzCA,YAAAA,sBAAsB,KAAK,YAAY,GACvC,QAAQ,aAAA,GAAA,WAAA,cAAA,CAA0B,KAAK,IAAI,eAAe,KAAK,IAAI,KAAK,KAAK,CAC/E,CAAC,CACH;EAGF,OAAO;CACT;;;;;;;;;;;;;;CAeA,MAAM,kBAAkB,WACtB,OAAO,YACL,OAAO,QAAQ,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,CAC3C,KACA,OAAO,UAAU,YAAYE,aAAAA,kBAAkB,IAAI,GAAG,IAAI,aAAa,KAAK,IAAI,KAAK,KAAK,CAC5F,CAAC,CACH;CAEF,OAAO,KAAK,MAAM;AACpB"}
|
|
@@ -14,8 +14,13 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Rewriting is structural, never textual: an identifier is taken apart, its `blockId` fields
|
|
16
16
|
* are replaced, and it is rebuilt canonically. That is what keeps a value that merely *looks*
|
|
17
|
-
* like an id —
|
|
18
|
-
* what re-sorts a qualifications map whose
|
|
17
|
+
* like an id — an axis filter, a domain this package can see belongs to an identifier it
|
|
18
|
+
* knows — from being rewritten along with it, and what re-sorts a qualifications map whose
|
|
19
|
+
* keys are identifiers.
|
|
20
|
+
*
|
|
21
|
+
* A domain reached on its own is the exception, and `relocateDomain` below says why: an axis is
|
|
22
|
+
* qualified by the block that produced it. Only the domain keys known to name a block are
|
|
23
|
+
* repointed — matching an entry id is not on its own evidence of a reference.
|
|
19
24
|
*
|
|
20
25
|
* An id the map does not mention is left as it is. That is the ordering rule doing its work:
|
|
21
26
|
* a caller building the map as it creates blocks passes only the entries already created, so
|
|
@@ -26,7 +31,6 @@
|
|
|
26
31
|
* @param params Whatever the block projected, as the document stored it
|
|
27
32
|
* @param blockIds template-local entry id → the block id that entry was given
|
|
28
33
|
*/
|
|
29
|
-
declare function relocateBlockIds<T>(params: T, blockIds: ReadonlyMap<string, string>): T;
|
|
34
|
+
export declare function relocateBlockIds<T>(params: T, blockIds: ReadonlyMap<string, string>): T;
|
|
30
35
|
//#endregion
|
|
31
|
-
export { relocateBlockIds };
|
|
32
36
|
//# sourceMappingURL=template_relocate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template_relocate.d.ts","names":[],"sources":["../../src/template/template_relocate.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"template_relocate.d.ts","names":[],"sources":["../../src/template/template_relocate.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAoCgB,iBAAiB,GAAG,QAAQ,GAAG,UAAU,8BAA8B"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { BlockScopedDomain } from "../drivers/pframe/spec/spec.js";
|
|
1
2
|
import { isColumnUniversalKey, remapColumnIdBlockIds } from "../drivers/pframe/spec/ids.js";
|
|
2
3
|
import "../drivers/index.js";
|
|
4
|
+
import { isPlainObject } from "es-toolkit";
|
|
3
5
|
//#region src/template/template_relocate.ts
|
|
4
6
|
/**
|
|
5
7
|
* Point every column identifier in a block's params at the blocks of the project being built.
|
|
@@ -16,8 +18,13 @@ import "../drivers/index.js";
|
|
|
16
18
|
*
|
|
17
19
|
* Rewriting is structural, never textual: an identifier is taken apart, its `blockId` fields
|
|
18
20
|
* are replaced, and it is rebuilt canonically. That is what keeps a value that merely *looks*
|
|
19
|
-
* like an id —
|
|
20
|
-
* what re-sorts a qualifications map whose
|
|
21
|
+
* like an id — an axis filter, a domain this package can see belongs to an identifier it
|
|
22
|
+
* knows — from being rewritten along with it, and what re-sorts a qualifications map whose
|
|
23
|
+
* keys are identifiers.
|
|
24
|
+
*
|
|
25
|
+
* A domain reached on its own is the exception, and `relocateDomain` below says why: an axis is
|
|
26
|
+
* qualified by the block that produced it. Only the domain keys known to name a block are
|
|
27
|
+
* repointed — matching an entry id is not on its own evidence of a reference.
|
|
21
28
|
*
|
|
22
29
|
* An id the map does not mention is left as it is. That is the ordering rule doing its work:
|
|
23
30
|
* a caller building the map as it creates blocks passes only the entries already created, so
|
|
@@ -35,9 +42,23 @@ function relocateBlockIds(params, blockIds) {
|
|
|
35
42
|
if (typeof node === "string") return remapColumnIdBlockIds(node, remapBlockId);
|
|
36
43
|
if (isColumnUniversalKey(node)) return remapColumnIdBlockIds(node, remapBlockId);
|
|
37
44
|
if (Array.isArray(node)) return node.map(walk);
|
|
38
|
-
if (typeof node === "object" && node !== null) return Object.fromEntries(Object.entries(node).map(([key, value]) => [remapColumnIdBlockIds(key, remapBlockId), walk(value)]));
|
|
45
|
+
if (typeof node === "object" && node !== null) return Object.fromEntries(Object.entries(node).map(([key, value]) => [remapColumnIdBlockIds(key, remapBlockId), key === "domain" && isPlainObject(value) ? relocateDomain(value) : walk(value)]));
|
|
39
46
|
return node;
|
|
40
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* The block-naming entries of a domain, repointed at the project being built: an axis a block
|
|
50
|
+
* produced names that block in its domain, so those are references like any other.
|
|
51
|
+
*
|
|
52
|
+
* Only the keys {@link BlockScopedDomain} lists, because a template's entry ids are arbitrary
|
|
53
|
+
* non-empty strings — a hand-written template may name an entry `closest`, and a qualifier
|
|
54
|
+
* reading `closest` is not a reference to it. Matching the map is not on its own enough to
|
|
55
|
+
* tell one from the other; the key is.
|
|
56
|
+
*
|
|
57
|
+
* Reached only from the generic object case — inside an identifier this package recognizes a
|
|
58
|
+
* domain is spec data and stays as it is, which is what keeps an overridden column's
|
|
59
|
+
* `specOverrides.domain` untouched.
|
|
60
|
+
*/
|
|
61
|
+
const relocateDomain = (domain) => Object.fromEntries(Object.entries(domain).map(([key, value]) => [key, typeof value === "string" && BlockScopedDomain.has(key) ? remapBlockId(value) : walk(value)]));
|
|
41
62
|
return walk(params);
|
|
42
63
|
}
|
|
43
64
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template_relocate.js","names":[],"sources":["../../src/template/template_relocate.ts"],"sourcesContent":["import { isColumnUniversalKey, remapColumnIdBlockIds } from \"../drivers\";\n\n/**\n * Point every column identifier in a block's params at the blocks of the project being built.\n *\n * The whole of what a template does about references, and it lives here — in the package the\n * block's own bundle imports — because knowing which values carry block ids is knowing the\n * reference system. The engine carrying the params neither marks them, reads them, nor\n * rewrites them: it hands the block its params and this map, and takes back what comes out.\n *\n * Params travel verbatim precisely so that this is possible. A file holds a `PlRef` as the\n * object the block stored and a column id as the canonical string the block stored, with no\n * marker of any kind, and the identifiers are found here by recognizing them — the same way\n * the project's own dependency detector finds them in live args.\n *\n * Rewriting is structural, never textual: an identifier is taken apart, its `blockId` fields\n * are replaced, and it is rebuilt canonically. That is what keeps a value that merely *looks*\n * like an id — a
|
|
1
|
+
{"version":3,"file":"template_relocate.js","names":[],"sources":["../../src/template/template_relocate.ts"],"sourcesContent":["import { isPlainObject } from \"es-toolkit\";\n\nimport { BlockScopedDomain, isColumnUniversalKey, remapColumnIdBlockIds } from \"../drivers\";\n\n/**\n * Point every column identifier in a block's params at the blocks of the project being built.\n *\n * The whole of what a template does about references, and it lives here — in the package the\n * block's own bundle imports — because knowing which values carry block ids is knowing the\n * reference system. The engine carrying the params neither marks them, reads them, nor\n * rewrites them: it hands the block its params and this map, and takes back what comes out.\n *\n * Params travel verbatim precisely so that this is possible. A file holds a `PlRef` as the\n * object the block stored and a column id as the canonical string the block stored, with no\n * marker of any kind, and the identifiers are found here by recognizing them — the same way\n * the project's own dependency detector finds them in live args.\n *\n * Rewriting is structural, never textual: an identifier is taken apart, its `blockId` fields\n * are replaced, and it is rebuilt canonically. That is what keeps a value that merely *looks*\n * like an id — an axis filter, a domain this package can see belongs to an identifier it\n * knows — from being rewritten along with it, and what re-sorts a qualifications map whose\n * keys are identifiers.\n *\n * A domain reached on its own is the exception, and `relocateDomain` below says why: an axis is\n * qualified by the block that produced it. Only the domain keys known to name a block are\n * repointed — matching an entry id is not on its own evidence of a reference.\n *\n * An id the map does not mention is left as it is. That is the ordering rule doing its work:\n * a caller building the map as it creates blocks passes only the entries already created, so\n * a reference to an entry further down the file stays pointing at a block that does not\n * exist, and the applied block reports itself as missing references rather than being wired\n * to something below it.\n *\n * @param params Whatever the block projected, as the document stored it\n * @param blockIds template-local entry id → the block id that entry was given\n */\nexport function relocateBlockIds<T>(params: T, blockIds: ReadonlyMap<string, string>): T {\n if (blockIds.size === 0) return params;\n const remapBlockId = (blockId: string) => blockIds.get(blockId) ?? blockId;\n\n const walk = (node: unknown): unknown => {\n // Any string may be an identifier under any amount of escaping; one that is not comes\n // back as the very same string, so this needs no test of its own here.\n if (typeof node === \"string\") return remapColumnIdBlockIds(node, remapBlockId);\n\n // Before the generic object case: an identifier IS an object, and descending into one\n // would rewrite the strings nested in it piecemeal instead of rebuilding the whole id —\n // losing the bottom-up canonicalization that keeps the result a valid identifier.\n if (isColumnUniversalKey(node)) return remapColumnIdBlockIds(node, remapBlockId);\n\n if (Array.isArray(node)) return node.map(walk);\n\n if (typeof node === \"object\" && node !== null) {\n // Keys as well as values: params may be keyed by column id — per-column settings, say\n // — and a key is exactly as much of a reference as a value is.\n return Object.fromEntries(\n Object.entries(node).map(([key, value]) => [\n remapColumnIdBlockIds(key, remapBlockId),\n key === \"domain\" && isPlainObject(value) ? relocateDomain(value) : walk(value),\n ]),\n );\n }\n\n return node;\n };\n\n /**\n * The block-naming entries of a domain, repointed at the project being built: an axis a block\n * produced names that block in its domain, so those are references like any other.\n *\n * Only the keys {@link BlockScopedDomain} lists, because a template's entry ids are arbitrary\n * non-empty strings — a hand-written template may name an entry `closest`, and a qualifier\n * reading `closest` is not a reference to it. Matching the map is not on its own enough to\n * tell one from the other; the key is.\n *\n * Reached only from the generic object case — inside an identifier this package recognizes a\n * domain is spec data and stays as it is, which is what keeps an overridden column's\n * `specOverrides.domain` untouched.\n */\n const relocateDomain = (domain: Record<string, unknown>): Record<string, unknown> =>\n Object.fromEntries(\n Object.entries(domain).map(([key, value]) => [\n key,\n typeof value === \"string\" && BlockScopedDomain.has(key) ? remapBlockId(value) : walk(value),\n ]),\n );\n\n return walk(params) as T;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,SAAgB,iBAAoB,QAAW,UAA0C;CACvF,IAAI,SAAS,SAAS,GAAG,OAAO;CAChC,MAAM,gBAAgB,YAAoB,SAAS,IAAI,OAAO,KAAK;CAEnE,MAAM,QAAQ,SAA2B;EAGvC,IAAI,OAAO,SAAS,UAAU,OAAO,sBAAsB,MAAM,YAAY;EAK7E,IAAI,qBAAqB,IAAI,GAAG,OAAO,sBAAsB,MAAM,YAAY;EAE/E,IAAI,MAAM,QAAQ,IAAI,GAAG,OAAO,KAAK,IAAI,IAAI;EAE7C,IAAI,OAAO,SAAS,YAAY,SAAS,MAGvC,OAAO,OAAO,YACZ,OAAO,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,CACzC,sBAAsB,KAAK,YAAY,GACvC,QAAQ,YAAY,cAAc,KAAK,IAAI,eAAe,KAAK,IAAI,KAAK,KAAK,CAC/E,CAAC,CACH;EAGF,OAAO;CACT;;;;;;;;;;;;;;CAeA,MAAM,kBAAkB,WACtB,OAAO,YACL,OAAO,QAAQ,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,CAC3C,KACA,OAAO,UAAU,YAAY,kBAAkB,IAAI,GAAG,IAAI,aAAa,KAAK,IAAI,KAAK,KAAK,CAC5F,CAAC,CACH;CAEF,OAAO,KAAK,MAAM;AACpB"}
|
package/dist/utag.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { AuthorMarker } from "./author_marker.js";
|
|
2
|
-
|
|
3
2
|
//#region src/utag.d.ts
|
|
4
3
|
/** Value returned for changing states supporting reactive listening for changes */
|
|
5
|
-
interface ValueWithUTag<V> {
|
|
4
|
+
export interface ValueWithUTag<V> {
|
|
6
5
|
/** Value snapshot. */
|
|
7
6
|
readonly value: V;
|
|
8
7
|
/**
|
|
@@ -14,9 +13,8 @@ interface ValueWithUTag<V> {
|
|
|
14
13
|
* */
|
|
15
14
|
readonly uTag: string;
|
|
16
15
|
}
|
|
17
|
-
interface ValueWithUTagAndAuthor<V> extends ValueWithUTag<V> {
|
|
16
|
+
export interface ValueWithUTagAndAuthor<V> extends ValueWithUTag<V> {
|
|
18
17
|
readonly author?: AuthorMarker;
|
|
19
18
|
}
|
|
20
19
|
//#endregion
|
|
21
|
-
export { ValueWithUTag, ValueWithUTagAndAuthor };
|
|
22
20
|
//# sourceMappingURL=utag.d.ts.map
|
package/dist/utag.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utag.d.ts","names":[],"sources":["../src/utag.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"utag.d.ts","names":[],"sources":["../src/utag.ts"],"mappings":";;;iBAGiB,cAAc;;WAEpB,OAAO;;;;;;;;WASP;;iBAGM,uBAAuB,WAAW,cAAc;WACtD,SAAS"}
|