@supernova-studio/supernova-sdk-beta 2.4.11 → 2.5.1

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.
Files changed (52) hide show
  1. package/build/supernova-sdk-typescript.js +1 -1
  2. package/build/supernova-sdk-typescript.js.map +1 -1
  3. package/build/types/core/areas/SDKAreaAgentChats.d.ts +4 -1
  4. package/build/types/core/areas/SDKAreaBulkOperations.d.ts +3 -3
  5. package/build/types/core/areas/SDKAreaComponents.d.ts +7 -31
  6. package/build/types/core/areas/SDKAreaDataSources.d.ts +5 -0
  7. package/build/types/core/areas/SDKAreaDocumentation.d.ts +18 -20
  8. package/build/types/core/areas/SDKAreaMCP.d.ts +4 -3
  9. package/build/types/core/areas/SDKAreaMe.d.ts +0 -2
  10. package/build/types/core/areas/SDKAreaProjects.d.ts +77 -922
  11. package/build/types/core/areas/SDKAreaRawData.d.ts +78 -917
  12. package/build/types/core/areas/SDKAreaResources.d.ts +4 -2
  13. package/build/types/core/areas/SDKAreaThreads.d.ts +1 -115
  14. package/build/types/core/areas/SDKAreaTokenValues.d.ts +15 -2
  15. package/build/types/core/areas/SDKAreaTokens.d.ts +3 -4
  16. package/build/types/core/areas/SDKAreaVersions.d.ts +3 -3
  17. package/build/types/core/areas/SDKAreaWorkspaces.d.ts +3 -4
  18. package/build/types/core/data/SDKDataBridge.d.ts +0 -1
  19. package/build/types/core/data/SDKDataCore.d.ts +139 -1091
  20. package/build/types/core/data/SDKDataCoreCached.d.ts +0 -3
  21. package/build/types/core/data/requests/SDKDataCoreReadRequests.d.ts +55 -470
  22. package/build/types/core/data/requests/SDKDataCoreWriteRequests.d.ts +158 -1006
  23. package/build/types/core/resolvers/SDKDocsEntityItemResolver.d.ts +6 -6
  24. package/build/types/exports.d.ts +2 -1
  25. package/build/types/model/activity-events/SDKActivityEvent.d.ts +6710 -3
  26. package/build/types/model/agent-chats/SDKAgentChat.d.ts +12 -1
  27. package/build/types/model/base/SDKDesignSystemVersionStats.d.ts +6 -1
  28. package/build/types/model/docs/blocks/support/SDKDocsImageRef.d.ts +1 -1
  29. package/build/types/model/documentation/SDKPublishedDocsSite.d.ts +20 -0
  30. package/build/types/model/enums/SDKUnit.d.ts +2 -0
  31. package/build/types/model/exporters/exporter_builds/SDKExportDestinations.d.ts +3 -0
  32. package/build/types/model/support/SDKSource.d.ts +1 -1
  33. package/build/types/model/tokens/SDKColorToken.d.ts +4 -0
  34. package/build/types/model/tokens/SDKDimensionToken.d.ts +6 -1
  35. package/build/types/model/users/SDKUserWorkspaceNotificationSettings.d.ts +4 -0
  36. package/build/types/model/workspaces/SDKWorkspaceProduct.d.ts +0 -4
  37. package/build/types/model/workspaces/SDKWorkspaceProductPrice.d.ts +18 -9
  38. package/build/types/model/workspaces/SDKWorkspaceSubscription.d.ts +18 -19
  39. package/build/types/tools/design-tokens/SDKToolsDesignTokensPlugin.d.ts +3 -6
  40. package/build/types/tools/design-tokens/utilities/SDKDTJSONConverter.d.ts +3 -29
  41. package/build/types/tools/design-tokens/utilities/SDKDTJSONLoader.d.ts +0 -2
  42. package/build/types/tools/design-tokens/utilities/SDKDTMapLoader.d.ts +0 -31
  43. package/build/types/tools/design-tokens/utilities/SDKDTTokenReferenceResolver.d.ts +0 -2
  44. package/build/types/tools/token-preview/TokenUtilPreviewTypes.d.ts +2 -0
  45. package/build/types/utils/TokenUtils.d.ts +12 -4
  46. package/package.json +5 -23
  47. package/build/types/tools/design-tokens/utilities/unresolvable-modes/index.d.ts +0 -4
  48. package/build/types/tools/design-tokens/utilities/unresolvable-modes/lenient-resolve.d.ts +0 -2
  49. package/build/types/tools/design-tokens/utilities/unresolvable-modes/placeholder.d.ts +0 -2
  50. package/build/types/tools/design-tokens/utilities/unresolvable-modes/preserve.d.ts +0 -2
  51. package/build/types/tools/design-tokens/utilities/unresolvable-modes/strict.d.ts +0 -2
  52. package/build/types/tools/design-tokens/utilities/unresolvable-modes/types.d.ts +0 -33
@@ -1,4 +1,5 @@
1
- import type { DTOAgentChat, DTOAgentChatChangedEntitiesResponse, DTOAgentChatChangedEntity, DTOAgentChatCreatePayload, DTOAgentChatDeleteResponse, DTOAgentChatListResponse, DTOAgentChatResponse, DTOAgentChatUpdatePayload } from "@supernova-studio/client";
1
+ import type { DTOAgentChat, DTOAgentChatChangedEntitiesResponse, DTOAgentChatChangedEntity, DTOAgentChatCreatePayload, DTOAgentChatDeleteResponse, DTOAgentChatListResponse, DTOAgentChatResponse, DTOAgentChatUpdatePayload, DTOAgentTurnRating, DTOAgentTurnRatingListResponse, DTOAgentTurnRatingResponse, DTOAgentTurnRatingTag, DTOAgentTurnRatingType, DTOAgentTurnRatingUpsertPayload } from "@supernova-studio/client";
2
+ export { AGENT_CHAT_NAME_SOURCE_MAX_LENGTH } from "@supernova-studio/client";
2
3
  export type AgentChatChangedEntitiesResponse = DTOAgentChatChangedEntitiesResponse;
