@arronqzy/blueprint-dsl 1.0.9 → 1.0.11

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/index.d.cts CHANGED
@@ -327,6 +327,47 @@ declare function validateJsonString(jsonString: string): {
327
327
  };
328
328
  declare function parseJsonConfig(config: JsonNodeConfig): unknown;
329
329
 
330
+ type StorageKind = "session" | "local";
331
+ type StorageReadConfig = {
332
+ storage: StorageKind;
333
+ key: string;
334
+ };
335
+ type StorageSetConfig = {
336
+ storages: StorageKind[];
337
+ key: string;
338
+ value: string;
339
+ };
340
+ type StorageNodeConfig = {
341
+ read: StorageReadConfig;
342
+ set: StorageSetConfig;
343
+ };
344
+ declare const STORAGE_KINDS: StorageKind[];
345
+ declare const DEFAULT_STORAGE_NODE_CONFIG: StorageNodeConfig;
346
+ type WebStorageLike = {
347
+ getItem(key: string): string | null;
348
+ setItem(key: string, value: string): void;
349
+ };
350
+ type StorageAccessors = {
351
+ session?: WebStorageLike | null;
352
+ local?: WebStorageLike | null;
353
+ };
354
+ declare function uniqueStorageKinds(kinds?: readonly unknown[]): StorageKind[];
355
+ declare function normalizeStorageConfig(config?: Partial<StorageNodeConfig> | null): StorageNodeConfig;
356
+ declare function isStorageReadConfigured(config: Pick<StorageNodeConfig, "read">): boolean;
357
+ declare function isStorageSetConfigured(config: Pick<StorageNodeConfig, "set">): boolean;
358
+ declare function resolveStorageWriteValue(template: string, scope: unknown): unknown;
359
+ declare function serializeStorageValue(value: unknown): string;
360
+ declare function deserializeStorageValue(raw: string | null): unknown;
361
+ /** 先设置再读取。未配置设置则不写入;未配置读取则返回空。 */
362
+ declare function executeStorageConfig(config: StorageNodeConfig, incomingScope: unknown, accessors?: StorageAccessors | null): unknown;
363
+
364
+ /**
365
+ * Isolate IndexedDB / localStorage / BroadcastChannel per App instance.
366
+ * Empty or omitted keeps the legacy global store names.
367
+ */
368
+ declare function normalizeAppNameSpace(value?: string | null): string;
369
+ declare function appStorageKey(base: string, nameSpace?: string | null): string;
370
+
330
371
  type LogicNodeConfig = {
331
372
  /** 用户手写的 update(input) 函数脚本 */
332
373
  sourceCode: string;
@@ -524,6 +565,7 @@ declare const DEFAULT_LOGIC_NODE_TYPE = "Logic";
524
565
  declare const LIFECYCLE_NODE_TYPE = "Lifecycle";
525
566
  declare const FETCH_NODE_TYPE = "DataFetch";
526
567
  declare const JSON_NODE_TYPE = "JsonNode";
568
+ declare const STORAGE_NODE_TYPE = "StorageNode";
527
569
  declare const CLOCK_NODE_TYPE = "Clock";
528
570
  declare const AND_NODE_TYPE = "AndLogic";
529
571
  declare const VIEW_NODE_TYPE = "ViewBind";
@@ -537,6 +579,8 @@ declare const lifecycleNodeDefinition: NodeDefinition;
537
579
  declare const fetchNodeDefinition: NodeDefinition;
538
580
  /** JSON 解析:收到真信号后将配置的 JSON 转为 object 输出 */
539
581
  declare const jsonNodeDefinition: NodeDefinition;
582
+ /** 存储节点:收到真信号后先写入再读取 sessionStorage / localStorage */
583
+ declare const storageNodeDefinition: NodeDefinition;
540
584
  /** 时钟节点:收到真信号后按间隔输出含当前时间的真信号 */
541
585
  declare const clockNodeDefinition: NodeDefinition;
542
586
  /** 并运算:两路输入均为真时输出真信号;单端口多连线按「或」合并 */
@@ -561,6 +605,7 @@ type RunnableGraphNode = {
561
605
  viewElementIds?: string[];
562
606
  fetchConfig?: FetchRequestConfig;
563
607
  jsonConfig?: JsonNodeConfig;
608
+ storageConfig?: StorageNodeConfig;
564
609
  logicConfig?: LogicNodeConfig;
565
610
  clockConfig?: ClockNodeConfig;
566
611
  eventConfig?: ViewEventNodeConfig;
@@ -674,6 +719,7 @@ declare class BlueprintGraphRunner {
674
719
  private registerFetchBehavior;
675
720
  private registerLogicBehavior;
676
721
  private registerJsonBehavior;
722
+ private registerStorageBehavior;
677
723
  private registerClockBehavior;
678
724
  private registerAndBehavior;
679
725
  private registerViewBindBehavior;
@@ -736,4 +782,4 @@ declare function isClockNodeActive(nodeId: string): boolean;
736
782
  declare function getActiveClockNodeIds(): string[];
737
783
  declare function subscribeActiveClockNodes(listener: () => void): () => boolean;
738
784
 
739
- export { AND_NODE_TYPE, BLUEPRINT_ACTIVATION_INPUT_KEY, BLUEPRINT_CALL_STACK_KEY, BLUEPRINT_NODE_TYPE, type Behavior, type BehaviorContext, type BehaviorFn, BehaviorRegistry, type BlueprintCycleCheckOptions, type BlueprintCycleCheckResult, BlueprintCycleError, BlueprintGraphRunner, type BlueprintNodeOutputs, type BlueprintRefOutput, CLOCK_NODE_TYPE, type ClockNodeConfig, type ClockSignalOutput, DEFAULT_CLOCK_NODE_CONFIG, DEFAULT_FETCH_REQUEST_CONFIG, DEFAULT_JSON_NODE_CONFIG, DEFAULT_LOGIC_NODE_CONFIG, DEFAULT_LOGIC_NODE_TYPE, DEFAULT_VIEW_EVENT_NODE_CONFIG, EVENT_NODE_TYPE, type ExecuteFetchOptions, type ExecutionRunRecord, type ExecutionToken, type ExecutionTraceEntry, Executor, type ExecutorDeps, FETCH_CACHES, FETCH_CREDENTIALS, FETCH_HTTP_METHODS, FETCH_MODES, FETCH_NODE_TYPE, FETCH_REDIRECTS, FETCH_RESPONSE_TYPES, FETCH_SCOPE_AUTOCOMPLETE_FALLBACK, type FalseSignal, type FetchHttpMethod, type FetchRequestConfig, type FetchResponseType, type FetchResultValue, type FetchUrlInputMode, type IncomingGraphEdge, type IncomingNodeScope, type IncomingNodeScopeEntry, type IncomingNodeSource, JSON_NODE_TYPE, type JsonNodeConfig, LIFECYCLE_NODE_TYPE, LIFECYCLE_SIGNAL_KEY, type LibraryBlueprintResolver, type LifecycleSignal, type LogicNodeConfig, type NodeDefinition, type NodeSignal, PAGE_LIFECYCLE_LABELS, PAGE_LIFECYCLE_PHASES, type PageLifecyclePhase, type ParsedSwaggerDocument, type PortSpec, type RunnableGraph, type RunnableGraphEdge, type RunnableGraphNode, type Scope, type ScopeAutocompleteState, type SwaggerApiEndpoint, type TrueSignal, UI_EVENT_PAYLOAD_KEY, VIEW_EVENT_SIGNAL_KEY, VIEW_EVENT_TYPES, VIEW_NODE_TYPE, type Value, type ViewEventNodeConfig, type ViewEventNodeSnapshot, type ViewEventSignal, type ViewEventSnapshot, type ViewEventType, type ViewScopeUpdateCallback, abortClockNode, abortClockSession, andLogicNodeDefinition, applyFetchConfigScope, applyScopeAutocompleteSelection, assertNoBlueprintReferenceCycle, blueprintNodeDefinition, buildClockSessionKey, buildClockSignalValue, buildEndpointFullUrl, buildEndpointSuggestions, buildIncomingNodeScope, buildScopeExpression, clearClockSessionAbort, clockNodeDefinition, collectArmedViewEventBindings, collectArmedViewEventNodeIds, collectBlueprintLibraryRefs, collectIncomingNodeScopeEntries, collectViewEventBindings, combinePortSignalsOr, createClockOutputValue, createFalseSignal, createIncomingNodeScopeEntry, createLifecycleSignal, createTraceEntryId, createTrueSignal, createViewEventSignal, defaultLogicNodeDefinition, detectBlueprintReferenceCycle, detectRuntimeBlueprintCycle, draftFetchHeadersText, evaluateScopeExpression, evaluateScopeTemplate, evaluateScopeTemplateInJson, executeFetch, executeLogicConfig, fetchConfigHasScopeTemplate, fetchNodeDefinition, filterEndpointSuggestions, formatBlueprintCycleMessage, formatClockTime, getActiveClockNodeIds, getClockTickDelayOffsetMs, getClockTickWaitMs, getFetchBodyValidationError, getFetchHeadersValidationError, getNodeDefinition, getScopeAutocompleteSuggestions, hasScopeTemplate, isClockNodeActive, isClockScheduleActive, isClockSessionAborted, isFalseSignal, isTrueSignal, isViewEventType, isWholeScopeExpression, jsonNodeDefinition, latestTraceOutputsByNode, lifecycleNodeDefinition, looksLikeJsonText, nodeDefinitionRegistry, normalizeClockConfig, normalizeFetchRequestConfig, normalizeViewEventConfig, parseFetchHeadersJson, parseJsonConfig, parseJsonText, parseScopeAutocomplete, parseSwaggerDocument, registerDefaultBehaviors, resolveBlueprintCallStack, resolveFetchBody, resolveFetchHeaders, resolveFetchIncomingScope, resolveFetchRequestUrl, resolveFetchScopeAutocompleteRoot, scheduleClockOutputs, serializeTraceValue, snapshotDomEvent, snapshotViewEventNode, startClockSchedule, stopAllClockSchedules, stopClockSchedule, stringifyScopeValue, subscribeActiveClockNodes, validateClockScheduleConfig, validateFetchJsonText, validateJsonString, validateLogicSourceCode, viewBindNodeDefinition, viewEventNodeDefinition };
785
+ export { AND_NODE_TYPE, BLUEPRINT_ACTIVATION_INPUT_KEY, BLUEPRINT_CALL_STACK_KEY, BLUEPRINT_NODE_TYPE, type Behavior, type BehaviorContext, type BehaviorFn, BehaviorRegistry, type BlueprintCycleCheckOptions, type BlueprintCycleCheckResult, BlueprintCycleError, BlueprintGraphRunner, type BlueprintNodeOutputs, type BlueprintRefOutput, CLOCK_NODE_TYPE, type ClockNodeConfig, type ClockSignalOutput, DEFAULT_CLOCK_NODE_CONFIG, DEFAULT_FETCH_REQUEST_CONFIG, DEFAULT_JSON_NODE_CONFIG, DEFAULT_LOGIC_NODE_CONFIG, DEFAULT_LOGIC_NODE_TYPE, DEFAULT_STORAGE_NODE_CONFIG, DEFAULT_VIEW_EVENT_NODE_CONFIG, EVENT_NODE_TYPE, type ExecuteFetchOptions, type ExecutionRunRecord, type ExecutionToken, type ExecutionTraceEntry, Executor, type ExecutorDeps, FETCH_CACHES, FETCH_CREDENTIALS, FETCH_HTTP_METHODS, FETCH_MODES, FETCH_NODE_TYPE, FETCH_REDIRECTS, FETCH_RESPONSE_TYPES, FETCH_SCOPE_AUTOCOMPLETE_FALLBACK, type FalseSignal, type FetchHttpMethod, type FetchRequestConfig, type FetchResponseType, type FetchResultValue, type FetchUrlInputMode, type IncomingGraphEdge, type IncomingNodeScope, type IncomingNodeScopeEntry, type IncomingNodeSource, JSON_NODE_TYPE, type JsonNodeConfig, LIFECYCLE_NODE_TYPE, LIFECYCLE_SIGNAL_KEY, type LibraryBlueprintResolver, type LifecycleSignal, type LogicNodeConfig, type NodeDefinition, type NodeSignal, PAGE_LIFECYCLE_LABELS, PAGE_LIFECYCLE_PHASES, type PageLifecyclePhase, type ParsedSwaggerDocument, type PortSpec, type RunnableGraph, type RunnableGraphEdge, type RunnableGraphNode, STORAGE_KINDS, STORAGE_NODE_TYPE, type Scope, type ScopeAutocompleteState, type StorageAccessors, type StorageKind, type StorageNodeConfig, type StorageReadConfig, type StorageSetConfig, type SwaggerApiEndpoint, type TrueSignal, UI_EVENT_PAYLOAD_KEY, VIEW_EVENT_SIGNAL_KEY, VIEW_EVENT_TYPES, VIEW_NODE_TYPE, type Value, type ViewEventNodeConfig, type ViewEventNodeSnapshot, type ViewEventSignal, type ViewEventSnapshot, type ViewEventType, type ViewScopeUpdateCallback, type WebStorageLike, abortClockNode, abortClockSession, andLogicNodeDefinition, appStorageKey, applyFetchConfigScope, applyScopeAutocompleteSelection, assertNoBlueprintReferenceCycle, blueprintNodeDefinition, buildClockSessionKey, buildClockSignalValue, buildEndpointFullUrl, buildEndpointSuggestions, buildIncomingNodeScope, buildScopeExpression, clearClockSessionAbort, clockNodeDefinition, collectArmedViewEventBindings, collectArmedViewEventNodeIds, collectBlueprintLibraryRefs, collectIncomingNodeScopeEntries, collectViewEventBindings, combinePortSignalsOr, createClockOutputValue, createFalseSignal, createIncomingNodeScopeEntry, createLifecycleSignal, createTraceEntryId, createTrueSignal, createViewEventSignal, defaultLogicNodeDefinition, deserializeStorageValue, detectBlueprintReferenceCycle, detectRuntimeBlueprintCycle, draftFetchHeadersText, evaluateScopeExpression, evaluateScopeTemplate, evaluateScopeTemplateInJson, executeFetch, executeLogicConfig, executeStorageConfig, fetchConfigHasScopeTemplate, fetchNodeDefinition, filterEndpointSuggestions, formatBlueprintCycleMessage, formatClockTime, getActiveClockNodeIds, getClockTickDelayOffsetMs, getClockTickWaitMs, getFetchBodyValidationError, getFetchHeadersValidationError, getNodeDefinition, getScopeAutocompleteSuggestions, hasScopeTemplate, isClockNodeActive, isClockScheduleActive, isClockSessionAborted, isFalseSignal, isStorageReadConfigured, isStorageSetConfigured, isTrueSignal, isViewEventType, isWholeScopeExpression, jsonNodeDefinition, latestTraceOutputsByNode, lifecycleNodeDefinition, looksLikeJsonText, nodeDefinitionRegistry, normalizeAppNameSpace, normalizeClockConfig, normalizeFetchRequestConfig, normalizeStorageConfig, normalizeViewEventConfig, parseFetchHeadersJson, parseJsonConfig, parseJsonText, parseScopeAutocomplete, parseSwaggerDocument, registerDefaultBehaviors, resolveBlueprintCallStack, resolveFetchBody, resolveFetchHeaders, resolveFetchIncomingScope, resolveFetchRequestUrl, resolveFetchScopeAutocompleteRoot, resolveStorageWriteValue, scheduleClockOutputs, serializeStorageValue, serializeTraceValue, snapshotDomEvent, snapshotViewEventNode, startClockSchedule, stopAllClockSchedules, stopClockSchedule, storageNodeDefinition, stringifyScopeValue, subscribeActiveClockNodes, uniqueStorageKinds, validateClockScheduleConfig, validateFetchJsonText, validateJsonString, validateLogicSourceCode, viewBindNodeDefinition, viewEventNodeDefinition };
package/dist/index.d.ts CHANGED
@@ -327,6 +327,47 @@ declare function validateJsonString(jsonString: string): {
327
327
  };
328
328
  declare function parseJsonConfig(config: JsonNodeConfig): unknown;
329
329
 
330
+ type StorageKind = "session" | "local";
331
+ type StorageReadConfig = {
332
+ storage: StorageKind;
333
+ key: string;
334
+ };
335
+ type StorageSetConfig = {
336
+ storages: StorageKind[];
337
+ key: string;
338
+ value: string;
339
+ };
340
+ type StorageNodeConfig = {
341
+ read: StorageReadConfig;
342
+ set: StorageSetConfig;
343
+ };
344
+ declare const STORAGE_KINDS: StorageKind[];
345
+ declare const DEFAULT_STORAGE_NODE_CONFIG: StorageNodeConfig;
346
+ type WebStorageLike = {
347
+ getItem(key: string): string | null;
348
+ setItem(key: string, value: string): void;
349
+ };
350
+ type StorageAccessors = {
351
+ session?: WebStorageLike | null;
352
+ local?: WebStorageLike | null;
353
+ };
354
+ declare function uniqueStorageKinds(kinds?: readonly unknown[]): StorageKind[];
355
+ declare function normalizeStorageConfig(config?: Partial<StorageNodeConfig> | null): StorageNodeConfig;
356
+ declare function isStorageReadConfigured(config: Pick<StorageNodeConfig, "read">): boolean;
357
+ declare function isStorageSetConfigured(config: Pick<StorageNodeConfig, "set">): boolean;
358
+ declare function resolveStorageWriteValue(template: string, scope: unknown): unknown;
359
+ declare function serializeStorageValue(value: unknown): string;
360
+ declare function deserializeStorageValue(raw: string | null): unknown;
361
+ /** 先设置再读取。未配置设置则不写入;未配置读取则返回空。 */
362
+ declare function executeStorageConfig(config: StorageNodeConfig, incomingScope: unknown, accessors?: StorageAccessors | null): unknown;
363
+
364
+ /**
365
+ * Isolate IndexedDB / localStorage / BroadcastChannel per App instance.
366
+ * Empty or omitted keeps the legacy global store names.
367
+ */
368
+ declare function normalizeAppNameSpace(value?: string | null): string;
369
+ declare function appStorageKey(base: string, nameSpace?: string | null): string;
370
+
330
371
  type LogicNodeConfig = {
331
372
  /** 用户手写的 update(input) 函数脚本 */
332
373
  sourceCode: string;
@@ -524,6 +565,7 @@ declare const DEFAULT_LOGIC_NODE_TYPE = "Logic";
524
565
  declare const LIFECYCLE_NODE_TYPE = "Lifecycle";
525
566
  declare const FETCH_NODE_TYPE = "DataFetch";
526
567
  declare const JSON_NODE_TYPE = "JsonNode";
568
+ declare const STORAGE_NODE_TYPE = "StorageNode";
527
569
  declare const CLOCK_NODE_TYPE = "Clock";
528
570
  declare const AND_NODE_TYPE = "AndLogic";
529
571
  declare const VIEW_NODE_TYPE = "ViewBind";
@@ -537,6 +579,8 @@ declare const lifecycleNodeDefinition: NodeDefinition;
537
579
  declare const fetchNodeDefinition: NodeDefinition;
538
580
  /** JSON 解析:收到真信号后将配置的 JSON 转为 object 输出 */
539
581
  declare const jsonNodeDefinition: NodeDefinition;
582
+ /** 存储节点:收到真信号后先写入再读取 sessionStorage / localStorage */
583
+ declare const storageNodeDefinition: NodeDefinition;
540
584
  /** 时钟节点:收到真信号后按间隔输出含当前时间的真信号 */
541
585
  declare const clockNodeDefinition: NodeDefinition;
542
586
  /** 并运算:两路输入均为真时输出真信号;单端口多连线按「或」合并 */
@@ -561,6 +605,7 @@ type RunnableGraphNode = {
561
605
  viewElementIds?: string[];
562
606
  fetchConfig?: FetchRequestConfig;
563
607
  jsonConfig?: JsonNodeConfig;
608
+ storageConfig?: StorageNodeConfig;
564
609
  logicConfig?: LogicNodeConfig;
565
610
  clockConfig?: ClockNodeConfig;
566
611
  eventConfig?: ViewEventNodeConfig;
@@ -674,6 +719,7 @@ declare class BlueprintGraphRunner {
674
719
  private registerFetchBehavior;
675
720
  private registerLogicBehavior;
676
721
  private registerJsonBehavior;
722
+ private registerStorageBehavior;
677
723
  private registerClockBehavior;
678
724
  private registerAndBehavior;
679
725
  private registerViewBindBehavior;
@@ -736,4 +782,4 @@ declare function isClockNodeActive(nodeId: string): boolean;
736
782
  declare function getActiveClockNodeIds(): string[];
737
783
  declare function subscribeActiveClockNodes(listener: () => void): () => boolean;
738
784
 
739
- export { AND_NODE_TYPE, BLUEPRINT_ACTIVATION_INPUT_KEY, BLUEPRINT_CALL_STACK_KEY, BLUEPRINT_NODE_TYPE, type Behavior, type BehaviorContext, type BehaviorFn, BehaviorRegistry, type BlueprintCycleCheckOptions, type BlueprintCycleCheckResult, BlueprintCycleError, BlueprintGraphRunner, type BlueprintNodeOutputs, type BlueprintRefOutput, CLOCK_NODE_TYPE, type ClockNodeConfig, type ClockSignalOutput, DEFAULT_CLOCK_NODE_CONFIG, DEFAULT_FETCH_REQUEST_CONFIG, DEFAULT_JSON_NODE_CONFIG, DEFAULT_LOGIC_NODE_CONFIG, DEFAULT_LOGIC_NODE_TYPE, DEFAULT_VIEW_EVENT_NODE_CONFIG, EVENT_NODE_TYPE, type ExecuteFetchOptions, type ExecutionRunRecord, type ExecutionToken, type ExecutionTraceEntry, Executor, type ExecutorDeps, FETCH_CACHES, FETCH_CREDENTIALS, FETCH_HTTP_METHODS, FETCH_MODES, FETCH_NODE_TYPE, FETCH_REDIRECTS, FETCH_RESPONSE_TYPES, FETCH_SCOPE_AUTOCOMPLETE_FALLBACK, type FalseSignal, type FetchHttpMethod, type FetchRequestConfig, type FetchResponseType, type FetchResultValue, type FetchUrlInputMode, type IncomingGraphEdge, type IncomingNodeScope, type IncomingNodeScopeEntry, type IncomingNodeSource, JSON_NODE_TYPE, type JsonNodeConfig, LIFECYCLE_NODE_TYPE, LIFECYCLE_SIGNAL_KEY, type LibraryBlueprintResolver, type LifecycleSignal, type LogicNodeConfig, type NodeDefinition, type NodeSignal, PAGE_LIFECYCLE_LABELS, PAGE_LIFECYCLE_PHASES, type PageLifecyclePhase, type ParsedSwaggerDocument, type PortSpec, type RunnableGraph, type RunnableGraphEdge, type RunnableGraphNode, type Scope, type ScopeAutocompleteState, type SwaggerApiEndpoint, type TrueSignal, UI_EVENT_PAYLOAD_KEY, VIEW_EVENT_SIGNAL_KEY, VIEW_EVENT_TYPES, VIEW_NODE_TYPE, type Value, type ViewEventNodeConfig, type ViewEventNodeSnapshot, type ViewEventSignal, type ViewEventSnapshot, type ViewEventType, type ViewScopeUpdateCallback, abortClockNode, abortClockSession, andLogicNodeDefinition, applyFetchConfigScope, applyScopeAutocompleteSelection, assertNoBlueprintReferenceCycle, blueprintNodeDefinition, buildClockSessionKey, buildClockSignalValue, buildEndpointFullUrl, buildEndpointSuggestions, buildIncomingNodeScope, buildScopeExpression, clearClockSessionAbort, clockNodeDefinition, collectArmedViewEventBindings, collectArmedViewEventNodeIds, collectBlueprintLibraryRefs, collectIncomingNodeScopeEntries, collectViewEventBindings, combinePortSignalsOr, createClockOutputValue, createFalseSignal, createIncomingNodeScopeEntry, createLifecycleSignal, createTraceEntryId, createTrueSignal, createViewEventSignal, defaultLogicNodeDefinition, detectBlueprintReferenceCycle, detectRuntimeBlueprintCycle, draftFetchHeadersText, evaluateScopeExpression, evaluateScopeTemplate, evaluateScopeTemplateInJson, executeFetch, executeLogicConfig, fetchConfigHasScopeTemplate, fetchNodeDefinition, filterEndpointSuggestions, formatBlueprintCycleMessage, formatClockTime, getActiveClockNodeIds, getClockTickDelayOffsetMs, getClockTickWaitMs, getFetchBodyValidationError, getFetchHeadersValidationError, getNodeDefinition, getScopeAutocompleteSuggestions, hasScopeTemplate, isClockNodeActive, isClockScheduleActive, isClockSessionAborted, isFalseSignal, isTrueSignal, isViewEventType, isWholeScopeExpression, jsonNodeDefinition, latestTraceOutputsByNode, lifecycleNodeDefinition, looksLikeJsonText, nodeDefinitionRegistry, normalizeClockConfig, normalizeFetchRequestConfig, normalizeViewEventConfig, parseFetchHeadersJson, parseJsonConfig, parseJsonText, parseScopeAutocomplete, parseSwaggerDocument, registerDefaultBehaviors, resolveBlueprintCallStack, resolveFetchBody, resolveFetchHeaders, resolveFetchIncomingScope, resolveFetchRequestUrl, resolveFetchScopeAutocompleteRoot, scheduleClockOutputs, serializeTraceValue, snapshotDomEvent, snapshotViewEventNode, startClockSchedule, stopAllClockSchedules, stopClockSchedule, stringifyScopeValue, subscribeActiveClockNodes, validateClockScheduleConfig, validateFetchJsonText, validateJsonString, validateLogicSourceCode, viewBindNodeDefinition, viewEventNodeDefinition };
785
+ export { AND_NODE_TYPE, BLUEPRINT_ACTIVATION_INPUT_KEY, BLUEPRINT_CALL_STACK_KEY, BLUEPRINT_NODE_TYPE, type Behavior, type BehaviorContext, type BehaviorFn, BehaviorRegistry, type BlueprintCycleCheckOptions, type BlueprintCycleCheckResult, BlueprintCycleError, BlueprintGraphRunner, type BlueprintNodeOutputs, type BlueprintRefOutput, CLOCK_NODE_TYPE, type ClockNodeConfig, type ClockSignalOutput, DEFAULT_CLOCK_NODE_CONFIG, DEFAULT_FETCH_REQUEST_CONFIG, DEFAULT_JSON_NODE_CONFIG, DEFAULT_LOGIC_NODE_CONFIG, DEFAULT_LOGIC_NODE_TYPE, DEFAULT_STORAGE_NODE_CONFIG, DEFAULT_VIEW_EVENT_NODE_CONFIG, EVENT_NODE_TYPE, type ExecuteFetchOptions, type ExecutionRunRecord, type ExecutionToken, type ExecutionTraceEntry, Executor, type ExecutorDeps, FETCH_CACHES, FETCH_CREDENTIALS, FETCH_HTTP_METHODS, FETCH_MODES, FETCH_NODE_TYPE, FETCH_REDIRECTS, FETCH_RESPONSE_TYPES, FETCH_SCOPE_AUTOCOMPLETE_FALLBACK, type FalseSignal, type FetchHttpMethod, type FetchRequestConfig, type FetchResponseType, type FetchResultValue, type FetchUrlInputMode, type IncomingGraphEdge, type IncomingNodeScope, type IncomingNodeScopeEntry, type IncomingNodeSource, JSON_NODE_TYPE, type JsonNodeConfig, LIFECYCLE_NODE_TYPE, LIFECYCLE_SIGNAL_KEY, type LibraryBlueprintResolver, type LifecycleSignal, type LogicNodeConfig, type NodeDefinition, type NodeSignal, PAGE_LIFECYCLE_LABELS, PAGE_LIFECYCLE_PHASES, type PageLifecyclePhase, type ParsedSwaggerDocument, type PortSpec, type RunnableGraph, type RunnableGraphEdge, type RunnableGraphNode, STORAGE_KINDS, STORAGE_NODE_TYPE, type Scope, type ScopeAutocompleteState, type StorageAccessors, type StorageKind, type StorageNodeConfig, type StorageReadConfig, type StorageSetConfig, type SwaggerApiEndpoint, type TrueSignal, UI_EVENT_PAYLOAD_KEY, VIEW_EVENT_SIGNAL_KEY, VIEW_EVENT_TYPES, VIEW_NODE_TYPE, type Value, type ViewEventNodeConfig, type ViewEventNodeSnapshot, type ViewEventSignal, type ViewEventSnapshot, type ViewEventType, type ViewScopeUpdateCallback, type WebStorageLike, abortClockNode, abortClockSession, andLogicNodeDefinition, appStorageKey, applyFetchConfigScope, applyScopeAutocompleteSelection, assertNoBlueprintReferenceCycle, blueprintNodeDefinition, buildClockSessionKey, buildClockSignalValue, buildEndpointFullUrl, buildEndpointSuggestions, buildIncomingNodeScope, buildScopeExpression, clearClockSessionAbort, clockNodeDefinition, collectArmedViewEventBindings, collectArmedViewEventNodeIds, collectBlueprintLibraryRefs, collectIncomingNodeScopeEntries, collectViewEventBindings, combinePortSignalsOr, createClockOutputValue, createFalseSignal, createIncomingNodeScopeEntry, createLifecycleSignal, createTraceEntryId, createTrueSignal, createViewEventSignal, defaultLogicNodeDefinition, deserializeStorageValue, detectBlueprintReferenceCycle, detectRuntimeBlueprintCycle, draftFetchHeadersText, evaluateScopeExpression, evaluateScopeTemplate, evaluateScopeTemplateInJson, executeFetch, executeLogicConfig, executeStorageConfig, fetchConfigHasScopeTemplate, fetchNodeDefinition, filterEndpointSuggestions, formatBlueprintCycleMessage, formatClockTime, getActiveClockNodeIds, getClockTickDelayOffsetMs, getClockTickWaitMs, getFetchBodyValidationError, getFetchHeadersValidationError, getNodeDefinition, getScopeAutocompleteSuggestions, hasScopeTemplate, isClockNodeActive, isClockScheduleActive, isClockSessionAborted, isFalseSignal, isStorageReadConfigured, isStorageSetConfigured, isTrueSignal, isViewEventType, isWholeScopeExpression, jsonNodeDefinition, latestTraceOutputsByNode, lifecycleNodeDefinition, looksLikeJsonText, nodeDefinitionRegistry, normalizeAppNameSpace, normalizeClockConfig, normalizeFetchRequestConfig, normalizeStorageConfig, normalizeViewEventConfig, parseFetchHeadersJson, parseJsonConfig, parseJsonText, parseScopeAutocomplete, parseSwaggerDocument, registerDefaultBehaviors, resolveBlueprintCallStack, resolveFetchBody, resolveFetchHeaders, resolveFetchIncomingScope, resolveFetchRequestUrl, resolveFetchScopeAutocompleteRoot, resolveStorageWriteValue, scheduleClockOutputs, serializeStorageValue, serializeTraceValue, snapshotDomEvent, snapshotViewEventNode, startClockSchedule, stopAllClockSchedules, stopClockSchedule, storageNodeDefinition, stringifyScopeValue, subscribeActiveClockNodes, uniqueStorageKinds, validateClockScheduleConfig, validateFetchJsonText, validateJsonString, validateLogicSourceCode, viewBindNodeDefinition, viewEventNodeDefinition };
package/dist/index.js CHANGED
@@ -810,6 +810,127 @@ function parseJsonConfig(config) {
810
810
  return result.value;
811
811
  }
812
812
 
813
+ // src/storage-config.ts
814
+ var STORAGE_KINDS = ["session", "local"];
815
+ var DEFAULT_STORAGE_NODE_CONFIG = {
816
+ read: { storage: "local", key: "" },
817
+ set: { storages: [], key: "", value: "" }
818
+ };
819
+ function isStorageKind(value) {
820
+ return value === "session" || value === "local";
821
+ }
822
+ function uniqueStorageKinds(kinds) {
823
+ const next = /* @__PURE__ */ new Set();
824
+ for (const kind of kinds ?? []) {
825
+ if (isStorageKind(kind)) next.add(kind);
826
+ }
827
+ return STORAGE_KINDS.filter((kind) => next.has(kind));
828
+ }
829
+ function normalizeStorageConfig(config) {
830
+ const read = config?.read;
831
+ const set = config?.set;
832
+ return {
833
+ read: {
834
+ storage: read?.storage === "session" ? "session" : "local",
835
+ key: typeof read?.key === "string" ? read.key : ""
836
+ },
837
+ set: {
838
+ storages: uniqueStorageKinds(set?.storages),
839
+ key: typeof set?.key === "string" ? set.key : "",
840
+ value: typeof set?.value === "string" ? set.value : ""
841
+ }
842
+ };
843
+ }
844
+ function isStorageReadConfigured(config) {
845
+ return Boolean(config.read?.key?.trim());
846
+ }
847
+ function isStorageSetConfigured(config) {
848
+ return Boolean(config.set?.key?.trim()) && (config.set?.storages?.length ?? 0) > 0;
849
+ }
850
+ function resolveStorageWriteValue(template, scope) {
851
+ const raw = template ?? "";
852
+ const trimmed = raw.trim();
853
+ if (!trimmed) return "";
854
+ if (isWholeScopeExpression(trimmed)) {
855
+ const value = evaluateScopeExpression(trimmed.slice(1, -1), scope);
856
+ return value === void 0 ? "" : value;
857
+ }
858
+ if (hasScopeTemplate(raw)) {
859
+ return evaluateScopeTemplate(raw, scope);
860
+ }
861
+ return raw;
862
+ }
863
+ function serializeStorageValue(value) {
864
+ if (value === void 0 || value === null) return "";
865
+ if (typeof value === "string") return value;
866
+ try {
867
+ return JSON.stringify(value);
868
+ } catch {
869
+ return String(value);
870
+ }
871
+ }
872
+ function deserializeStorageValue(raw) {
873
+ if (raw === null) return null;
874
+ const trimmed = raw.trim();
875
+ if (!trimmed) return raw;
876
+ if (!looksLikeJsonText(trimmed)) return raw;
877
+ try {
878
+ return JSON.parse(trimmed);
879
+ } catch {
880
+ return raw;
881
+ }
882
+ }
883
+ function getDefaultStorageAccessors() {
884
+ if (typeof window === "undefined") return null;
885
+ try {
886
+ return {
887
+ session: window.sessionStorage,
888
+ local: window.localStorage
889
+ };
890
+ } catch {
891
+ return null;
892
+ }
893
+ }
894
+ function requireStorage(accessors, kind) {
895
+ const target = kind === "session" ? accessors?.session : accessors?.local;
896
+ if (!target) {
897
+ throw new Error(
898
+ kind === "session" ? "\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301 sessionStorage" : "\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301 localStorage"
899
+ );
900
+ }
901
+ return target;
902
+ }
903
+ function executeStorageConfig(config, incomingScope, accessors) {
904
+ const normalized = normalizeStorageConfig(config);
905
+ const store = accessors === void 0 ? getDefaultStorageAccessors() : accessors;
906
+ if (isStorageSetConfigured(normalized)) {
907
+ const value = resolveStorageWriteValue(normalized.set.value, incomingScope);
908
+ const serialized = serializeStorageValue(value);
909
+ const key = normalized.set.key.trim();
910
+ for (const kind of normalized.set.storages) {
911
+ requireStorage(store, kind).setItem(key, serialized);
912
+ }
913
+ }
914
+ if (!isStorageReadConfigured(normalized)) {
915
+ return null;
916
+ }
917
+ return deserializeStorageValue(
918
+ requireStorage(store, normalized.read.storage).getItem(
919
+ normalized.read.key.trim()
920
+ )
921
+ );
922
+ }
923
+
924
+ // src/app-namespace.ts
925
+ function normalizeAppNameSpace(value) {
926
+ return (value ?? "").trim();
927
+ }
928
+ function appStorageKey(base, nameSpace) {
929
+ const ns = normalizeAppNameSpace(nameSpace);
930
+ if (!ns) return base;
931
+ return `${base}__${ns.slice(0, 120)}`;
932
+ }
933
+
813
934
  // src/logic-config.ts
814
935
  var DEFAULT_LOGIC_NODE_CONFIG = {
815
936
  sourceCode: `function update(input) {
@@ -1242,6 +1363,7 @@ var DEFAULT_LOGIC_NODE_TYPE = "Logic";
1242
1363
  var LIFECYCLE_NODE_TYPE = "Lifecycle";
1243
1364
  var FETCH_NODE_TYPE = "DataFetch";
1244
1365
  var JSON_NODE_TYPE = "JsonNode";
1366
+ var STORAGE_NODE_TYPE = "StorageNode";
1245
1367
  var CLOCK_NODE_TYPE = "Clock";
1246
1368
  var AND_NODE_TYPE = "AndLogic";
1247
1369
  var VIEW_NODE_TYPE = "ViewBind";
@@ -1276,6 +1398,12 @@ var jsonNodeDefinition = {
1276
1398
  outputs: [{ name: "out", kind: "data" }],
1277
1399
  behavior: { kind: "js", ref: "json-parse-run" }
1278
1400
  };
1401
+ var storageNodeDefinition = {
1402
+ type: STORAGE_NODE_TYPE,
1403
+ inputs: [{ name: "in", kind: "data" }],
1404
+ outputs: [{ name: "out", kind: "data" }],
1405
+ behavior: { kind: "js", ref: "storage-run" }
1406
+ };
1279
1407
  var clockNodeDefinition = {
1280
1408
  type: CLOCK_NODE_TYPE,
1281
1409
  inputs: [{ name: "in", kind: "data" }],
@@ -1309,6 +1437,7 @@ var nodeDefinitionRegistry = {
1309
1437
  [LIFECYCLE_NODE_TYPE]: lifecycleNodeDefinition,
1310
1438
  [FETCH_NODE_TYPE]: fetchNodeDefinition,
1311
1439
  [JSON_NODE_TYPE]: jsonNodeDefinition,
1440
+ [STORAGE_NODE_TYPE]: storageNodeDefinition,
1312
1441
  [CLOCK_NODE_TYPE]: clockNodeDefinition,
1313
1442
  [AND_NODE_TYPE]: andLogicNodeDefinition,
1314
1443
  [VIEW_NODE_TYPE]: viewBindNodeDefinition,
@@ -1495,6 +1624,7 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
1495
1624
  this.registerBlueprintRefBehavior();
1496
1625
  this.registerFetchBehavior();
1497
1626
  this.registerJsonBehavior();
1627
+ this.registerStorageBehavior();
1498
1628
  this.registerLogicBehavior();
1499
1629
  this.registerClockBehavior();
1500
1630
  this.registerAndBehavior();
@@ -2325,6 +2455,48 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
2325
2455
  io.emitFlow("out");
2326
2456
  });
2327
2457
  }
2458
+ registerStorageBehavior() {
2459
+ const runner = this;
2460
+ this.behaviors.registerJS("storage-run", async ({ token, io }) => {
2461
+ const node = runner.requireNode(token.nodeId);
2462
+ try {
2463
+ const inputPort = token.inPort || "in";
2464
+ const input = await io.getInput(inputPort);
2465
+ if (isFalseSignal(input)) {
2466
+ io.setOutput("out", input);
2467
+ io.emitFlow("out");
2468
+ return;
2469
+ }
2470
+ if (!isTrueSignal(input)) {
2471
+ io.setOutput(
2472
+ "out",
2473
+ createFalseSignal("\u5B58\u50A8\u8282\u70B9\u9700\u8981\u6536\u5230\u771F\u4FE1\u53F7\u540E\u624D\u4F1A\u8BFB\u5199\u7F13\u5B58")
2474
+ );
2475
+ io.emitFlow("out");
2476
+ return;
2477
+ }
2478
+ const incomingScope = runner.buildFetchIncomingScope(
2479
+ token.nodeId,
2480
+ inputPort,
2481
+ input
2482
+ );
2483
+ const config = normalizeStorageConfig({
2484
+ ...DEFAULT_STORAGE_NODE_CONFIG,
2485
+ ...node.storageConfig
2486
+ });
2487
+ const value = executeStorageConfig(config, incomingScope);
2488
+ io.setOutput("out", createTrueSignal(value));
2489
+ } catch (error) {
2490
+ io.setOutput(
2491
+ "out",
2492
+ createFalseSignal(
2493
+ error instanceof Error ? error.message : String(error)
2494
+ )
2495
+ );
2496
+ }
2497
+ io.emitFlow("out");
2498
+ });
2499
+ }
2328
2500
  registerClockBehavior() {
2329
2501
  const runner = this;
2330
2502
  this.behaviors.registerJS("clock-run", async ({ token, io }) => {
@@ -2580,6 +2752,6 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
2580
2752
  }
2581
2753
  };
2582
2754
 
2583
- export { AND_NODE_TYPE, BLUEPRINT_ACTIVATION_INPUT_KEY, BLUEPRINT_CALL_STACK_KEY, BLUEPRINT_NODE_TYPE, BehaviorRegistry, BlueprintCycleError, BlueprintGraphRunner, CLOCK_NODE_TYPE, DEFAULT_CLOCK_NODE_CONFIG, DEFAULT_FETCH_REQUEST_CONFIG, DEFAULT_JSON_NODE_CONFIG, DEFAULT_LOGIC_NODE_CONFIG, DEFAULT_LOGIC_NODE_TYPE, DEFAULT_VIEW_EVENT_NODE_CONFIG, EVENT_NODE_TYPE, Executor, FETCH_CACHES, FETCH_CREDENTIALS, FETCH_HTTP_METHODS, FETCH_MODES, FETCH_NODE_TYPE, FETCH_REDIRECTS, FETCH_RESPONSE_TYPES, FETCH_SCOPE_AUTOCOMPLETE_FALLBACK, JSON_NODE_TYPE, LIFECYCLE_NODE_TYPE, LIFECYCLE_SIGNAL_KEY, PAGE_LIFECYCLE_LABELS, PAGE_LIFECYCLE_PHASES, UI_EVENT_PAYLOAD_KEY, VIEW_EVENT_SIGNAL_KEY, VIEW_EVENT_TYPES, VIEW_NODE_TYPE, abortClockNode, abortClockSession, andLogicNodeDefinition, applyFetchConfigScope, applyScopeAutocompleteSelection, assertNoBlueprintReferenceCycle, blueprintNodeDefinition, buildClockSessionKey, buildClockSignalValue, buildEndpointFullUrl, buildEndpointSuggestions, buildIncomingNodeScope, buildScopeExpression, clearClockSessionAbort, clockNodeDefinition, collectArmedViewEventBindings, collectArmedViewEventNodeIds, collectBlueprintLibraryRefs, collectIncomingNodeScopeEntries, collectViewEventBindings, combinePortSignalsOr, createClockOutputValue, createFalseSignal, createIncomingNodeScopeEntry, createLifecycleSignal, createTraceEntryId, createTrueSignal, createViewEventSignal, defaultLogicNodeDefinition, detectBlueprintReferenceCycle, detectRuntimeBlueprintCycle, draftFetchHeadersText, evaluateScopeExpression, evaluateScopeTemplate, evaluateScopeTemplateInJson, executeFetch, executeLogicConfig, fetchConfigHasScopeTemplate, fetchNodeDefinition, filterEndpointSuggestions, formatBlueprintCycleMessage, formatClockTime, getActiveClockNodeIds, getClockTickDelayOffsetMs, getClockTickWaitMs, getFetchBodyValidationError, getFetchHeadersValidationError, getNodeDefinition, getScopeAutocompleteSuggestions, hasScopeTemplate, isClockNodeActive, isClockScheduleActive, isClockSessionAborted, isFalseSignal, isTrueSignal, isViewEventType, isWholeScopeExpression, jsonNodeDefinition, latestTraceOutputsByNode, lifecycleNodeDefinition, looksLikeJsonText, nodeDefinitionRegistry, normalizeClockConfig, normalizeFetchRequestConfig, normalizeViewEventConfig, parseFetchHeadersJson, parseJsonConfig, parseJsonText, parseScopeAutocomplete, parseSwaggerDocument, registerDefaultBehaviors, resolveBlueprintCallStack, resolveFetchBody, resolveFetchHeaders, resolveFetchIncomingScope, resolveFetchRequestUrl, resolveFetchScopeAutocompleteRoot, scheduleClockOutputs, serializeTraceValue, snapshotDomEvent, snapshotViewEventNode, startClockSchedule, stopAllClockSchedules, stopClockSchedule, stringifyScopeValue, subscribeActiveClockNodes, validateClockScheduleConfig, validateFetchJsonText, validateJsonString, validateLogicSourceCode, viewBindNodeDefinition, viewEventNodeDefinition };
2755
+ export { AND_NODE_TYPE, BLUEPRINT_ACTIVATION_INPUT_KEY, BLUEPRINT_CALL_STACK_KEY, BLUEPRINT_NODE_TYPE, BehaviorRegistry, BlueprintCycleError, BlueprintGraphRunner, CLOCK_NODE_TYPE, DEFAULT_CLOCK_NODE_CONFIG, DEFAULT_FETCH_REQUEST_CONFIG, DEFAULT_JSON_NODE_CONFIG, DEFAULT_LOGIC_NODE_CONFIG, DEFAULT_LOGIC_NODE_TYPE, DEFAULT_STORAGE_NODE_CONFIG, DEFAULT_VIEW_EVENT_NODE_CONFIG, EVENT_NODE_TYPE, Executor, FETCH_CACHES, FETCH_CREDENTIALS, FETCH_HTTP_METHODS, FETCH_MODES, FETCH_NODE_TYPE, FETCH_REDIRECTS, FETCH_RESPONSE_TYPES, FETCH_SCOPE_AUTOCOMPLETE_FALLBACK, JSON_NODE_TYPE, LIFECYCLE_NODE_TYPE, LIFECYCLE_SIGNAL_KEY, PAGE_LIFECYCLE_LABELS, PAGE_LIFECYCLE_PHASES, STORAGE_KINDS, STORAGE_NODE_TYPE, UI_EVENT_PAYLOAD_KEY, VIEW_EVENT_SIGNAL_KEY, VIEW_EVENT_TYPES, VIEW_NODE_TYPE, abortClockNode, abortClockSession, andLogicNodeDefinition, appStorageKey, applyFetchConfigScope, applyScopeAutocompleteSelection, assertNoBlueprintReferenceCycle, blueprintNodeDefinition, buildClockSessionKey, buildClockSignalValue, buildEndpointFullUrl, buildEndpointSuggestions, buildIncomingNodeScope, buildScopeExpression, clearClockSessionAbort, clockNodeDefinition, collectArmedViewEventBindings, collectArmedViewEventNodeIds, collectBlueprintLibraryRefs, collectIncomingNodeScopeEntries, collectViewEventBindings, combinePortSignalsOr, createClockOutputValue, createFalseSignal, createIncomingNodeScopeEntry, createLifecycleSignal, createTraceEntryId, createTrueSignal, createViewEventSignal, defaultLogicNodeDefinition, deserializeStorageValue, detectBlueprintReferenceCycle, detectRuntimeBlueprintCycle, draftFetchHeadersText, evaluateScopeExpression, evaluateScopeTemplate, evaluateScopeTemplateInJson, executeFetch, executeLogicConfig, executeStorageConfig, fetchConfigHasScopeTemplate, fetchNodeDefinition, filterEndpointSuggestions, formatBlueprintCycleMessage, formatClockTime, getActiveClockNodeIds, getClockTickDelayOffsetMs, getClockTickWaitMs, getFetchBodyValidationError, getFetchHeadersValidationError, getNodeDefinition, getScopeAutocompleteSuggestions, hasScopeTemplate, isClockNodeActive, isClockScheduleActive, isClockSessionAborted, isFalseSignal, isStorageReadConfigured, isStorageSetConfigured, isTrueSignal, isViewEventType, isWholeScopeExpression, jsonNodeDefinition, latestTraceOutputsByNode, lifecycleNodeDefinition, looksLikeJsonText, nodeDefinitionRegistry, normalizeAppNameSpace, normalizeClockConfig, normalizeFetchRequestConfig, normalizeStorageConfig, normalizeViewEventConfig, parseFetchHeadersJson, parseJsonConfig, parseJsonText, parseScopeAutocomplete, parseSwaggerDocument, registerDefaultBehaviors, resolveBlueprintCallStack, resolveFetchBody, resolveFetchHeaders, resolveFetchIncomingScope, resolveFetchRequestUrl, resolveFetchScopeAutocompleteRoot, resolveStorageWriteValue, scheduleClockOutputs, serializeStorageValue, serializeTraceValue, snapshotDomEvent, snapshotViewEventNode, startClockSchedule, stopAllClockSchedules, stopClockSchedule, storageNodeDefinition, stringifyScopeValue, subscribeActiveClockNodes, uniqueStorageKinds, validateClockScheduleConfig, validateFetchJsonText, validateJsonString, validateLogicSourceCode, viewBindNodeDefinition, viewEventNodeDefinition };
2584
2756
  //# sourceMappingURL=index.js.map
2585
2757
  //# sourceMappingURL=index.js.map