@croct/plug 0.12.0 → 0.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/component.d.ts +1 -1
- package/constants.d.ts +1 -1
- package/constants.js +1 -1
- package/package.json +1 -1
- package/slot.d.ts +4 -4
- package/src/component.ts +1 -1
- package/src/slot.ts +4 -4
- package/src/versioning.ts +18 -9
- package/versioning.d.ts +10 -3
package/component.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ type LatestComponentVersionMap = {
|
|
|
9
9
|
export interface VersionedComponentMap extends LatestComponentVersionMap {
|
|
10
10
|
}
|
|
11
11
|
export type ComponentId = keyof VersionedComponentMap extends never ? string : keyof VersionedComponentMap;
|
|
12
|
-
export type ComponentVersion<I extends ComponentId
|
|
12
|
+
export type ComponentVersion<I extends ComponentId> = Version<VersionedComponentMap, I>;
|
|
13
13
|
export type ComponentVersionId<I extends ComponentId = ComponentId> = CanonicalVersionId<I, VersionedComponentMap>;
|
|
14
14
|
export type VersionedComponentId<I extends ComponentId = ComponentId> = VersionedId<I, VersionedComponentMap>;
|
|
15
15
|
export type ComponentContent<I extends VersionedComponentId> = Versioned<I, VersionedComponentMap>;
|
package/constants.d.ts
CHANGED
|
@@ -2,4 +2,4 @@ export declare const CDN_URL = "https://cdn.croct.io/js/v1/lib/plug.js";
|
|
|
2
2
|
export declare const PLAYGROUND_ORIGIN = "https://play.croct.com";
|
|
3
3
|
export declare const PLAYGROUND_CONNECT_URL = "https://play.croct.com/connect.html";
|
|
4
4
|
export declare const PREVIEW_WIDGET_ORIGIN = "https://cdn.croct.io";
|
|
5
|
-
export declare const PREVIEW_WIDGET_URL = "https://cdn.croct.io/js/v1/lib/plug/widget-0.12.
|
|
5
|
+
export declare const PREVIEW_WIDGET_URL = "https://cdn.croct.io/js/v1/lib/plug/widget-0.12.2.html";
|
package/constants.js
CHANGED
|
@@ -5,5 +5,5 @@ exports.CDN_URL = 'https://cdn.croct.io/js/v1/lib/plug.js';
|
|
|
5
5
|
exports.PLAYGROUND_ORIGIN = 'https://play.croct.com';
|
|
6
6
|
exports.PLAYGROUND_CONNECT_URL = 'https://play.croct.com/connect.html';
|
|
7
7
|
exports.PREVIEW_WIDGET_ORIGIN = 'https://cdn.croct.io';
|
|
8
|
-
exports.PREVIEW_WIDGET_URL = 'https://cdn.croct.io/js/v1/lib/plug/widget-0.12.
|
|
8
|
+
exports.PREVIEW_WIDGET_URL = 'https://cdn.croct.io/js/v1/lib/plug/widget-0.12.2.html';
|
|
9
9
|
//# sourceMappingURL=constants.js.map
|
package/package.json
CHANGED
package/slot.d.ts
CHANGED
|
@@ -21,9 +21,9 @@ export interface VersionedSlotMap extends LatestSlotVersionMap {
|
|
|
21
21
|
* which improves type inference when narrowing the type.
|
|
22
22
|
*/
|
|
23
23
|
type Intersection<T, E> = T extends infer O ? O & E : never;
|
|
24
|
-
type UnionContent = {
|
|
24
|
+
type UnionContent<T = null> = {
|
|
25
25
|
[K in ComponentVersionId]: Intersection<ComponentContent<K>, {
|
|
26
|
-
_component: K |
|
|
26
|
+
_component: K | T;
|
|
27
27
|
}>;
|
|
28
28
|
};
|
|
29
29
|
type UnknownContent = UnionContent[ComponentVersionId] extends never ? (JsonObject & {
|
|
@@ -32,9 +32,9 @@ type UnknownContent = UnionContent[ComponentVersionId] extends never ? (JsonObje
|
|
|
32
32
|
type VersionedContent<I extends VersionedSlotId> = Versioned<I, VersionedSlotMap, UnknownContent>;
|
|
33
33
|
export type DynamicSlotId = any;
|
|
34
34
|
export type SlotId = keyof VersionedSlotMap extends never ? string : keyof VersionedSlotMap;
|
|
35
|
-
export type SlotVersion<I extends SlotId
|
|
35
|
+
export type SlotVersion<I extends SlotId> = Version<VersionedSlotMap, I>;
|
|
36
36
|
export type SlotVersionId<I extends SlotId = SlotId> = CanonicalVersionId<I, VersionedSlotMap>;
|
|
37
37
|
export type VersionedSlotId<I extends SlotId = SlotId> = VersionedId<I, VersionedSlotMap>;
|
|
38
|
-
export type CompatibleSlotContent<T extends ComponentVersionId = ComponentVersionId> = UnionContent[T];
|
|
38
|
+
export type CompatibleSlotContent<T extends ComponentVersionId = ComponentVersionId> = UnionContent<never>[T];
|
|
39
39
|
export type SlotContent<I extends VersionedSlotId = VersionedSlotId, C extends JsonObject = JsonObject> = JsonObject extends C ? (string extends I ? UnknownContent : VersionedContent<I>) : C;
|
|
40
40
|
export {};
|
package/src/component.ts
CHANGED
|
@@ -10,7 +10,7 @@ export interface VersionedComponentMap extends LatestComponentVersionMap {
|
|
|
10
10
|
|
|
11
11
|
export type ComponentId = keyof VersionedComponentMap extends never ? string : keyof VersionedComponentMap;
|
|
12
12
|
|
|
13
|
-
export type ComponentVersion<I extends ComponentId
|
|
13
|
+
export type ComponentVersion<I extends ComponentId> = Version<VersionedComponentMap, I>;
|
|
14
14
|
|
|
15
15
|
export type ComponentVersionId<I extends ComponentId = ComponentId> = CanonicalVersionId<I, VersionedComponentMap>;
|
|
16
16
|
|
package/src/slot.ts
CHANGED
|
@@ -22,8 +22,8 @@ export interface VersionedSlotMap extends LatestSlotVersionMap {
|
|
|
22
22
|
*/
|
|
23
23
|
type Intersection<T, E> = T extends infer O ? O & E : never;
|
|
24
24
|
|
|
25
|
-
type UnionContent = {
|
|
26
|
-
[K in ComponentVersionId]: Intersection<ComponentContent<K>, {_component: K |
|
|
25
|
+
type UnionContent<T = null> = {
|
|
26
|
+
[K in ComponentVersionId]: Intersection<ComponentContent<K>, {_component: K | T}>;
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
type UnknownContent = UnionContent[ComponentVersionId] extends never
|
|
@@ -36,13 +36,13 @@ export type DynamicSlotId = any;
|
|
|
36
36
|
|
|
37
37
|
export type SlotId = keyof VersionedSlotMap extends never ? string : keyof VersionedSlotMap;
|
|
38
38
|
|
|
39
|
-
export type SlotVersion<I extends SlotId
|
|
39
|
+
export type SlotVersion<I extends SlotId> = Version<VersionedSlotMap, I>;
|
|
40
40
|
|
|
41
41
|
export type SlotVersionId<I extends SlotId = SlotId> = CanonicalVersionId<I, VersionedSlotMap>;
|
|
42
42
|
|
|
43
43
|
export type VersionedSlotId<I extends SlotId = SlotId> = VersionedId<I, VersionedSlotMap>;
|
|
44
44
|
|
|
45
|
-
export type CompatibleSlotContent<T extends ComponentVersionId = ComponentVersionId> = UnionContent[T];
|
|
45
|
+
export type CompatibleSlotContent<T extends ComponentVersionId = ComponentVersionId> = UnionContent<never>[T];
|
|
46
46
|
|
|
47
47
|
export type SlotContent<I extends VersionedSlotId = VersionedSlotId, C extends JsonObject = JsonObject> =
|
|
48
48
|
JsonObject extends C ? (string extends I ? UnknownContent : VersionedContent<I>) : C;
|
package/src/versioning.ts
CHANGED
|
@@ -2,10 +2,6 @@ import {JsonObject} from '@croct/json';
|
|
|
2
2
|
|
|
3
3
|
export type LatestAlias = 'latest';
|
|
4
4
|
|
|
5
|
-
export type ExtractVersion<I extends string> = I extends `${string}@${infer V}`
|
|
6
|
-
? (LatestAlias extends V ? LatestAlias : (V extends `${number}` ? V : never))
|
|
7
|
-
: LatestAlias;
|
|
8
|
-
|
|
9
5
|
export type CanonicalVersionId<I extends string, M> = {
|
|
10
6
|
[K in I]: `${K}@${Extract<Version<M, K>, `${number}`>}`
|
|
11
7
|
}[I];
|
|
@@ -17,13 +13,26 @@ type CastString<T extends string> = T extends `${infer V}` ? V : string;
|
|
|
17
13
|
|
|
18
14
|
export type VersionedId<I extends string, M> = CastString<I> | {[K in I]: `${K}@${Version<M, K> & string}`}[I];
|
|
19
15
|
|
|
20
|
-
export type ExtractId<I extends string> = I extends `${infer V}@${string}` ? V : CastString<I>;
|
|
21
|
-
|
|
22
16
|
export type Version<M, I extends string> = LatestAlias | (I extends keyof M ? keyof M[I] : never);
|
|
23
17
|
|
|
18
|
+
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
|
|
19
|
+
|
|
20
|
+
type Expand<T> = {[K in keyof T]: T[K]};
|
|
21
|
+
|
|
22
|
+
type FlattenVersionMap<T> = Expand<
|
|
23
|
+
UnionToIntersection<
|
|
24
|
+
{
|
|
25
|
+
[K in Extract<keyof T, string>]: {
|
|
26
|
+
[K2 in Extract<keyof T[K], string> as (`${K}@${K2}` | (LatestAlias extends K2 ? K : never))]: T[K][K2];
|
|
27
|
+
}
|
|
28
|
+
}[Extract<keyof T, string>]
|
|
29
|
+
>
|
|
30
|
+
>;
|
|
31
|
+
|
|
24
32
|
export type Versioned<I extends string, M, C extends JsonObject = JsonObject> =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
33
|
+
// Ensure T is string
|
|
34
|
+
I extends `${infer K}`
|
|
35
|
+
? K extends keyof FlattenVersionMap<M>
|
|
36
|
+
? FlattenVersionMap<M>[K]
|
|
28
37
|
: C
|
|
29
38
|
: C;
|
package/versioning.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { JsonObject } from '@croct/json';
|
|
2
2
|
export type LatestAlias = 'latest';
|
|
3
|
-
export type ExtractVersion<I extends string> = I extends `${string}@${infer V}` ? (LatestAlias extends V ? LatestAlias : (V extends `${number}` ? V : never)) : LatestAlias;
|
|
4
3
|
export type CanonicalVersionId<I extends string, M> = {
|
|
5
4
|
[K in I]: `${K}@${Extract<Version<M, K>, `${number}`>}`;
|
|
6
5
|
}[I];
|
|
@@ -11,7 +10,15 @@ type CastString<T extends string> = T extends `${infer V}` ? V : string;
|
|
|
11
10
|
export type VersionedId<I extends string, M> = CastString<I> | {
|
|
12
11
|
[K in I]: `${K}@${Version<M, K> & string}`;
|
|
13
12
|
}[I];
|
|
14
|
-
export type ExtractId<I extends string> = I extends `${infer V}@${string}` ? V : CastString<I>;
|
|
15
13
|
export type Version<M, I extends string> = LatestAlias | (I extends keyof M ? keyof M[I] : never);
|
|
16
|
-
|
|
14
|
+
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
|
|
15
|
+
type Expand<T> = {
|
|
16
|
+
[K in keyof T]: T[K];
|
|
17
|
+
};
|
|
18
|
+
type FlattenVersionMap<T> = Expand<UnionToIntersection<{
|
|
19
|
+
[K in Extract<keyof T, string>]: {
|
|
20
|
+
[K2 in Extract<keyof T[K], string> as (`${K}@${K2}` | (LatestAlias extends K2 ? K : never))]: T[K][K2];
|
|
21
|
+
};
|
|
22
|
+
}[Extract<keyof T, string>]>>;
|
|
23
|
+
export type Versioned<I extends string, M, C extends JsonObject = JsonObject> = I extends `${infer K}` ? K extends keyof FlattenVersionMap<M> ? FlattenVersionMap<M>[K] : C : C;
|
|
17
24
|
export {};
|