3
4
  export type AgentChatChangedEntity = DTOAgentChatChangedEntity;
4
5
  export type AgentChatCreateInput = DTOAgentChatCreatePayload;
@@ -7,6 +8,12 @@ export type AgentChatListResponse = DTOAgentChatListResponse;
7
8
  export type AgentChatRemoteModel = DTOAgentChat;
8
9
  export type AgentChatResponse = DTOAgentChatResponse;
9
10
  export type AgentChatUpdateInput = DTOAgentChatUpdatePayload;
11
+ export type AgentTurnRating = DTOAgentTurnRating;
12
+ export type AgentTurnRatingInput = DTOAgentTurnRatingUpsertPayload;
13
+ export type AgentTurnRatingListResponse = DTOAgentTurnRatingListResponse;
14
+ export type AgentTurnRatingResponse = DTOAgentTurnRatingResponse;
15
+ export type AgentTurnRatingTag = DTOAgentTurnRatingTag;
16
+ export type AgentTurnRatingType = DTOAgentTurnRatingType;
10
17
  export type AgentChatListFilter = {
11
18
  workspaceId: string;
12
19
  designSystemId?: string;
@@ -15,6 +22,10 @@ export type AgentChatListFilter = {
15
22
  export declare class AgentChat {
16
23
  id: string;
17
24
  workspaceId: string;
25
+ /**
26
+ * @deprecated Chats belong to a workspace and are never created with a design
27
+ * system any more. Older chats may still carry one; nothing reads it
28
+ */
18
29
  designSystemId: string | undefined;
19
30
  userId: string;
20
31
  threadId: string;
@@ -1,9 +1,14 @@
1
- import { DTODesignSystemVersionStats } from "@supernova-studio/client";
1
+ import { DTODesignSystemVersionStats, DTODesignSystemVersionTokenCollectionStats } from "@supernova-studio/client";
2
2
  export declare class DesignSystemVersionStats {
3
3
  tokens: number;
4
+ tokensByType: Record<string, number>;
5
+ /** Tokens not linked to any data source, i.e. authored in Supernova */
6
+ authoredTokens: number;
7
+ tokenCollections: Array<DTODesignSystemVersionTokenCollectionStats>;
4
8
  designSystemComponents: number;
5
9
  assets: number;
6
10
  documentationPages: number;
11
+ publishedDocumentationPages: number;
7
12
  figmaComponents: number;
8
13
  stories: number;
9
14
  constructor(model: DTODesignSystemVersionStats);
@@ -1,4 +1,4 @@
1
- import { Supernova } from "../../../../exports";
1
+ import { Supernova } from "../../../../core/SDKSupernova";
2
2
  /** An image data container */
3
3
  export type DocsImageRef = {
4
4
  /** Ref type */
@@ -0,0 +1,20 @@
1
+ import type { DTOFileReference, DTOPublishedDocsSite } from "@supernova-studio/client";
2
+ import { DocumentationEnvironment } from "../enums/SDKDocumentationEnvironment";
3
+ export declare class PublishedDocsSite {
4
+ id: string;
5
+ designSystemVersionId: string;
6
+ createdAt: Date;
7
+ updatedAt: Date;
8
+ lastPublishedAt: Date;
9
+ environment: DocumentationEnvironment;
10
+ isDefault: boolean;
11
+ isPublic: boolean;
12
+ routingVersion: DTOPublishedDocsSite["routingVersion"];
13
+ usesLocalizations: boolean;
14
+ wasPublishedWithLocalizations: boolean;
15
+ tokenCount: number;
16
+ assetCount: number;
17
+ thumbnail?: DTOFileReference;
18
+ thumbnailUpdatedAt?: Date;
19
+ constructor(model: DTOPublishedDocsSite);
20
+ }
@@ -7,6 +7,8 @@ export declare enum Unit {
7
7
  }
8
8
  export declare const SIZE_UNITS: readonly [Unit.pixels, Unit.percent, Unit.rem];
9
9
  export type SizeUnit = (typeof SIZE_UNITS)[number];
10
+ export declare const OPACITY_UNITS: readonly [Unit.pixels, Unit.percent, Unit.raw];
11
+ export type OpacityUnit = (typeof OPACITY_UNITS)[number];
10
12
  export declare const LINE_HEIGHT_UNITS: readonly [Unit.pixels, Unit.percent, Unit.rem, Unit.raw];
11
13
  export type LineHeightUnit = (typeof LINE_HEIGHT_UNITS)[number];
12
14
  export declare const RAW_UNITS: readonly [Unit.raw];
@@ -82,6 +82,9 @@ export type DocsExportDestinationModel = {
82
82
  changes: DocsExportDestinationChanges | null;
83
83
  };
84
84
  export type DocsExportDestinationChanges = {
85
+ /** What the build publishes, absent on builds that publish everything */
86
+ pagePersistentIds?: string[];
87
+ groupPersistentIds?: string[];
85
88
  selectivePublishing: boolean | null;
86
89
  };
87
90
  /**
@@ -115,7 +115,7 @@ export type SourceRemoteModelTokensStudio = {
115
115
  };
116
116
  lastImportedResults?: Array<{
117
117
  mapping: {
118
- tokensTheme?: string;
118
+ tokensTheme?: string | string[];
119
119
  tokenSets?: string[];
120
120
  supernovaBrand?: string;
121
121
  supernovaTheme?: string;
@@ -12,6 +12,10 @@ export declare class ColorToken extends Token {
12
12
  constructor(versionId: string, baseToken: TokenRemoteModel, value: ColorTokenValue, alias: ColorToken | null, properties: Array<ElementProperty>, propertyValues: Array<ElementPropertyValue>);
13
13
  static create(versionId: string, brandId: string, name: string, description: string, value: string, alias: ColorToken | null, properties: Array<ElementProperty>, propertyValues: Array<ElementPropertyValue>): ColorToken;
14
14
  static colorValueFromDefinition(definition: string): ColorTokenValue;
15
+ /**
16
+ * Rewrite rgb()/hsl() forms into hex, including shapes tinycolor2 cannot read on its own.
17
+ * Keep color2k here: the catch below only fires because it throws, where tinycolor2 returns an invalid color.
18
+ */
15
19
  static normalizeColor(color: string): string | null;
16
20
  static normalizeOpacity(value: string): number;
17
21
  static normalizedHex(value: string | null): string | null;
@@ -27,8 +27,13 @@ export declare class DimensionCategoryToken<T extends AnyDimensionTokenValue> ex
27
27
  value: T;
28
28
  constructor(versionId: string, baseToken: TokenRemoteModel, value: AnyDimensionTokenValue, alias: DimensionCategoryToken<AnyDimensionTokenValue> | null, properties: Array<ElementProperty>, propertyValues: Array<ElementPropertyValue>);
29
29
  static create<TToken extends DimensionCategoryToken<AnyDimensionTokenValue>>(this: new (versionId: string, baseToken: TokenRemoteModel, value: AnyDimensionTokenValue, alias: DimensionCategoryToken<AnyDimensionTokenValue> | null, properties: Array<ElementProperty>, propertyValues: Array<ElementPropertyValue>) => TToken, type: DimensionTokenType, versionId: string, brandId: string, name: string, description: string, value: string | number, alias: TToken | null, properties: Array<ElementProperty>, propertyValues: Array<ElementPropertyValue>): TToken;
30
- static getCompatibleUnit(unit: Unit, type: DimensionTokenType): Unit;
30
+ static getCompatibleUnit(unit: Unit, type: DimensionTokenType, referenceCheckOnly?: boolean): Unit;
31
31
  static getCompatibleMeasure(unit: Unit, type: DimensionTokenType, measure: number): number;
32
+ /**
33
+ * Reads a px or % value aliased by an opacity as a fraction, so 50px becomes 0.5.
34
+ * Values outside 0–100 keep their unit so the out-of-range warning still shows.
35
+ */
36
+ static toOpacityValue<T extends AnyDimensionTokenValue>(value: T): T;
32
37
  static getDefaultUnit(type: DimensionTokenType, parsedDefinition?: number): Unit.pixels | Unit.ms | Unit.raw;
33
38
  static dimensionValueFromDefinition<T extends DimensionTokenType>(definition: string | number, type: T): DimensionValueForType<T>;
34
39
  static parseDimension(definition: string, type: DimensionTokenType): {
@@ -6,6 +6,9 @@ type GeneralNotificationSetting = {
6
6
  type DocsCommentsSetting = {
7
7
  email: boolean;
8
8
  };
9
+ type AgentSoundSetting = {
10
+ enabled: boolean;
11
+ };
9
12
  export type NotificationSettingsRemoteModel = DTOUserNotificationSettings;
10
13
  export type NotificationSettingsUpdateModel = Omit<NotificationSettingsRemoteModel, "liveblocksNotificationSettings">;
11
14
  export declare class UserWorkspaceNotificationSettings {
@@ -13,6 +16,7 @@ export declare class UserWorkspaceNotificationSettings {
13
16
  projectChatMention: GeneralNotificationSetting;
14
17
  projectDocumentComments: GeneralNotificationSetting;
15
18
  projectInvitation: GeneralNotificationSetting;
19
+ agentSound: AgentSoundSetting;
16
20
  constructor(model: NotificationSettingsRemoteModel);
17
21
  toRemote(): NotificationSettingsRemoteModel;
18
22
  }
@@ -1,17 +1,13 @@
1
- import { UserRole } from "../enums/SDKUserRole";
2
1
  import { WorkspaceSubscriptionProductCode } from "../enums/SDKWorkspaceSubscriptionProduct";
3
2
  import { WorkspaceProductPrice, WorkspaceProductPriceRemoteModel } from "./SDKWorkspaceProductPrice";
4
3
  export type WorkspaceProductRemoteModel = {
5
4
  code: WorkspaceSubscriptionProductCode;
6
- allowedInviteRoles: Array<UserRole>;
7
5
  prices: Array<WorkspaceProductPriceRemoteModel>;
8
6
  };
9
7
  export type WorkspaceProductTransportModel = WorkspaceProductRemoteModel;
10
8
  export declare class WorkspaceProduct {
11
9
  /** The code corresponding to this product */
12
10
  code: WorkspaceSubscriptionProductCode;
13
- /** The roles that are allowed to be invited to the workspace under this product */
14
- allowedInviteRoles: Array<UserRole>;
15
11
  /** The list of prices associated with the product */
16
12
  prices: Array<WorkspaceProductPrice>;
17
13
  constructor(model: WorkspaceProductTransportModel);
@@ -3,17 +3,17 @@ import { WorkspaceSubscriptionPlanInterval } from "../enums/SDKWorkspaceSubscrip
3
3
  export type WorkspaceProductPriceRemoteModel = {
4
4
  stripePriceId: string;
5
5
  stripeProductId: string;
6
- stripeProductDescription: string;
7
6
  stripeProductFeatures: Array<string>;
8
7
  stripeProductAdditionalFeatures: Array<string>;
9
8
  active: boolean;
10
9
  amount: number;
11
10
  seatType?: WorkspaceBilledSeatType;
12
11
  interval: WorkspaceSubscriptionPlanInterval;
13
- isPricePerCreator: boolean;
14
12
  legacyVersion?: string;
15
13
  monthlyCreditGrant?: number;
16
14
  mcpConsumers?: number;
15
+ isFixed?: boolean;
16
+ isSelfServe: boolean;
17
17
  };
18
18
  export type WorkspaceProductPriceTransportModel = WorkspaceProductPriceRemoteModel;
19
19
  export declare class WorkspaceProductPrice {
@@ -21,28 +21,37 @@ export declare class WorkspaceProductPrice {
21
21
  stripePriceId: string;
22
22
  /** The unique identifier for the Stripe product associated with the price */
23
23
  stripeProductId: string;
24
- /** Product description */
25
- stripeProductDescription: string;
26
- /** List of features available to this product price */
24
+ /**
25
+ * List of features available to this product price
26
+ * @deprecated Plan copy is hardcoded on the frontend now
27
+ */
27
28
  stripeProductFeatures: Array<string>;
28
- /** List of additional features available to this product price */
29
+ /**
30
+ * List of additional features available to this product price
31
+ * @deprecated Plan copy is hardcoded on the frontend now
32
+ */
29
33
  stripeProductAdditionalFeatures: Array<string>;
30
34
  /** Indicates whether the price is currently active */
31
35
  active: boolean;
32
36
  /** The amount to be charged for the product, in the smallest currency unit (e.g., cents) */
33
37
  amount: number;
34
- /** The matching seat (builder or full). Omitted for free plans */
38
+ /**
39
+ * The matching seat (builder or full). Omitted for free plans
40
+ * @deprecated Flat plans have no seat type
41
+ */
35
42
  seatType?: WorkspaceBilledSeatType;
36
43
  /** The billing interval (e.g., monthly, yearly) */
37
44
  interval: WorkspaceSubscriptionPlanInterval;
38
- /** Indicates whether the price is per creator (self-serve) or not */
39
- isPricePerCreator: boolean;
40
45
  /** An optional legacy version identifier, if applicable */
41
46
  legacyVersion?: string | null;
42
47
  /** The number of credits to be granted per month by this price */
43
48
  monthlyCreditGrant: number | null;
44
49
  /** The number of MCP consumers included in this price */
45
50
  mcpConsumers: number | null;
51
+ /** Whether the plan is charged as a flat fee instead of per seat */
52
+ isFixed: boolean;
53
+ /** Whether the plan can be bought without contacting sales */
54
+ isSelfServe: boolean;
46
55
  constructor(model: WorkspaceProductPriceRemoteModel);
47
56
  toRemote(): WorkspaceProductPriceRemoteModel;
48
57
  toTransport(): WorkspaceProductPriceTransportModel;
@@ -11,16 +11,13 @@ export type WorkspaceSubscriptionUpdatePreviewModel = DTOSubscriptionUpdatePrevi
11
11
  export declare class WorkspaceSubscription {
12
12
  /** Main status of the workspace subscription */
13
13
  status: WorkspaceSubscriptionStatus;
14
- /** Maximum number of Builders seats */
15
- builderSeatLimit: number;
16
- /** Current number of Builder seats the workspace uses */
17
- builderSeats: number;
18
- /** Maximum number of DSM (Full) seats */
14
+ /**
15
+ * Number of DSM (Full) seats the workspace bought. Zero when the backend does not send it
16
+ * @deprecated Only seat-priced plans use it. Flat plans buy no seats
17
+ */
19
18
  fullSeatLimit: number;
20
19
  /** Current number of DSM (Full) seats the workspace uses */
21
20
  fullSeats: number;
22
- /** Maximum number of MCP consumers */
23
- mcpConsumerLimit: number | undefined;
24
21
  /** Subscription tier */
25
22
  product: WorkspaceSubscriptionProductCode;
26
23
  /** Subscription cycle interval */
@@ -31,11 +28,6 @@ export declare class WorkspaceSubscription {
31
28
  * Stripe price id for a Full seat.
32
29
  */
33
30
  fullSeatPriceId: string;
34
- /**
35
- * Stripe price id for a Builder seat.
36
- * Can be optional if no Builder subscription was created on Stripe (e.g., on legacy plans).
37
- */
38
- builderSeatPriceId: string | null;
39
31
  /** Starting date of the current billing cycle */
40
32
  currentPeriodStart: Date | null;
41
33
  /** Ending date of the current billing cycle */
@@ -58,20 +50,28 @@ export declare class WorkspaceSubscription {
58
50
  } | null;
59
51
  /** Price of the subscription, in the smallest currency unit (e.g., cents) */
60
52
  amount: number;
61
- /** Product description */
62
- stripeProductDescription: string | null;
63
53
  /** Date when subscription status was updated */
64
54
  subscriptionStatusUpdatedAt: Date | null;
65
55
  /** Product version when it is legacy */
66
56
  legacyVersion: string | null;
67
- /** Indicates whether the price is per creator (self-serve) or not */
68
- isPricePerCreator: boolean;
69
- /** List of features available to this product price */
57
+ /** Whether the plan can be changed without contacting sales */
58
+ isPriceSelfServe: boolean;
59
+ /** Whether the plan is charged as a flat fee instead of per seat */
60
+ isPriceFixed: boolean;
61
+ /**
62
+ * List of features available to this product price
63
+ * @deprecated Plan copy is hardcoded on the frontend now
64
+ */
70
65
  stripeProductFeatures: Array<string>;
71
- /** List of additional features available to this product price */
66
+ /**
67
+ * List of additional features available to this product price
68
+ * @deprecated Plan copy is hardcoded on the frontend now
69
+ */
72
70
  stripeProductAdditionalFeatures: Array<string>;
73
71
  /** List of features defined in a machine-readable way */
74
72
  featuresSummary: ProductFeature;
73
+ /** Monthly credits bought as add-ons on top of the plan */
74
+ additionalCredits: number;
75
75
  creditsPrices: {
76
76
  creditsToCentsConversionRate: number;
77
77
  purchaseTopUpCreditsToCentsConversionRate: number;
@@ -105,7 +105,6 @@ export declare class WorkspaceSubscription {
105
105
  subscriptionUpcomingChange: {
106
106
  effectiveAt: Date;
107
107
  fullSeatLimit: number | null;
108
- builderSeatLimit: number | null;
109
108
  additionalCredits: number | null;
110
109
  } | null;
111
110
  /** List of roles allowed to be invited to the workspace under this product */
@@ -1,5 +1,4 @@
1
1
  import { Supernova } from "../../core/SDKSupernova";
2
- import { ActivityEventOptions } from "../../core/data/requests/SDKDataCoreWriteRequests";
3
2
  import { Brand } from "../../model/base/SDKBrand";
4
3
  import { TokenGroup } from "../../model/groups/SDKTokenGroup";
5
4
  import { Logger } from "../../model/support/SDKLogger";
@@ -29,9 +28,7 @@ export declare class SupernovaToolsDesignTokensPlugin {
29
28
  private logger;
30
29
  constructor(designSystemId: string, versionId: string, instance: Supernova, logger?: Logger);
31
30
  synchronizeTokensFromData(data: object, mapping: DTPluginToSupernovaMapPack, settings: DTPluginToSupernovaSettings): Promise<object>;
32
- synchronizeTokensFromDataWithResults(data: object, mapping: DTPluginToSupernovaMapPack, settings: DTPluginToSupernovaSettings, options?: {
33
- activityEventOptions?: ActivityEventOptions;
34
- }): Promise<{
31
+ synchronizeTokensFromDataWithResults(data: object, mapping: DTPluginToSupernovaMapPack, settings: DTPluginToSupernovaSettings): Promise<{
35
32
  results: SupernovaToolsDesignTokensResult[];
36
33
  logs: string[];
37
34
  }>;
@@ -43,13 +40,13 @@ export declare class SupernovaToolsDesignTokensPlugin {
43
40
  groups: Array<TokenGroup>;
44
41
  };
45
42
  /** Loads remote source connected to this tool, then merges tokens and groups with it, creating union. Can optionally write to the source as well */
46
- mergeWithRemoteSource(processedNodes: Array<DTProcessedTokenNode>, brand: Brand, write: boolean, verbose: boolean, preciseCopy: DTPluginPreciseCopyStrategy, activityEventOptions?: ActivityEventOptions): Promise<{
43
+ mergeWithRemoteSource(processedNodes: Array<DTProcessedTokenNode>, brand: Brand, write: boolean, verbose: boolean, preciseCopy: DTPluginPreciseCopyStrategy): Promise<{
47
44
  tokens: Array<Token>;
48
45
  groups: Array<TokenGroup>;
49
46
  diff: DTTokenMergeDiff;
50
47
  }>;
51
48
  /** Loads remote source connected to this tool, then creates the diff from the base tree and updates the associated theme. Can optionally write to the source as well */
52
- mergeThemeWithRemoteSource(processedNodes: Array<DTProcessedTokenNode>, brand: Brand, theme: TokenTheme, write: boolean, verbose: boolean, preciseCopy?: DTPluginPreciseCopyStrategy, themeOverridesStrategy?: DTPluginThemeOverrideStrategy, activityEventOptions?: ActivityEventOptions): Promise<{
49
+ mergeThemeWithRemoteSource(processedNodes: Array<DTProcessedTokenNode>, brand: Brand, theme: TokenTheme, write: boolean, verbose: boolean, preciseCopy?: DTPluginPreciseCopyStrategy, themeOverridesStrategy?: DTPluginThemeOverrideStrategy): Promise<{
53
50
  theme: TokenTheme;
54
51
  tokens: Array<Token>;
55
52
  }>;
@@ -1,48 +1,22 @@
1
1
  import { Brand } from "../../../model/base/SDKBrand";
2
2
  import { DTOriginalTokenType } from "../../../model/enums/SDKTokenType";
3
3
  import { AnyToken } from "../../../model/tokens/SDKTokenValue";
4
- import { DTParsedNode, DTParsedThemeSetPriority, DTParsedTokenSet } from "./SDKDTJSONLoader";
5
- import { DTPluginSourceMode, DTPluginToSupernovaMapPack, DTPluginUnresolvableFallback, DTPluginUnresolvableRefMode } from "./SDKDTMapLoader";
4
+ import { DTParsedNode } from "./SDKDTJSONLoader";
5
+ import { DTPluginToSupernovaMapPack } from "./SDKDTMapLoader";
6
6
  import { DTTokenReferenceResolver } from "./SDKDTTokenReferenceResolver";
7
7
  export type DTProcessedTokenNode<T extends AnyToken = AnyToken> = {
8
8
  token: T;
9
9
  originalType: DTOriginalTokenType;
10
10
  path: Array<string>;
11
11
  key: string;
12
- /** Originating set's status in `$themes.json`; absent for explicit-`tokenSets` mappings */
13
- sourcePriority?: DTParsedThemeSetPriority;
14
- };
15
- export type DTJSONConverterOptions = {
16
- /** How to handle references that can't resolve; defaults to `strict` (throw). */
17
- unresolvableRefMode?: DTPluginUnresolvableRefMode;
18
- /** Per-type fallback values used by `placeholder` and `lenientResolve` modes. */
19
- unresolvableFallback?: Required<DTPluginUnresolvableFallback>;
20
- /** Full input token sets — used only by `lenientResolve` for wider-scope lookup. */
21
- allLoadedSets?: Array<DTParsedTokenSet>;
22
- /** Attribution label included in warnings — usually `"<brand>/<theme>"`. */
23
- mappingKey?: string;
24
- /** How to handle `source`-statused sets (Fix B). Defaults to `emit`. */
25
- sourceMode?: DTPluginSourceMode;
26
12
  };
27
13
  /** Utility to DS Tokens plugin JSON to Supernova entities */
28
14
  export declare class DTJSONConverter {
29
15
  versionId: string;
30
16
  mapping: DTPluginToSupernovaMapPack;
31
17
  referenceResolver: DTTokenReferenceResolver;
32
- unresolvableRefMode: DTPluginUnresolvableRefMode;
33
- unresolvableFallback: Required<DTPluginUnresolvableFallback>;
34
- allLoadedSets: Array<DTParsedTokenSet>;
35
- mappingKey: string;
36
- sourceMode: DTPluginSourceMode;
37
- /** Warnings surfaced during resolution (emitted by non-strict unresolvable modes). Consumed by the plugin and folded into logs[]. */
38
- warnings: Array<string>;
39
- /** Keys of processed nodes that should be dropped before emission (populated by `preserve` mode and Fix B source filtering). */
40
- skippedKeys: Set<string>;
41
- constructor(versionId: string, mapping: DTPluginToSupernovaMapPack, options?: DTJSONConverterOptions);
18
+ constructor(versionId: string, mapping: DTPluginToSupernovaMapPack);
42
19
  convertNodesToTokens(nodes: Array<DTParsedNode>, brand: Brand): Array<DTProcessedTokenNode>;
43
- private applySourceModeSkip;
44
- /** Single-pass cascade: mark tokens whose referencedTokenId targets are in `skipIds`. Returns true if any new skip was added. */
45
- private markCascadingSkips;
46
20
  private restoreInitialTokenOrder;
47
21
  private remapRootNodeKey;
48
22
  private remapRootNodeKeys;
@@ -7,8 +7,6 @@ export type DTParsedNode = {
7
7
  type: DTOriginalTokenType;
8
8
  value: JSONValue;
9
9
  description: string | null;
10
- /** Originating set's status in `$themes.json`; absent for explicit-`tokenSets` mappings */
11
- sourcePriority?: DTParsedThemeSetPriority;
12
10
  };
13
11
  export type DTParsedTokenSet = {
14
12
  name: string;
@@ -15,31 +15,6 @@ export declare enum DTPluginPreciseCopyStrategy {
15
15
  deleteAll = "deleteAll",// preciseCopy = true
16
16
  keepManualTokens = "keepManualTokens"
17
17
  }
18
- /** Controls how `source`-statused sets in `$themes.json` are handled during sync. */
19
- export declare enum DTPluginSourceMode {
20
- /** Source sets contribute tokens AND resolve references (current SDK behavior) */
21
- emit = "emit",
22
- /** Source sets are used for reference resolution only; their tokens are inlined into referring enabled tokens and not emitted separately */
23
- referenceOnly = "referenceOnly"
24
- }
25
- /** Controls what happens when a `{...}` reference can't be resolved within the mapping's set pool. */
26
- export declare enum DTPluginUnresolvableRefMode {
27
- /** Throw the enriched error listing missing refs (current SDK behavior) */
28
- strict = "strict",
29
- /** Substitute unresolvable refs with configured fallback values; emit warnings to logs */
30
- placeholder = "placeholder",
31
- /** Keep the `{...}` literal in the token value; self-heals on next sync when target exists */
32
- preserve = "preserve",
33
- /** Try to resolve against all loaded sets (not just mapping's subset); fall back to placeholder if still unresolvable */
34
- lenientResolve = "lenientResolve"
35
- }
36
- /** Per-type fallback values used by `placeholder` mode (and `lenientResolve` fallback). */
37
- export type DTPluginUnresolvableFallback = {
38
- color?: string;
39
- dimension?: number;
40
- string?: string;
41
- };
42
- export declare const DEFAULT_UNRESOLVABLE_FALLBACK: Required<DTPluginUnresolvableFallback>;
43
18
  export declare const isPreciseCopyEnabled: (preciseCopy: DTPluginPreciseCopyStrategy) => preciseCopy is DTPluginPreciseCopyStrategy.deleteAll | DTPluginPreciseCopyStrategy.keepManualTokens;
44
19
  export declare const toPreciseCopyStrategy: (preciseCopy?: boolean | DTPluginPreciseCopyStrategy) => DTPluginPreciseCopyStrategy;
45
20
  export type DTPluginToSupernovaMap = {
@@ -67,9 +42,6 @@ export type DTPluginToSupernovaMappingFile = {
67
42
  dryRun?: boolean;
68
43
  preciseCopy?: boolean | DTPluginPreciseCopyStrategy;
69
44
  themeOverridesStrategy?: DTPluginThemeOverrideStrategy;
70
- sourceMode?: DTPluginSourceMode;
71
- unresolvableRefMode?: DTPluginUnresolvableRefMode;
72
- unresolvableFallback?: DTPluginUnresolvableFallback;
73
45
  };
74
46
  };
75
47
  export type DTPluginToSupernovaSettings = {
@@ -77,7 +49,4 @@ export type DTPluginToSupernovaSettings = {
77
49
  dryRun: boolean;
78
50
  preciseCopy: DTPluginPreciseCopyStrategy;
79
51
  themeOverridesStrategy: DTPluginThemeOverrideStrategy;
80
- sourceMode: DTPluginSourceMode;
81
- unresolvableRefMode: DTPluginUnresolvableRefMode;
82
- unresolvableFallback: Required<DTPluginUnresolvableFallback>;
83
52
  };
@@ -45,6 +45,4 @@ export declare class DTTokenReferenceResolver {
45
45
  dollarTypeReference: boolean;
46
46
  }[];
47
47
  isDollarIdentifier(value: string): boolean;
48
- /** Extract references appearing in `value` that aren't defined in the atomic table. Returns bracket-normalized keys (e.g. `{color.base.foo}`). */
49
- unresolvedReferencesIn(value: unknown): Array<string>;
50
48
  }
@@ -74,6 +74,8 @@ export type TokenUtilPreviewReferenceInfo = {
74
74
  export type TokenUtilPreviewReferenceInfoPiece = {
75
75
  key?: Array<TokenUtilPreviewTokenValueSegment>;
76
76
  value?: Array<TokenUtilPreviewTokenValueSegment>;
77
+ /** Opaque hex of a colour row, for a swatch beside it. Opacity has its own row */
78
+ swatchColor?: string;
77
79
  icon?: string;
78
80
  fullWidth?: boolean;
79
81
  wrapSegments?: boolean;
@@ -1,19 +1,27 @@
1
- import { AnyToken, AnyDimensionToken, BlurType, BorderPosition, BorderStyle, DTProcessedTokenNode, GradientType, ShadowType, TextCase, TokenGroup, TokenTheme } from "../exports";
2
1
  import { ElementProperty } from "../model/elements/SDKElementProperty";
2
+ import { BlurType } from "../model/enums/SDKBlurType";
3
+ import { BorderPosition } from "../model/enums/SDKBorderPosition";
4
+ import { BorderStyle } from "../model/enums/SDKBorderStyle";
5
+ import { GradientType } from "../model/enums/SDKGradientType";
6
+ import { ShadowType } from "../model/enums/SDKShadowType";
7
+ import { TextCase } from "../model/enums/SDKTextCase";
3
8
  import { TokenType } from "../model/enums/SDKTokenType";
9
+ import { TokenGroup } from "../model/groups/SDKTokenGroup";
10
+ import { TokenTheme } from "../model/themes/SDKTokenTheme";
4
11
  import { BlurToken } from "../model/tokens/SDKBlurToken";
5
12
  import { BorderToken } from "../model/tokens/SDKBorderToken";
6
13
  import { ColorToken } from "../model/tokens/SDKColorToken";
7
- import { BorderWidthToken, DimensionToken, DurationToken, FontSizeToken, LetterSpacingToken, LineHeightToken, OpacityToken, ParagraphSpacingToken, RadiusToken, SizeToken, SpaceToken, ZIndexToken } from "../model/tokens/SDKDimensionToken";
14
+ import { AnyDimensionToken, BorderWidthToken, DimensionToken, DurationToken, FontSizeToken, LetterSpacingToken, LineHeightToken, OpacityToken, ParagraphSpacingToken, RadiusToken, SizeToken, SpaceToken, ZIndexToken } from "../model/tokens/SDKDimensionToken";
8
15
  import { GradientToken } from "../model/tokens/SDKGradientToken";
9
16
  import { ShadowToken } from "../model/tokens/SDKShadowToken";
10
17
  import { FontFamilyToken, FontWeightToken, ProductCopyToken, StringCategoryToken, StringToken } from "../model/tokens/SDKStringToken";
11
18
  import { TextCaseToken } from "../model/tokens/SDKTextCaseToken";
12
19
  import { TextDecorationToken } from "../model/tokens/SDKTextDecorationToken";
13
20
  import { Token } from "../model/tokens/SDKToken";
14
- import { AnyMultiLayerToken, AnySingleLayerToken, AnyStringTokenValue, AnyTokenValue, BorderWidthTokenValue, ColorTokenValue, ColorValue, DimensionTokenValue, DurationTokenValue, FontFamilyTokenValue, FontSizeTokenValue, FontWeightTokenValue, LetterSpacingTokenValue, LineHeightTokenValue, OpacityTokenValue, ParagraphSpacingTokenValue, ProductCopyTokenValue, RadiusTokenValue, RawValue, SizeTokenValue, SpaceTokenValue, StringTokenValue, TextCaseTokenValue, TextDecorationTokenValue, VisibilityTokenValue, ZIndexTokenValue } from "../model/tokens/SDKTokenValue";
21
+ import { AnyToken, AnyMultiLayerToken, AnySingleLayerToken, AnyStringTokenValue, AnyTokenValue, BorderWidthTokenValue, ColorTokenValue, ColorValue, DimensionTokenValue, DurationTokenValue, FontFamilyTokenValue, FontSizeTokenValue, FontWeightTokenValue, LetterSpacingTokenValue, LineHeightTokenValue, OpacityTokenValue, ParagraphSpacingTokenValue, ProductCopyTokenValue, RadiusTokenValue, RawValue, SizeTokenValue, SpaceTokenValue, StringTokenValue, TextCaseTokenValue, TextDecorationTokenValue, VisibilityTokenValue, ZIndexTokenValue } from "../model/tokens/SDKTokenValue";
15
22
  import { TypographyToken } from "../model/tokens/SDKTypographyToken";
16
23
  import { VisibilityToken } from "../model/tokens/SDKVisibilityToken";
24
+ import { DTProcessedTokenNode } from "../tools/design-tokens/utilities/SDKDTJSONConverter";
17
25
  type TokenMapCompletenessTypeCheck<T extends Record<TokenType, AnyToken>> = T;
18
26
  type ActualTypeToTokenMap = {
19
27
  [TokenType.color]: ColorToken;
@@ -307,6 +315,6 @@ export declare class TokenUtils {
307
315
  static getTokenByKeyOrFallbackKeys<T extends DTProcessedTokenNode | Token>(node: Pick<DTProcessedTokenNode, "path" | "token">, map: Map<string, T>): T | undefined;
308
316
  static getKeysByKeyOrFallbackKeys(node: Pick<DTProcessedTokenNode, "path" | "token">): string[];
309
317
  static getTokenByKeyOrBackwardKey(node: Pick<DTProcessedTokenNode, "path" | "token">, map: Map<string, DTProcessedTokenNode>): DTProcessedTokenNode | undefined;
310
- static getTextCaseTokenValue(value: TextCase): "Uppercase" | "Lowercase" | "Capitalize" | "Small caps" | "Original";
318
+ static getTextCaseTokenValue(value: TextCase): "Original" | "Uppercase" | "Lowercase" | "Capitalize" | "Small caps";
311
319
  }
312
320
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supernova-studio/supernova-sdk-beta",
3
- "version": "2.4.11",
3
+ "version": "2.5.1",
4
4
  "description": "Supernova.io SDK",
5
5
  "main": "./build/supernova-sdk-typescript.js",
6
6
  "types": "./build/types/index.d.ts",
@@ -26,7 +26,6 @@
26
26
  "build": "Clean and rebuild the project",
27
27
  "test": "Lint and unit test the project",
28
28
  "watch": "Watch and rebuild the project on save, then rerun relevant tests",
29
- "cov": "Rebuild, run tests, then create and open the coverage report",
30
29
  "doc": "Generate HTML API documentation and open it in a browser",
31
30
  "doc:json": "Generate API documentation in typedoc JSON format",
32
31
  "version": "Bump package.json version, update CHANGELOG.md, tag release",
@@ -38,54 +37,37 @@
38
37
  "node": ">=18"
39
38
  },
40
39
  "dependencies": {
41
- "async-mutex": "0.3.2",
42
- "color-string": "1.9.1",
43
40
  "color2k": "2.0.4",
44
41
  "fuse.js": "6.6.2",
45
42
  "lodash": "4.18.1",
46
- "parse-color": "1.0.0",
47
43
  "tinycolor2": "1.6.0",
48
44
  "uuid": "14.0.0",
45
+ "zod": "4.4.3",
49
46
  "@supernova-studio/client": "1.96.10",
50
47
  "@supernova-studio/model": "1.96.10"
51
48
  },
52
49
  "devDependencies": {
53
- "@istanbuljs/nyc-config-typescript": "0.1.3",
54
50
  "@types/lodash": "4.17.24",
55
- "@types/parse-color": "1.0.3",
56
51
  "@types/tinycolor2": "1.4.6",
57
52
  "dotenv": "16.0.3",
58
- "esm": "3.2.25",
59
- "nyc": "17.1.0",
60
53
  "readable-stream": "4.7.0",
61
- "trash-cli": "5.0.0",
62
54
  "ts-loader": "9.6.2",
63
55
  "tsconfig-paths-webpack-plugin": "4.2.0",
64
- "tsx": "4.19.3",
65
56
  "vitest": "4.1.4",
66
57
  "webpack": "5.108.4",
67
58
  "webpack-cli": "6.0.1",
68
59
  "webpack-node-externals": "3.0.0",
69
60
  "@supernovaio/typescript-with-config": "1.3.28",
70
- "eslint-config-supernova": "0.0.0"
71
- },
72
- "config": {},
73
- "nyc": {
74
- "extends": "@istanbuljs/nyc-config-typescript",
75
- "exclude": [
76
- "**/*.spec.js"
77
- ]
61
+ "@supernovaio/lint-rules": "0.0.0"
78
62
  },
79
63
  "optionalDependencies": {
80
64
  "@rollup/rollup-darwin-x64": "4.59.0"
81
65
  },
82
66
  "scripts": {
83
67
  "build:production": "pnpm clean && webpack --mode production --config ./webpack.config.sdk.js && pnpm build:types",
84
- "build:types": "tsc --noCheck --declaration --emitDeclarationOnly --declarationMap false --skipLibCheck --module CommonJS --target ES2020 --moduleResolution node --esModuleInterop --outDir build/types src/index.ts",
68
+ "build:types": "tsc --ignoreConfig --strict false --noCheck --declaration --emitDeclarationOnly --declarationMap false --skipLibCheck --module CommonJS --target ES2020 --moduleResolution bundler --esModuleInterop --outDir build/types src/index.ts",
85
69
  "build-sdk": "pnpm build:production",
86
- "clean": "trash build test",
87
- "lint": "eslint 'src/**/*.ts*'",
88
- "lint:fix": "eslint 'src/**/*.ts*' --fix",
70
+ "clean": "rm -rf build",
89
71
  "test": "pnpm test:unit",
90
72
  "test:unit": "vitest run --config vitest.config.ts --reporter verbose",
91
73
  "test:watch": "vitest --config vitest.config.ts --watch",
@@ -1,4 +0,0 @@
1
- import { DTPluginUnresolvableRefMode } from "../SDKDTMapLoader";
2
- import { UnresolvableModeHandler } from "./types";
3
- export * from "./types";
4
- export declare const UNRESOLVABLE_MODE_HANDLERS: Record<DTPluginUnresolvableRefMode, UnresolvableModeHandler>;
@@ -1,2 +0,0 @@
1
- import { UnresolvableModeHandler } from "./types";
2
- export declare const lenientResolveHandler: UnresolvableModeHandler;
@@ -1,2 +0,0 @@
1
- import { UnresolvableModeHandler } from "./types";
2
- export declare const placeholderHandler: UnresolvableModeHandler;
@@ -1,2 +0,0 @@
1
- import { UnresolvableModeHandler } from "./types";
2
- export declare const preserveHandler: UnresolvableModeHandler;
@@ -1,2 +0,0 @@
1
- import { UnresolvableModeHandler } from "./types";
2
- export declare const strictHandler: UnresolvableModeHandler;