@next-core/storyboard 0.2.3 → 0.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","names":[],"sources":["../../src/interfaces.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n BrickMenuConf,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MessageConf,\n ResolveConf,\n RouteConf,\n ScrollIntoViewConf,\n SlotConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\n\nexport type StoryboardNode =\n | StoryboardNodeRoot\n | StoryboardNodeRoute\n | StoryboardNodeTemplate\n | StoryboardNodeBrick\n | StoryboardNodeSlot\n | StoryboardNodeContext\n | StoryboardNodeResolvable\n | StoryboardNodeMenu\n | StoryboardNodeLifeCycle\n | StoryboardNodeEvent\n | StoryboardNodeEventHandler\n | StoryboardNodeConditionalEvent\n | StoryboardNodeEventCallback\n | StoryboardNodeCondition\n | StoryboardNodeUseBrickEntry\n | StoryboardNodeUseBackendEntry;\n\nexport interface StoryboardNodeRoot {\n type: \"Root\";\n raw: Storyboard;\n routes: StoryboardNodeRoute[];\n templates: StoryboardNodeTemplate[];\n}\n\nexport interface StoryboardNodeTemplate {\n type: \"Template\";\n raw: CustomTemplate | CustomTemplateConstructor;\n bricks?: StoryboardNodeBrick[];\n context?: StoryboardNodeContext[];\n}\n\nexport interface StoryboardNodeRoute {\n type: \"Route\";\n raw: RouteConf;\n context?: StoryboardNodeContext[];\n redirect?: StoryboardNodeResolvable;\n menu?: StoryboardNodeMenu;\n providers?: StoryboardNodeBrick[];\n defineResolves?: StoryboardNodeResolvable[];\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeBrick =\n | StoryboardNodeNormalBrick\n | StoryboardNodeUseBrick;\n\nexport interface StoryboardNodeBrickBase {\n type: \"Brick\";\n raw: BrickConf | UseSingleBrickConf;\n isUseBrick?: boolean;\n if?: StoryboardNodeCondition;\n events?: StoryboardNodeEvent[];\n lifeCycle?: StoryboardNodeLifeCycle[];\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n context?: StoryboardNodeContext[];\n children: StoryboardNodeSlot[];\n}\n\nexport interface StoryboardNodeNormalBrick extends StoryboardNodeBrickBase {\n raw: BrickConf;\n isUseBrick?: false;\n}\n\nexport interface StoryboardNodeUseBrick extends StoryboardNodeBrickBase {\n raw: UseSingleBrickConf;\n isUseBrick: true;\n}\n\nexport interface StoryboardNodeUseBrickEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBrickEntry\";\n rawKey: \"useBrick\";\n}\n\nexport interface StoryboardNodeUseBackendEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBackendEntry\";\n rawKey: \"useBackend\";\n}\n\nexport interface StoryboardNodeUseEntryBase {\n rawContainer: Record<string, unknown>;\n children: StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeCondition =\n | StoryboardNodeLiteralCondition\n | StoryboardNodeResolvableCondition;\n\nexport interface StoryboardNodeLiteralCondition {\n type: \"LiteralCondition\";\n}\n\nexport interface StoryboardNodeResolvableCondition {\n type: \"ResolvableCondition\";\n resolve: StoryboardNodeResolvable | undefined;\n}\n\nexport interface StoryboardNodeSlot {\n type: \"Slot\";\n raw: SlotConf;\n slot: string;\n childrenType: \"Route\" | \"Brick\";\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport interface StoryboardNodeContext {\n type: \"Context\";\n raw: ContextConf | CustomTemplateState;\n resolve?: StoryboardNodeResolvable;\n onChange?: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeResolvable {\n type: \"Resolvable\";\n raw: ResolveConf;\n isConditional?: boolean;\n}\n\nexport type StoryboardNodeMenu =\n | StoryboardNodeFalseMenu\n | StoryboardNodeStaticMenu\n | StoryboardNodeBrickMenu\n | StoryboardNodeResolvableMenu;\n\nexport interface StoryboardNodeFalseMenu {\n type: \"FalseMenu\";\n}\n\nexport interface StoryboardNodeStaticMenu {\n type: \"StaticMenu\";\n}\n\nexport interface StoryboardNodeBrickMenu {\n type: \"BrickMenu\";\n raw: BrickMenuConf;\n brick: StoryboardNodeBrick;\n}\n\nexport interface StoryboardNodeResolvableMenu {\n type: \"ResolvableMenu\";\n resolve: StoryboardNodeResolvable;\n}\n\nexport type StoryboardNodeLifeCycle =\n | StoryboardNodeResolveLifeCycle\n | StoryboardNodeSimpleLifeCycle\n | StoryboardNodeConditionalLifeCycle\n | StoryboardNodeUnknownLifeCycle;\n\nexport interface StoryboardNodeResolveLifeCycle {\n type: \"ResolveLifeCycle\";\n rawContainer: BrickLifeCycle;\n rawKey: \"useResolves\";\n resolves: StoryboardNodeResolvable[] | undefined;\n}\n\nexport interface StoryboardNodeSimpleLifeCycle {\n type: \"SimpleLifeCycle\";\n name:\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMessageClose\"\n | \"onBeforePageLoad\"\n | \"onBeforePageLeave\"\n | \"onMediaChange\";\n rawContainer: BrickLifeCycle;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeConditionalLifeCycle {\n type: \"ConditionalLifeCycle\";\n name: \"onMessage\" | \"onScrollIntoView\";\n events: StoryboardNodeConditionalEvent[] | undefined;\n}\n\nexport interface StoryboardNodeUnknownLifeCycle {\n type: \"UnknownLifeCycle\";\n}\n\nexport interface StoryboardNodeEvent {\n type: \"Event\";\n rawContainer: BrickEventsMap;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventHandler {\n type: \"EventHandler\";\n raw: BrickEventHandler;\n callback: StoryboardNodeEventCallback[] | undefined;\n}\n\nexport interface StoryboardNodeConditionalEvent {\n type: \"ConditionalEvent\";\n rawContainer: MessageConf | ScrollIntoViewConf;\n rawKey: \"handlers\";\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventCallback {\n type: \"EventCallback\";\n rawContainer: BrickEventHandlerCallback;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"interfaces.js","names":[],"sources":["../../src/interfaces.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n BrickMenuConf,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MessageConf,\n ResolveConf,\n RouteConf,\n ScrollIntoViewConf,\n SlotConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\n\nexport type StoryboardNode =\n | StoryboardNodeRoot\n | StoryboardNodeRoute\n | StoryboardNodeTemplate\n | StoryboardNodeBrick\n | StoryboardNodeSlot\n | StoryboardNodeContext\n | StoryboardNodeResolvable\n | StoryboardNodeMenu\n | StoryboardNodeLifeCycle\n | StoryboardNodeEvent\n | StoryboardNodeEventHandler\n | StoryboardNodeConditionalEvent\n | StoryboardNodeEventCallback\n | StoryboardNodeCondition\n | StoryboardNodeUseBrickEntry\n | StoryboardNodeUseBackendEntry;\n\nexport interface StoryboardNodeRoot {\n type: \"Root\";\n raw: Storyboard;\n routes: StoryboardNodeRoute[];\n templates: StoryboardNodeTemplate[];\n}\n\nexport interface StoryboardNodeTemplate {\n type: \"Template\";\n raw: CustomTemplate | CustomTemplateConstructor;\n bricks?: StoryboardNodeBrick[];\n context?: StoryboardNodeContext[];\n}\n\nexport interface StoryboardNodeRoute {\n type: \"Route\";\n raw: RouteConf;\n context?: StoryboardNodeContext[];\n redirect?: StoryboardNodeResolvable;\n menu?: StoryboardNodeMenu;\n providers?: StoryboardNodeBrick[];\n defineResolves?: StoryboardNodeResolvable[];\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeBrick =\n | StoryboardNodeNormalBrick\n | StoryboardNodeUseBrick;\n\nexport interface StoryboardNodeBrickBase {\n type: \"Brick\";\n raw: BrickConf | UseSingleBrickConf;\n isUseBrick?: boolean;\n if?: StoryboardNodeCondition;\n events?: StoryboardNodeEvent[];\n lifeCycle?: StoryboardNodeLifeCycle[];\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n context?: StoryboardNodeContext[];\n children: StoryboardNodeSlot[];\n}\n\nexport interface StoryboardNodeNormalBrick extends StoryboardNodeBrickBase {\n raw: BrickConf;\n isUseBrick?: false;\n}\n\nexport interface StoryboardNodeUseBrick extends StoryboardNodeBrickBase {\n raw: UseSingleBrickConf;\n isUseBrick: true;\n}\n\nexport interface StoryboardNodeUseBrickEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBrickEntry\";\n rawKey: \"useBrick\";\n}\n\nexport interface StoryboardNodeUseBackendEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBackendEntry\";\n rawKey: \"useBackend\";\n}\n\nexport interface StoryboardNodeUseEntryBase {\n rawContainer: Record<string, unknown>;\n children: StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeCondition =\n | StoryboardNodeLiteralCondition\n | StoryboardNodeResolvableCondition;\n\nexport interface StoryboardNodeLiteralCondition {\n type: \"LiteralCondition\";\n}\n\nexport interface StoryboardNodeResolvableCondition {\n type: \"ResolvableCondition\";\n resolve: StoryboardNodeResolvable | undefined;\n}\n\nexport interface StoryboardNodeSlot {\n type: \"Slot\";\n raw: SlotConf;\n slot: string;\n childrenType: \"Route\" | \"Brick\";\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport interface StoryboardNodeContext {\n type: \"Context\";\n raw: ContextConf | CustomTemplateState;\n resolve?: StoryboardNodeResolvable;\n onChange?: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeResolvable {\n type: \"Resolvable\";\n raw: ResolveConf;\n isConditional?: boolean;\n}\n\nexport type StoryboardNodeMenu =\n | StoryboardNodeFalseMenu\n | StoryboardNodeStaticMenu\n | StoryboardNodeBrickMenu\n | StoryboardNodeResolvableMenu;\n\nexport interface StoryboardNodeFalseMenu {\n type: \"FalseMenu\";\n}\n\nexport interface StoryboardNodeStaticMenu {\n type: \"StaticMenu\";\n}\n\nexport interface StoryboardNodeBrickMenu {\n type: \"BrickMenu\";\n raw: BrickMenuConf;\n brick: StoryboardNodeBrick;\n}\n\nexport interface StoryboardNodeResolvableMenu {\n type: \"ResolvableMenu\";\n resolve: StoryboardNodeResolvable;\n}\n\nexport type StoryboardNodeLifeCycle =\n | StoryboardNodeResolveLifeCycle\n | StoryboardNodeSimpleLifeCycle\n | StoryboardNodeConditionalLifeCycle\n | StoryboardNodeUnknownLifeCycle;\n\nexport interface StoryboardNodeResolveLifeCycle {\n type: \"ResolveLifeCycle\";\n rawContainer: BrickLifeCycle;\n rawKey: \"useResolves\";\n resolves: StoryboardNodeResolvable[] | undefined;\n}\n\nexport interface StoryboardNodeSimpleLifeCycle {\n type: \"SimpleLifeCycle\";\n name:\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMessageClose\"\n | \"onBeforePageLoad\"\n | \"onBeforePageLeave\"\n | \"onMount\"\n | \"onUnmount\"\n | \"onMediaChange\";\n rawContainer: BrickLifeCycle;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeConditionalLifeCycle {\n type: \"ConditionalLifeCycle\";\n name: \"onMessage\" | \"onScrollIntoView\";\n events: StoryboardNodeConditionalEvent[] | undefined;\n}\n\nexport interface StoryboardNodeUnknownLifeCycle {\n type: \"UnknownLifeCycle\";\n}\n\nexport interface StoryboardNodeEvent {\n type: \"Event\";\n rawContainer: BrickEventsMap;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventHandler {\n type: \"EventHandler\";\n raw: BrickEventHandler;\n callback: StoryboardNodeEventCallback[] | undefined;\n}\n\nexport interface StoryboardNodeConditionalEvent {\n type: \"ConditionalEvent\";\n rawContainer: MessageConf | ScrollIntoViewConf;\n rawKey: \"handlers\";\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventCallback {\n type: \"EventCallback\";\n rawContainer: BrickEventHandlerCallback;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n"],"mappings":""}
@@ -171,6 +171,8 @@ function parseLifeCycles(lifeCycle) {
171
171
  case "onMessageClose":
172
172
  case "onBeforePageLoad":
173
173
  case "onBeforePageLeave":
174
+ case "onMount":
175
+ case "onUnmount":
174
176
  case "onMediaChange":
175
177
  return {
176
178
  type: "SimpleLifeCycle",
@@ -1 +1 @@
1
- {"version":3,"file":"parseStoryboard.js","names":["parseStoryboard","storyboard","type","raw","routes","parseRoutes","templates","parseTemplates","meta","customTemplates","options","Array","isArray","map","route","routesOnly","context","parseContext","redirect","parseResolvable","menu","parseMenu","providers","parseRouteProviders","defineResolves","item","filter","Boolean","undefined","children","parseBricks","bricks","parseTemplate","tpl","state","brick","parseBrick","isUseBrick","if","parseCondition","events","parseEvents","lifeCycle","parseLifeCycles","parseBrickProperties","properties","parseSlots","slots","condition","isObject","resolve","props","useBrick","useBackend","walkBrickProperties","value","push","rawContainer","rawKey","concat","provider","Object","values","entries","name","conf","resolves","handlers","parseEventHandlers","slot","childrenType","eventType","contexts","onChange","isConditional","handler","callback","parseEventCallback","callbackType"],"sources":["../../src/parseStoryboard.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MenuConf,\n MessageConf,\n ProviderConf,\n ResolveConf,\n RouteConf,\n RouteConfOfBricks,\n ScrollIntoViewConf,\n SlotsConf,\n Storyboard,\n UseProviderEventHandler,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\nimport type {\n StoryboardNodeBrick,\n StoryboardNodeCondition,\n StoryboardNodeConditionalEvent,\n StoryboardNodeContext,\n StoryboardNodeEvent,\n StoryboardNodeEventCallback,\n StoryboardNodeEventHandler,\n StoryboardNodeLifeCycle,\n StoryboardNodeMenu,\n StoryboardNodeResolvable,\n StoryboardNodeRoot,\n StoryboardNodeRoute,\n StoryboardNodeSlot,\n StoryboardNodeTemplate,\n StoryboardNodeUseBackendEntry,\n StoryboardNodeUseBrickEntry,\n} from \"./interfaces\";\n\n/** Parse storyboard as AST. */\nexport function parseStoryboard(storyboard: Storyboard): StoryboardNodeRoot {\n return {\n type: \"Root\",\n raw: storyboard,\n routes: parseRoutes(storyboard.routes),\n templates: parseTemplates(storyboard.meta?.customTemplates),\n };\n}\n\nexport interface ParseOptions {\n routesOnly?: boolean;\n isUseBrick?: boolean;\n}\n\n/** Parse storyboard routes as AST. */\nexport function parseRoutes(\n routes: RouteConf[],\n options?: ParseOptions\n): StoryboardNodeRoute[] {\n if (Array.isArray(routes)) {\n return routes.map<StoryboardNodeRoute>((route) => ({\n type: \"Route\",\n raw: route,\n ...(options?.routesOnly\n ? null\n : {\n context: parseContext(route.context),\n redirect: parseResolvable(route.redirect as ResolveConf),\n menu: parseMenu(route.menu),\n providers: parseRouteProviders(route.providers),\n defineResolves: Array.isArray(route.defineResolves)\n ? route.defineResolves\n .map((item) => parseResolvable(item))\n .filter(Boolean)\n : undefined,\n }),\n children:\n route.type === \"routes\"\n ? parseRoutes(route.routes, options)\n : parseBricks((route as RouteConfOfBricks).bricks, options),\n }));\n }\n return [];\n}\n\n/** Parse storyboard templates as AST. */\nexport function parseTemplates(\n templates: (CustomTemplate | CustomTemplateConstructor)[]\n): StoryboardNodeTemplate[] {\n if (Array.isArray(templates)) {\n return templates.map<StoryboardNodeTemplate>(parseTemplate);\n }\n return [];\n}\n\n/** Parse a storyboard template as AST. */\nexport function parseTemplate(\n tpl: CustomTemplate | CustomTemplateConstructor\n): StoryboardNodeTemplate {\n return {\n type: \"Template\",\n raw: tpl,\n bricks: parseBricks(tpl.bricks),\n context: parseContext(tpl.state),\n };\n}\n\nfunction parseBricks(\n bricks: BrickConf[] | UseSingleBrickConf[],\n options?: ParseOptions\n): StoryboardNodeBrick[] {\n if (Array.isArray(bricks)) {\n return bricks.map((brick) => parseBrick(brick, options));\n }\n return [];\n}\n\n/** Parse a storyboard brick as AST. */\nexport function parseBrick(\n brick: BrickConf | UseSingleBrickConf,\n options?: ParseOptions\n): StoryboardNodeBrick {\n return {\n type: \"Brick\",\n raw: brick,\n isUseBrick: options?.isUseBrick,\n ...(options?.routesOnly\n ? null\n : {\n if: parseCondition(brick.if),\n events: parseEvents(brick.events),\n lifeCycle: parseLifeCycles(brick.lifeCycle),\n ...parseBrickProperties(brick.properties),\n context: parseContext((brick as BrickConf).context),\n }),\n children: parseSlots(brick.slots as SlotsConf, options),\n } as StoryboardNodeBrick;\n}\n\nfunction parseCondition(condition: BrickConf[\"if\"]): StoryboardNodeCondition {\n if (isObject(condition)) {\n return {\n type: \"ResolvableCondition\",\n resolve: parseResolvable(condition),\n };\n }\n return {\n type: \"LiteralCondition\",\n };\n}\n\nfunction parseBrickProperties(props: unknown): {\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n} {\n const useBrick: StoryboardNodeUseBrickEntry[] = [];\n const useBackend: StoryboardNodeUseBackendEntry[] = [];\n\n function walkBrickProperties(value: unknown): void {\n if (Array.isArray(value)) {\n for (const item of value) {\n walkBrickProperties(item);\n }\n } else if (isObject(value)) {\n if (value.useBrick || value.useBackend) {\n if (value.useBrick) {\n useBrick.push({\n type: \"UseBrickEntry\",\n rawContainer: value,\n rawKey: \"useBrick\",\n children: parseBricks(\n ([] as UseSingleBrickConf[]).concat(value.useBrick),\n {\n isUseBrick: true,\n }\n ),\n });\n }\n const provider = value.useBackend?.provider;\n if (typeof provider === \"string\") {\n useBackend.push({\n type: \"UseBackendEntry\",\n rawContainer: value,\n rawKey: \"useBackend\",\n children: [parseBrick({ brick: provider })],\n });\n }\n } else {\n for (const item of Object.values(value)) {\n walkBrickProperties(item);\n }\n }\n }\n }\n\n walkBrickProperties(props);\n\n return { useBrick, useBackend };\n}\n\nfunction parseLifeCycles(lifeCycle: BrickLifeCycle): StoryboardNodeLifeCycle[] {\n if (isObject(lifeCycle)) {\n return Object.entries(lifeCycle).map<StoryboardNodeLifeCycle>(\n ([name, conf]) => {\n switch (name) {\n case \"useResolves\":\n return {\n type: \"ResolveLifeCycle\",\n rawContainer: lifeCycle,\n rawKey: name,\n resolves: Array.isArray(conf)\n ? conf\n .map((item) => parseResolvable(item, true))\n .filter(Boolean)\n : undefined,\n };\n case \"onPageLoad\":\n case \"onPageLeave\":\n case \"onAnchorLoad\":\n case \"onAnchorUnload\":\n case \"onMessageClose\":\n case \"onBeforePageLoad\":\n case \"onBeforePageLeave\":\n case \"onMediaChange\":\n return {\n type: \"SimpleLifeCycle\",\n name,\n rawContainer: lifeCycle,\n rawKey: name,\n handlers: parseEventHandlers(conf),\n };\n case \"onMessage\":\n case \"onScrollIntoView\":\n return {\n type: \"ConditionalLifeCycle\",\n name,\n events: ([] as (MessageConf | ScrollIntoViewConf)[])\n .concat(conf)\n .filter(Boolean)\n .map<StoryboardNodeConditionalEvent>((item) => ({\n type: \"ConditionalEvent\",\n rawContainer: item,\n rawKey: \"handlers\",\n handlers: parseEventHandlers(item.handlers),\n })),\n };\n default:\n return { type: \"UnknownLifeCycle\" };\n }\n }\n );\n }\n}\n\nfunction parseSlots(\n slots: SlotsConf,\n options?: ParseOptions\n): StoryboardNodeSlot[] {\n if (isObject(slots)) {\n return Object.entries(slots).map<StoryboardNodeSlot>(([slot, conf]) => ({\n type: \"Slot\",\n raw: conf,\n slot,\n childrenType: conf.type === \"routes\" ? \"Route\" : \"Brick\",\n children:\n conf.type === \"routes\"\n ? parseRoutes(conf.routes, options)\n : parseBricks(conf.bricks, options),\n }));\n }\n return [];\n}\n\nfunction parseEvents(events: BrickEventsMap): StoryboardNodeEvent[] {\n if (isObject(events)) {\n return Object.entries(events).map<StoryboardNodeEvent>(\n ([eventType, handlers]) => ({\n type: \"Event\",\n rawContainer: events,\n rawKey: eventType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseContext(\n contexts: (ContextConf | CustomTemplateState)[]\n): StoryboardNodeContext[] {\n if (Array.isArray(contexts)) {\n return contexts.map<StoryboardNodeContext>((context) => ({\n type: \"Context\",\n raw: context,\n resolve: parseResolvable(context.resolve),\n onChange: parseEventHandlers(context.onChange),\n }));\n }\n}\n\nfunction parseMenu(menu: MenuConf): StoryboardNodeMenu {\n if (menu === false) {\n return { type: \"FalseMenu\" };\n }\n if (!menu) {\n return;\n }\n switch (menu.type) {\n case \"brick\":\n return {\n type: \"BrickMenu\",\n raw: menu,\n brick: parseBrick(menu),\n };\n case \"resolve\":\n return {\n type: \"ResolvableMenu\",\n resolve: parseResolvable(menu.resolve),\n };\n default:\n return {\n type: \"StaticMenu\",\n };\n }\n}\n\nfunction parseResolvable(\n resolve: ResolveConf,\n isConditional?: boolean\n): StoryboardNodeResolvable {\n if (isObject(resolve)) {\n return {\n type: \"Resolvable\",\n raw: resolve,\n isConditional,\n };\n }\n}\n\nfunction parseEventHandlers(\n handlers: BrickEventHandler | BrickEventHandler[]\n): StoryboardNodeEventHandler[] {\n return ([] as BrickEventHandler[])\n .concat(handlers)\n .filter(Boolean)\n .map<StoryboardNodeEventHandler>((handler) => ({\n type: \"EventHandler\",\n callback: parseEventCallback(\n (handler as UseProviderEventHandler).callback\n ),\n raw: handler,\n }));\n}\n\nfunction parseEventCallback(\n callback: BrickEventHandlerCallback\n): StoryboardNodeEventCallback[] {\n if (isObject(callback)) {\n return Object.entries(callback).map<StoryboardNodeEventCallback>(\n ([callbackType, handlers]) => ({\n type: \"EventCallback\",\n rawContainer: callback as BrickEventsMap,\n rawKey: callbackType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseRouteProviders(\n providers?: ProviderConf[]\n): StoryboardNodeBrick[] {\n if (Array.isArray(providers)) {\n return providers.map<StoryboardNodeBrick>((provider) =>\n parseBrick(typeof provider === \"string\" ? { brick: provider } : provider)\n );\n }\n}\n\n// Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744\nfunction isObject(value: unknown): value is Record<string, any> {\n const type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parseStoryboard.js","names":["parseStoryboard","storyboard","type","raw","routes","parseRoutes","templates","parseTemplates","meta","customTemplates","options","Array","isArray","map","route","routesOnly","context","parseContext","redirect","parseResolvable","menu","parseMenu","providers","parseRouteProviders","defineResolves","item","filter","Boolean","undefined","children","parseBricks","bricks","parseTemplate","tpl","state","brick","parseBrick","isUseBrick","if","parseCondition","events","parseEvents","lifeCycle","parseLifeCycles","parseBrickProperties","properties","parseSlots","slots","condition","isObject","resolve","props","useBrick","useBackend","walkBrickProperties","value","push","rawContainer","rawKey","concat","provider","Object","values","entries","name","conf","resolves","handlers","parseEventHandlers","slot","childrenType","eventType","contexts","onChange","isConditional","handler","callback","parseEventCallback","callbackType"],"sources":["../../src/parseStoryboard.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MenuConf,\n MessageConf,\n ProviderConf,\n ResolveConf,\n RouteConf,\n RouteConfOfBricks,\n ScrollIntoViewConf,\n SlotsConf,\n Storyboard,\n UseProviderEventHandler,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\nimport type {\n StoryboardNodeBrick,\n StoryboardNodeCondition,\n StoryboardNodeConditionalEvent,\n StoryboardNodeContext,\n StoryboardNodeEvent,\n StoryboardNodeEventCallback,\n StoryboardNodeEventHandler,\n StoryboardNodeLifeCycle,\n StoryboardNodeMenu,\n StoryboardNodeResolvable,\n StoryboardNodeRoot,\n StoryboardNodeRoute,\n StoryboardNodeSlot,\n StoryboardNodeTemplate,\n StoryboardNodeUseBackendEntry,\n StoryboardNodeUseBrickEntry,\n} from \"./interfaces\";\n\n/** Parse storyboard as AST. */\nexport function parseStoryboard(storyboard: Storyboard): StoryboardNodeRoot {\n return {\n type: \"Root\",\n raw: storyboard,\n routes: parseRoutes(storyboard.routes),\n templates: parseTemplates(storyboard.meta?.customTemplates),\n };\n}\n\nexport interface ParseOptions {\n routesOnly?: boolean;\n isUseBrick?: boolean;\n}\n\n/** Parse storyboard routes as AST. */\nexport function parseRoutes(\n routes: RouteConf[],\n options?: ParseOptions\n): StoryboardNodeRoute[] {\n if (Array.isArray(routes)) {\n return routes.map<StoryboardNodeRoute>((route) => ({\n type: \"Route\",\n raw: route,\n ...(options?.routesOnly\n ? null\n : {\n context: parseContext(route.context),\n redirect: parseResolvable(route.redirect as ResolveConf),\n menu: parseMenu(route.menu),\n providers: parseRouteProviders(route.providers),\n defineResolves: Array.isArray(route.defineResolves)\n ? route.defineResolves\n .map((item) => parseResolvable(item))\n .filter(Boolean)\n : undefined,\n }),\n children:\n route.type === \"routes\"\n ? parseRoutes(route.routes, options)\n : parseBricks((route as RouteConfOfBricks).bricks, options),\n }));\n }\n return [];\n}\n\n/** Parse storyboard templates as AST. */\nexport function parseTemplates(\n templates: (CustomTemplate | CustomTemplateConstructor)[]\n): StoryboardNodeTemplate[] {\n if (Array.isArray(templates)) {\n return templates.map<StoryboardNodeTemplate>(parseTemplate);\n }\n return [];\n}\n\n/** Parse a storyboard template as AST. */\nexport function parseTemplate(\n tpl: CustomTemplate | CustomTemplateConstructor\n): StoryboardNodeTemplate {\n return {\n type: \"Template\",\n raw: tpl,\n bricks: parseBricks(tpl.bricks),\n context: parseContext(tpl.state),\n };\n}\n\nfunction parseBricks(\n bricks: BrickConf[] | UseSingleBrickConf[],\n options?: ParseOptions\n): StoryboardNodeBrick[] {\n if (Array.isArray(bricks)) {\n return bricks.map((brick) => parseBrick(brick, options));\n }\n return [];\n}\n\n/** Parse a storyboard brick as AST. */\nexport function parseBrick(\n brick: BrickConf | UseSingleBrickConf,\n options?: ParseOptions\n): StoryboardNodeBrick {\n return {\n type: \"Brick\",\n raw: brick,\n isUseBrick: options?.isUseBrick,\n ...(options?.routesOnly\n ? null\n : {\n if: parseCondition(brick.if),\n events: parseEvents(brick.events),\n lifeCycle: parseLifeCycles(brick.lifeCycle),\n ...parseBrickProperties(brick.properties),\n context: parseContext((brick as BrickConf).context),\n }),\n children: parseSlots(brick.slots as SlotsConf, options),\n } as StoryboardNodeBrick;\n}\n\nfunction parseCondition(condition: BrickConf[\"if\"]): StoryboardNodeCondition {\n if (isObject(condition)) {\n return {\n type: \"ResolvableCondition\",\n resolve: parseResolvable(condition),\n };\n }\n return {\n type: \"LiteralCondition\",\n };\n}\n\nfunction parseBrickProperties(props: unknown): {\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n} {\n const useBrick: StoryboardNodeUseBrickEntry[] = [];\n const useBackend: StoryboardNodeUseBackendEntry[] = [];\n\n function walkBrickProperties(value: unknown): void {\n if (Array.isArray(value)) {\n for (const item of value) {\n walkBrickProperties(item);\n }\n } else if (isObject(value)) {\n if (value.useBrick || value.useBackend) {\n if (value.useBrick) {\n useBrick.push({\n type: \"UseBrickEntry\",\n rawContainer: value,\n rawKey: \"useBrick\",\n children: parseBricks(\n ([] as UseSingleBrickConf[]).concat(value.useBrick),\n {\n isUseBrick: true,\n }\n ),\n });\n }\n const provider = value.useBackend?.provider;\n if (typeof provider === \"string\") {\n useBackend.push({\n type: \"UseBackendEntry\",\n rawContainer: value,\n rawKey: \"useBackend\",\n children: [parseBrick({ brick: provider })],\n });\n }\n } else {\n for (const item of Object.values(value)) {\n walkBrickProperties(item);\n }\n }\n }\n }\n\n walkBrickProperties(props);\n\n return { useBrick, useBackend };\n}\n\nfunction parseLifeCycles(lifeCycle: BrickLifeCycle): StoryboardNodeLifeCycle[] {\n if (isObject(lifeCycle)) {\n return Object.entries(lifeCycle).map<StoryboardNodeLifeCycle>(\n ([name, conf]) => {\n switch (name) {\n case \"useResolves\":\n return {\n type: \"ResolveLifeCycle\",\n rawContainer: lifeCycle,\n rawKey: name,\n resolves: Array.isArray(conf)\n ? conf\n .map((item) => parseResolvable(item, true))\n .filter(Boolean)\n : undefined,\n };\n case \"onPageLoad\":\n case \"onPageLeave\":\n case \"onAnchorLoad\":\n case \"onAnchorUnload\":\n case \"onMessageClose\":\n case \"onBeforePageLoad\":\n case \"onBeforePageLeave\":\n case \"onMount\":\n case \"onUnmount\":\n case \"onMediaChange\":\n return {\n type: \"SimpleLifeCycle\",\n name,\n rawContainer: lifeCycle,\n rawKey: name,\n handlers: parseEventHandlers(conf),\n };\n case \"onMessage\":\n case \"onScrollIntoView\":\n return {\n type: \"ConditionalLifeCycle\",\n name,\n events: ([] as (MessageConf | ScrollIntoViewConf)[])\n .concat(conf)\n .filter(Boolean)\n .map<StoryboardNodeConditionalEvent>((item) => ({\n type: \"ConditionalEvent\",\n rawContainer: item,\n rawKey: \"handlers\",\n handlers: parseEventHandlers(item.handlers),\n })),\n };\n default:\n return { type: \"UnknownLifeCycle\" };\n }\n }\n );\n }\n}\n\nfunction parseSlots(\n slots: SlotsConf,\n options?: ParseOptions\n): StoryboardNodeSlot[] {\n if (isObject(slots)) {\n return Object.entries(slots).map<StoryboardNodeSlot>(([slot, conf]) => ({\n type: \"Slot\",\n raw: conf,\n slot,\n childrenType: conf.type === \"routes\" ? \"Route\" : \"Brick\",\n children:\n conf.type === \"routes\"\n ? parseRoutes(conf.routes, options)\n : parseBricks(conf.bricks, options),\n }));\n }\n return [];\n}\n\nfunction parseEvents(events: BrickEventsMap): StoryboardNodeEvent[] {\n if (isObject(events)) {\n return Object.entries(events).map<StoryboardNodeEvent>(\n ([eventType, handlers]) => ({\n type: \"Event\",\n rawContainer: events,\n rawKey: eventType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseContext(\n contexts: (ContextConf | CustomTemplateState)[]\n): StoryboardNodeContext[] {\n if (Array.isArray(contexts)) {\n return contexts.map<StoryboardNodeContext>((context) => ({\n type: \"Context\",\n raw: context,\n resolve: parseResolvable(context.resolve),\n onChange: parseEventHandlers(context.onChange),\n }));\n }\n}\n\nfunction parseMenu(menu: MenuConf): StoryboardNodeMenu {\n if (menu === false) {\n return { type: \"FalseMenu\" };\n }\n if (!menu) {\n return;\n }\n switch (menu.type) {\n case \"brick\":\n return {\n type: \"BrickMenu\",\n raw: menu,\n brick: parseBrick(menu),\n };\n case \"resolve\":\n return {\n type: \"ResolvableMenu\",\n resolve: parseResolvable(menu.resolve),\n };\n default:\n return {\n type: \"StaticMenu\",\n };\n }\n}\n\nfunction parseResolvable(\n resolve: ResolveConf,\n isConditional?: boolean\n): StoryboardNodeResolvable {\n if (isObject(resolve)) {\n return {\n type: \"Resolvable\",\n raw: resolve,\n isConditional,\n };\n }\n}\n\nfunction parseEventHandlers(\n handlers: BrickEventHandler | BrickEventHandler[]\n): StoryboardNodeEventHandler[] {\n return ([] as BrickEventHandler[])\n .concat(handlers)\n .filter(Boolean)\n .map<StoryboardNodeEventHandler>((handler) => ({\n type: \"EventHandler\",\n callback: parseEventCallback(\n (handler as UseProviderEventHandler).callback\n ),\n raw: handler,\n }));\n}\n\nfunction parseEventCallback(\n callback: BrickEventHandlerCallback\n): StoryboardNodeEventCallback[] {\n if (isObject(callback)) {\n return Object.entries(callback).map<StoryboardNodeEventCallback>(\n ([callbackType, handlers]) => ({\n type: \"EventCallback\",\n rawContainer: callback as BrickEventsMap,\n rawKey: callbackType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseRouteProviders(\n providers?: ProviderConf[]\n): StoryboardNodeBrick[] {\n if (Array.isArray(providers)) {\n return providers.map<StoryboardNodeBrick>((provider) =>\n parseBrick(typeof provider === \"string\" ? { brick: provider } : provider)\n );\n }\n}\n\n// Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744\nfunction isObject(value: unknown): value is Record<string, any> {\n const type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\n"],"mappings":";;;;;;;;;;;AAyCA;AACO,SAASA,eAAT,CAAyBC,UAAzB,EAAqE;EAAA;;EAC1E,OAAO;IACLC,IAAI,EAAE,MADD;IAELC,GAAG,EAAEF,UAFA;IAGLG,MAAM,EAAEC,WAAW,CAACJ,UAAU,CAACG,MAAZ,CAHd;IAILE,SAAS,EAAEC,cAAc,qBAACN,UAAU,CAACO,IAAZ,qDAAC,iBAAiBC,eAAlB;EAJpB,CAAP;AAMD;;AAOD;AACO,SAASJ,WAAT,CACLD,MADK,EAELM,OAFK,EAGkB;EACvB,IAAIC,KAAK,CAACC,OAAN,CAAcR,MAAd,CAAJ,EAA2B;IACzB,OAAOA,MAAM,CAACS,GAAP,CAAiCC,KAAD,KAAY;MACjDZ,IAAI,EAAE,OAD2C;MAEjDC,GAAG,EAAEW,KAF4C;MAGjD,IAAIJ,OAAO,SAAP,IAAAA,OAAO,WAAP,IAAAA,OAAO,CAAEK,UAAT,GACA,IADA,GAEA;QACEC,OAAO,EAAEC,YAAY,CAACH,KAAK,CAACE,OAAP,CADvB;QAEEE,QAAQ,EAAEC,eAAe,CAACL,KAAK,CAACI,QAAP,CAF3B;QAGEE,IAAI,EAAEC,SAAS,CAACP,KAAK,CAACM,IAAP,CAHjB;QAIEE,SAAS,EAAEC,mBAAmB,CAACT,KAAK,CAACQ,SAAP,CAJhC;QAKEE,cAAc,EAAEb,KAAK,CAACC,OAAN,CAAcE,KAAK,CAACU,cAApB,IACZV,KAAK,CAACU,cAAN,CACGX,GADH,CACQY,IAAD,IAAUN,eAAe,CAACM,IAAD,CADhC,EAEGC,MAFH,CAEUC,OAFV,CADY,GAIZC;MATN,CAFJ,CAHiD;MAgBjDC,QAAQ,EACNf,KAAK,CAACZ,IAAN,KAAe,QAAf,GACIG,WAAW,CAACS,KAAK,CAACV,MAAP,EAAeM,OAAf,CADf,GAEIoB,WAAW,CAAEhB,KAAD,CAA6BiB,MAA9B,EAAsCrB,OAAtC;IAnBgC,CAAZ,CAAhC,CAAP;EAqBD;;EACD,OAAO,EAAP;AACD;AAED;;;AACO,SAASH,cAAT,CACLD,SADK,EAEqB;EAC1B,IAAIK,KAAK,CAACC,OAAN,CAAcN,SAAd,CAAJ,EAA8B;IAC5B,OAAOA,SAAS,CAACO,GAAV,CAAsCmB,aAAtC,CAAP;EACD;;EACD,OAAO,EAAP;AACD;AAED;;;AACO,SAASA,aAAT,CACLC,GADK,EAEmB;EACxB,OAAO;IACL/B,IAAI,EAAE,UADD;IAELC,GAAG,EAAE8B,GAFA;IAGLF,MAAM,EAAED,WAAW,CAACG,GAAG,CAACF,MAAL,CAHd;IAILf,OAAO,EAAEC,YAAY,CAACgB,GAAG,CAACC,KAAL;EAJhB,CAAP;AAMD;;AAED,SAASJ,WAAT,CACEC,MADF,EAEErB,OAFF,EAGyB;EACvB,IAAIC,KAAK,CAACC,OAAN,CAAcmB,MAAd,CAAJ,EAA2B;IACzB,OAAOA,MAAM,CAAClB,GAAP,CAAYsB,KAAD,IAAWC,UAAU,CAACD,KAAD,EAAQzB,OAAR,CAAhC,CAAP;EACD;;EACD,OAAO,EAAP;AACD;AAED;;;AACO,SAAS0B,UAAT,CACLD,KADK,EAELzB,OAFK,EAGgB;EACrB,OAAO;IACLR,IAAI,EAAE,OADD;IAELC,GAAG,EAAEgC,KAFA;IAGLE,UAAU,EAAE3B,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAE2B,UAHhB;IAIL,IAAI3B,OAAO,SAAP,IAAAA,OAAO,WAAP,IAAAA,OAAO,CAAEK,UAAT,GACA,IADA,GAEA;MACEuB,EAAE,EAAEC,cAAc,CAACJ,KAAK,CAACG,EAAP,CADpB;MAEEE,MAAM,EAAEC,WAAW,CAACN,KAAK,CAACK,MAAP,CAFrB;MAGEE,SAAS,EAAEC,eAAe,CAACR,KAAK,CAACO,SAAP,CAH5B;MAIE,GAAGE,oBAAoB,CAACT,KAAK,CAACU,UAAP,CAJzB;MAKE7B,OAAO,EAAEC,YAAY,CAAEkB,KAAD,CAAqBnB,OAAtB;IALvB,CAFJ,CAJK;IAaLa,QAAQ,EAAEiB,UAAU,CAACX,KAAK,CAACY,KAAP,EAA2BrC,OAA3B;EAbf,CAAP;AAeD;;AAED,SAAS6B,cAAT,CAAwBS,SAAxB,EAA6E;EAC3E,IAAIC,QAAQ,CAACD,SAAD,CAAZ,EAAyB;IACvB,OAAO;MACL9C,IAAI,EAAE,qBADD;MAELgD,OAAO,EAAE/B,eAAe,CAAC6B,SAAD;IAFnB,CAAP;EAID;;EACD,OAAO;IACL9C,IAAI,EAAE;EADD,CAAP;AAGD;;AAED,SAAS0C,oBAAT,CAA8BO,KAA9B,EAGE;EACA,MAAMC,QAAuC,GAAG,EAAhD;EACA,MAAMC,UAA2C,GAAG,EAApD;;EAEA,SAASC,mBAAT,CAA6BC,KAA7B,EAAmD;IACjD,IAAI5C,KAAK,CAACC,OAAN,CAAc2C,KAAd,CAAJ,EAA0B;MACxB,KAAK,MAAM9B,IAAX,IAAmB8B,KAAnB,EAA0B;QACxBD,mBAAmB,CAAC7B,IAAD,CAAnB;MACD;IACF,CAJD,MAIO,IAAIwB,QAAQ,CAACM,KAAD,CAAZ,EAAqB;MAC1B,IAAIA,KAAK,CAACH,QAAN,IAAkBG,KAAK,CAACF,UAA5B,EAAwC;QAAA;;QACtC,IAAIE,KAAK,CAACH,QAAV,EAAoB;UAClBA,QAAQ,CAACI,IAAT,CAAc;YACZtD,IAAI,EAAE,eADM;YAEZuD,YAAY,EAAEF,KAFF;YAGZG,MAAM,EAAE,UAHI;YAIZ7B,QAAQ,EAAEC,WAAW,CAClB,EAAD,CAA6B6B,MAA7B,CAAoCJ,KAAK,CAACH,QAA1C,CADmB,EAEnB;cACEf,UAAU,EAAE;YADd,CAFmB;UAJT,CAAd;QAWD;;QACD,MAAMuB,QAAQ,wBAAGL,KAAK,CAACF,UAAT,sDAAG,kBAAkBO,QAAnC;;QACA,IAAI,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;UAChCP,UAAU,CAACG,IAAX,CAAgB;YACdtD,IAAI,EAAE,iBADQ;YAEduD,YAAY,EAAEF,KAFA;YAGdG,MAAM,EAAE,YAHM;YAId7B,QAAQ,EAAE,CAACO,UAAU,CAAC;cAAED,KAAK,EAAEyB;YAAT,CAAD,CAAX;UAJI,CAAhB;QAMD;MACF,CAvBD,MAuBO;QACL,KAAK,MAAMnC,IAAX,IAAmBoC,MAAM,CAACC,MAAP,CAAcP,KAAd,CAAnB,EAAyC;UACvCD,mBAAmB,CAAC7B,IAAD,CAAnB;QACD;MACF;IACF;EACF;;EAED6B,mBAAmB,CAACH,KAAD,CAAnB;EAEA,OAAO;IAAEC,QAAF;IAAYC;EAAZ,CAAP;AACD;;AAED,SAASV,eAAT,CAAyBD,SAAzB,EAA+E;EAC7E,IAAIO,QAAQ,CAACP,SAAD,CAAZ,EAAyB;IACvB,OAAOmB,MAAM,CAACE,OAAP,CAAerB,SAAf,EAA0B7B,GAA1B,CACL,CAAC,CAACmD,IAAD,EAAOC,IAAP,CAAD,KAAkB;MAChB,QAAQD,IAAR;QACE,KAAK,aAAL;UACE,OAAO;YACL9D,IAAI,EAAE,kBADD;YAELuD,YAAY,EAAEf,SAFT;YAGLgB,MAAM,EAAEM,IAHH;YAILE,QAAQ,EAAEvD,KAAK,CAACC,OAAN,CAAcqD,IAAd,IACNA,IAAI,CACDpD,GADH,CACQY,IAAD,IAAUN,eAAe,CAACM,IAAD,EAAO,IAAP,CADhC,EAEGC,MAFH,CAEUC,OAFV,CADM,GAINC;UARC,CAAP;;QAUF,KAAK,YAAL;QACA,KAAK,aAAL;QACA,KAAK,cAAL;QACA,KAAK,gBAAL;QACA,KAAK,gBAAL;QACA,KAAK,kBAAL;QACA,KAAK,mBAAL;QACA,KAAK,SAAL;QACA,KAAK,WAAL;QACA,KAAK,eAAL;UACE,OAAO;YACL1B,IAAI,EAAE,iBADD;YAEL8D,IAFK;YAGLP,YAAY,EAAEf,SAHT;YAILgB,MAAM,EAAEM,IAJH;YAKLG,QAAQ,EAAEC,kBAAkB,CAACH,IAAD;UALvB,CAAP;;QAOF,KAAK,WAAL;QACA,KAAK,kBAAL;UACE,OAAO;YACL/D,IAAI,EAAE,sBADD;YAEL8D,IAFK;YAGLxB,MAAM,EAAG,EAAD,CACLmB,MADK,CACEM,IADF,EAELvC,MAFK,CAEEC,OAFF,EAGLd,GAHK,CAGgCY,IAAD,KAAW;cAC9CvB,IAAI,EAAE,kBADwC;cAE9CuD,YAAY,EAAEhC,IAFgC;cAG9CiC,MAAM,EAAE,UAHsC;cAI9CS,QAAQ,EAAEC,kBAAkB,CAAC3C,IAAI,CAAC0C,QAAN;YAJkB,CAAX,CAH/B;UAHH,CAAP;;QAaF;UACE,OAAO;YAAEjE,IAAI,EAAE;UAAR,CAAP;MA7CJ;IA+CD,CAjDI,CAAP;EAmDD;AACF;;AAED,SAAS4C,UAAT,CACEC,KADF,EAEErC,OAFF,EAGwB;EACtB,IAAIuC,QAAQ,CAACF,KAAD,CAAZ,EAAqB;IACnB,OAAOc,MAAM,CAACE,OAAP,CAAehB,KAAf,EAAsBlC,GAAtB,CAA8C,CAAC,CAACwD,IAAD,EAAOJ,IAAP,CAAD,MAAmB;MACtE/D,IAAI,EAAE,MADgE;MAEtEC,GAAG,EAAE8D,IAFiE;MAGtEI,IAHsE;MAItEC,YAAY,EAAEL,IAAI,CAAC/D,IAAL,KAAc,QAAd,GAAyB,OAAzB,GAAmC,OAJqB;MAKtE2B,QAAQ,EACNoC,IAAI,CAAC/D,IAAL,KAAc,QAAd,GACIG,WAAW,CAAC4D,IAAI,CAAC7D,MAAN,EAAcM,OAAd,CADf,GAEIoB,WAAW,CAACmC,IAAI,CAAClC,MAAN,EAAcrB,OAAd;IARqD,CAAnB,CAA9C,CAAP;EAUD;;EACD,OAAO,EAAP;AACD;;AAED,SAAS+B,WAAT,CAAqBD,MAArB,EAAoE;EAClE,IAAIS,QAAQ,CAACT,MAAD,CAAZ,EAAsB;IACpB,OAAOqB,MAAM,CAACE,OAAP,CAAevB,MAAf,EAAuB3B,GAAvB,CACL,CAAC,CAAC0D,SAAD,EAAYJ,QAAZ,CAAD,MAA4B;MAC1BjE,IAAI,EAAE,OADoB;MAE1BuD,YAAY,EAAEjB,MAFY;MAG1BkB,MAAM,EAAEa,SAHkB;MAI1BJ,QAAQ,EAAEC,kBAAkB,CAACD,QAAD;IAJF,CAA5B,CADK,CAAP;EAQD;AACF;;AAED,SAASlD,YAAT,CACEuD,QADF,EAE2B;EACzB,IAAI7D,KAAK,CAACC,OAAN,CAAc4D,QAAd,CAAJ,EAA6B;IAC3B,OAAOA,QAAQ,CAAC3D,GAAT,CAAqCG,OAAD,KAAc;MACvDd,IAAI,EAAE,SADiD;MAEvDC,GAAG,EAAEa,OAFkD;MAGvDkC,OAAO,EAAE/B,eAAe,CAACH,OAAO,CAACkC,OAAT,CAH+B;MAIvDuB,QAAQ,EAAEL,kBAAkB,CAACpD,OAAO,CAACyD,QAAT;IAJ2B,CAAd,CAApC,CAAP;EAMD;AACF;;AAED,SAASpD,SAAT,CAAmBD,IAAnB,EAAuD;EACrD,IAAIA,IAAI,KAAK,KAAb,EAAoB;IAClB,OAAO;MAAElB,IAAI,EAAE;IAAR,CAAP;EACD;;EACD,IAAI,CAACkB,IAAL,EAAW;IACT;EACD;;EACD,QAAQA,IAAI,CAAClB,IAAb;IACE,KAAK,OAAL;MACE,OAAO;QACLA,IAAI,EAAE,WADD;QAELC,GAAG,EAAEiB,IAFA;QAGLe,KAAK,EAAEC,UAAU,CAAChB,IAAD;MAHZ,CAAP;;IAKF,KAAK,SAAL;MACE,OAAO;QACLlB,IAAI,EAAE,gBADD;QAELgD,OAAO,EAAE/B,eAAe,CAACC,IAAI,CAAC8B,OAAN;MAFnB,CAAP;;IAIF;MACE,OAAO;QACLhD,IAAI,EAAE;MADD,CAAP;EAbJ;AAiBD;;AAED,SAASiB,eAAT,CACE+B,OADF,EAEEwB,aAFF,EAG4B;EAC1B,IAAIzB,QAAQ,CAACC,OAAD,CAAZ,EAAuB;IACrB,OAAO;MACLhD,IAAI,EAAE,YADD;MAELC,GAAG,EAAE+C,OAFA;MAGLwB;IAHK,CAAP;EAKD;AACF;;AAED,SAASN,kBAAT,CACED,QADF,EAEgC;EAC9B,OAAQ,EAAD,CACJR,MADI,CACGQ,QADH,EAEJzC,MAFI,CAEGC,OAFH,EAGJd,GAHI,CAG6B8D,OAAD,KAAc;IAC7CzE,IAAI,EAAE,cADuC;IAE7C0E,QAAQ,EAAEC,kBAAkB,CACzBF,OAAD,CAAqCC,QADX,CAFiB;IAK7CzE,GAAG,EAAEwE;EALwC,CAAd,CAH5B,CAAP;AAUD;;AAED,SAASE,kBAAT,CACED,QADF,EAEiC;EAC/B,IAAI3B,QAAQ,CAAC2B,QAAD,CAAZ,EAAwB;IACtB,OAAOf,MAAM,CAACE,OAAP,CAAea,QAAf,EAAyB/D,GAAzB,CACL,CAAC,CAACiE,YAAD,EAAeX,QAAf,CAAD,MAA+B;MAC7BjE,IAAI,EAAE,eADuB;MAE7BuD,YAAY,EAAEmB,QAFe;MAG7BlB,MAAM,EAAEoB,YAHqB;MAI7BX,QAAQ,EAAEC,kBAAkB,CAACD,QAAD;IAJC,CAA/B,CADK,CAAP;EAQD;AACF;;AAED,SAAS5C,mBAAT,CACED,SADF,EAEyB;EACvB,IAAIX,KAAK,CAACC,OAAN,CAAcU,SAAd,CAAJ,EAA8B;IAC5B,OAAOA,SAAS,CAACT,GAAV,CAAoC+C,QAAD,IACxCxB,UAAU,CAAC,OAAOwB,QAAP,KAAoB,QAApB,GAA+B;MAAEzB,KAAK,EAAEyB;IAAT,CAA/B,GAAqDA,QAAtD,CADL,CAAP;EAGD;AACF,C,CAED;;;AACA,SAASX,QAAT,CAAkBM,KAAlB,EAAgE;EAC9D,MAAMrD,IAAI,GAAG,OAAOqD,KAApB;EACA,OAAOA,KAAK,IAAI,IAAT,KAAkBrD,IAAI,IAAI,QAAR,IAAoBA,IAAI,IAAI,UAA9C,CAAP;AACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","names":[],"sources":["../../src/interfaces.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n BrickMenuConf,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MessageConf,\n ResolveConf,\n RouteConf,\n ScrollIntoViewConf,\n SlotConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\n\nexport type StoryboardNode =\n | StoryboardNodeRoot\n | StoryboardNodeRoute\n | StoryboardNodeTemplate\n | StoryboardNodeBrick\n | StoryboardNodeSlot\n | StoryboardNodeContext\n | StoryboardNodeResolvable\n | StoryboardNodeMenu\n | StoryboardNodeLifeCycle\n | StoryboardNodeEvent\n | StoryboardNodeEventHandler\n | StoryboardNodeConditionalEvent\n | StoryboardNodeEventCallback\n | StoryboardNodeCondition\n | StoryboardNodeUseBrickEntry\n | StoryboardNodeUseBackendEntry;\n\nexport interface StoryboardNodeRoot {\n type: \"Root\";\n raw: Storyboard;\n routes: StoryboardNodeRoute[];\n templates: StoryboardNodeTemplate[];\n}\n\nexport interface StoryboardNodeTemplate {\n type: \"Template\";\n raw: CustomTemplate | CustomTemplateConstructor;\n bricks?: StoryboardNodeBrick[];\n context?: StoryboardNodeContext[];\n}\n\nexport interface StoryboardNodeRoute {\n type: \"Route\";\n raw: RouteConf;\n context?: StoryboardNodeContext[];\n redirect?: StoryboardNodeResolvable;\n menu?: StoryboardNodeMenu;\n providers?: StoryboardNodeBrick[];\n defineResolves?: StoryboardNodeResolvable[];\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeBrick =\n | StoryboardNodeNormalBrick\n | StoryboardNodeUseBrick;\n\nexport interface StoryboardNodeBrickBase {\n type: \"Brick\";\n raw: BrickConf | UseSingleBrickConf;\n isUseBrick?: boolean;\n if?: StoryboardNodeCondition;\n events?: StoryboardNodeEvent[];\n lifeCycle?: StoryboardNodeLifeCycle[];\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n context?: StoryboardNodeContext[];\n children: StoryboardNodeSlot[];\n}\n\nexport interface StoryboardNodeNormalBrick extends StoryboardNodeBrickBase {\n raw: BrickConf;\n isUseBrick?: false;\n}\n\nexport interface StoryboardNodeUseBrick extends StoryboardNodeBrickBase {\n raw: UseSingleBrickConf;\n isUseBrick: true;\n}\n\nexport interface StoryboardNodeUseBrickEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBrickEntry\";\n rawKey: \"useBrick\";\n}\n\nexport interface StoryboardNodeUseBackendEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBackendEntry\";\n rawKey: \"useBackend\";\n}\n\nexport interface StoryboardNodeUseEntryBase {\n rawContainer: Record<string, unknown>;\n children: StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeCondition =\n | StoryboardNodeLiteralCondition\n | StoryboardNodeResolvableCondition;\n\nexport interface StoryboardNodeLiteralCondition {\n type: \"LiteralCondition\";\n}\n\nexport interface StoryboardNodeResolvableCondition {\n type: \"ResolvableCondition\";\n resolve: StoryboardNodeResolvable | undefined;\n}\n\nexport interface StoryboardNodeSlot {\n type: \"Slot\";\n raw: SlotConf;\n slot: string;\n childrenType: \"Route\" | \"Brick\";\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport interface StoryboardNodeContext {\n type: \"Context\";\n raw: ContextConf | CustomTemplateState;\n resolve?: StoryboardNodeResolvable;\n onChange?: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeResolvable {\n type: \"Resolvable\";\n raw: ResolveConf;\n isConditional?: boolean;\n}\n\nexport type StoryboardNodeMenu =\n | StoryboardNodeFalseMenu\n | StoryboardNodeStaticMenu\n | StoryboardNodeBrickMenu\n | StoryboardNodeResolvableMenu;\n\nexport interface StoryboardNodeFalseMenu {\n type: \"FalseMenu\";\n}\n\nexport interface StoryboardNodeStaticMenu {\n type: \"StaticMenu\";\n}\n\nexport interface StoryboardNodeBrickMenu {\n type: \"BrickMenu\";\n raw: BrickMenuConf;\n brick: StoryboardNodeBrick;\n}\n\nexport interface StoryboardNodeResolvableMenu {\n type: \"ResolvableMenu\";\n resolve: StoryboardNodeResolvable;\n}\n\nexport type StoryboardNodeLifeCycle =\n | StoryboardNodeResolveLifeCycle\n | StoryboardNodeSimpleLifeCycle\n | StoryboardNodeConditionalLifeCycle\n | StoryboardNodeUnknownLifeCycle;\n\nexport interface StoryboardNodeResolveLifeCycle {\n type: \"ResolveLifeCycle\";\n rawContainer: BrickLifeCycle;\n rawKey: \"useResolves\";\n resolves: StoryboardNodeResolvable[] | undefined;\n}\n\nexport interface StoryboardNodeSimpleLifeCycle {\n type: \"SimpleLifeCycle\";\n name:\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMessageClose\"\n | \"onBeforePageLoad\"\n | \"onBeforePageLeave\"\n | \"onMediaChange\";\n rawContainer: BrickLifeCycle;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeConditionalLifeCycle {\n type: \"ConditionalLifeCycle\";\n name: \"onMessage\" | \"onScrollIntoView\";\n events: StoryboardNodeConditionalEvent[] | undefined;\n}\n\nexport interface StoryboardNodeUnknownLifeCycle {\n type: \"UnknownLifeCycle\";\n}\n\nexport interface StoryboardNodeEvent {\n type: \"Event\";\n rawContainer: BrickEventsMap;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventHandler {\n type: \"EventHandler\";\n raw: BrickEventHandler;\n callback: StoryboardNodeEventCallback[] | undefined;\n}\n\nexport interface StoryboardNodeConditionalEvent {\n type: \"ConditionalEvent\";\n rawContainer: MessageConf | ScrollIntoViewConf;\n rawKey: \"handlers\";\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventCallback {\n type: \"EventCallback\";\n rawContainer: BrickEventHandlerCallback;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"interfaces.js","names":[],"sources":["../../src/interfaces.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n BrickMenuConf,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MessageConf,\n ResolveConf,\n RouteConf,\n ScrollIntoViewConf,\n SlotConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\n\nexport type StoryboardNode =\n | StoryboardNodeRoot\n | StoryboardNodeRoute\n | StoryboardNodeTemplate\n | StoryboardNodeBrick\n | StoryboardNodeSlot\n | StoryboardNodeContext\n | StoryboardNodeResolvable\n | StoryboardNodeMenu\n | StoryboardNodeLifeCycle\n | StoryboardNodeEvent\n | StoryboardNodeEventHandler\n | StoryboardNodeConditionalEvent\n | StoryboardNodeEventCallback\n | StoryboardNodeCondition\n | StoryboardNodeUseBrickEntry\n | StoryboardNodeUseBackendEntry;\n\nexport interface StoryboardNodeRoot {\n type: \"Root\";\n raw: Storyboard;\n routes: StoryboardNodeRoute[];\n templates: StoryboardNodeTemplate[];\n}\n\nexport interface StoryboardNodeTemplate {\n type: \"Template\";\n raw: CustomTemplate | CustomTemplateConstructor;\n bricks?: StoryboardNodeBrick[];\n context?: StoryboardNodeContext[];\n}\n\nexport interface StoryboardNodeRoute {\n type: \"Route\";\n raw: RouteConf;\n context?: StoryboardNodeContext[];\n redirect?: StoryboardNodeResolvable;\n menu?: StoryboardNodeMenu;\n providers?: StoryboardNodeBrick[];\n defineResolves?: StoryboardNodeResolvable[];\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeBrick =\n | StoryboardNodeNormalBrick\n | StoryboardNodeUseBrick;\n\nexport interface StoryboardNodeBrickBase {\n type: \"Brick\";\n raw: BrickConf | UseSingleBrickConf;\n isUseBrick?: boolean;\n if?: StoryboardNodeCondition;\n events?: StoryboardNodeEvent[];\n lifeCycle?: StoryboardNodeLifeCycle[];\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n context?: StoryboardNodeContext[];\n children: StoryboardNodeSlot[];\n}\n\nexport interface StoryboardNodeNormalBrick extends StoryboardNodeBrickBase {\n raw: BrickConf;\n isUseBrick?: false;\n}\n\nexport interface StoryboardNodeUseBrick extends StoryboardNodeBrickBase {\n raw: UseSingleBrickConf;\n isUseBrick: true;\n}\n\nexport interface StoryboardNodeUseBrickEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBrickEntry\";\n rawKey: \"useBrick\";\n}\n\nexport interface StoryboardNodeUseBackendEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBackendEntry\";\n rawKey: \"useBackend\";\n}\n\nexport interface StoryboardNodeUseEntryBase {\n rawContainer: Record<string, unknown>;\n children: StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeCondition =\n | StoryboardNodeLiteralCondition\n | StoryboardNodeResolvableCondition;\n\nexport interface StoryboardNodeLiteralCondition {\n type: \"LiteralCondition\";\n}\n\nexport interface StoryboardNodeResolvableCondition {\n type: \"ResolvableCondition\";\n resolve: StoryboardNodeResolvable | undefined;\n}\n\nexport interface StoryboardNodeSlot {\n type: \"Slot\";\n raw: SlotConf;\n slot: string;\n childrenType: \"Route\" | \"Brick\";\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport interface StoryboardNodeContext {\n type: \"Context\";\n raw: ContextConf | CustomTemplateState;\n resolve?: StoryboardNodeResolvable;\n onChange?: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeResolvable {\n type: \"Resolvable\";\n raw: ResolveConf;\n isConditional?: boolean;\n}\n\nexport type StoryboardNodeMenu =\n | StoryboardNodeFalseMenu\n | StoryboardNodeStaticMenu\n | StoryboardNodeBrickMenu\n | StoryboardNodeResolvableMenu;\n\nexport interface StoryboardNodeFalseMenu {\n type: \"FalseMenu\";\n}\n\nexport interface StoryboardNodeStaticMenu {\n type: \"StaticMenu\";\n}\n\nexport interface StoryboardNodeBrickMenu {\n type: \"BrickMenu\";\n raw: BrickMenuConf;\n brick: StoryboardNodeBrick;\n}\n\nexport interface StoryboardNodeResolvableMenu {\n type: \"ResolvableMenu\";\n resolve: StoryboardNodeResolvable;\n}\n\nexport type StoryboardNodeLifeCycle =\n | StoryboardNodeResolveLifeCycle\n | StoryboardNodeSimpleLifeCycle\n | StoryboardNodeConditionalLifeCycle\n | StoryboardNodeUnknownLifeCycle;\n\nexport interface StoryboardNodeResolveLifeCycle {\n type: \"ResolveLifeCycle\";\n rawContainer: BrickLifeCycle;\n rawKey: \"useResolves\";\n resolves: StoryboardNodeResolvable[] | undefined;\n}\n\nexport interface StoryboardNodeSimpleLifeCycle {\n type: \"SimpleLifeCycle\";\n name:\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMessageClose\"\n | \"onBeforePageLoad\"\n | \"onBeforePageLeave\"\n | \"onMount\"\n | \"onUnmount\"\n | \"onMediaChange\";\n rawContainer: BrickLifeCycle;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeConditionalLifeCycle {\n type: \"ConditionalLifeCycle\";\n name: \"onMessage\" | \"onScrollIntoView\";\n events: StoryboardNodeConditionalEvent[] | undefined;\n}\n\nexport interface StoryboardNodeUnknownLifeCycle {\n type: \"UnknownLifeCycle\";\n}\n\nexport interface StoryboardNodeEvent {\n type: \"Event\";\n rawContainer: BrickEventsMap;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventHandler {\n type: \"EventHandler\";\n raw: BrickEventHandler;\n callback: StoryboardNodeEventCallback[] | undefined;\n}\n\nexport interface StoryboardNodeConditionalEvent {\n type: \"ConditionalEvent\";\n rawContainer: MessageConf | ScrollIntoViewConf;\n rawKey: \"handlers\";\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventCallback {\n type: \"EventCallback\";\n rawContainer: BrickEventHandlerCallback;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n"],"mappings":""}
@@ -162,6 +162,8 @@ function parseLifeCycles(lifeCycle) {
162
162
  case "onMessageClose":
163
163
  case "onBeforePageLoad":
164
164
  case "onBeforePageLeave":
165
+ case "onMount":
166
+ case "onUnmount":
165
167
  case "onMediaChange":
166
168
  return {
167
169
  type: "SimpleLifeCycle",
@@ -1 +1 @@
1
- {"version":3,"file":"parseStoryboard.js","names":["parseStoryboard","storyboard","type","raw","routes","parseRoutes","templates","parseTemplates","meta","customTemplates","options","Array","isArray","map","route","routesOnly","context","parseContext","redirect","parseResolvable","menu","parseMenu","providers","parseRouteProviders","defineResolves","item","filter","Boolean","undefined","children","parseBricks","bricks","parseTemplate","tpl","state","brick","parseBrick","isUseBrick","if","parseCondition","events","parseEvents","lifeCycle","parseLifeCycles","parseBrickProperties","properties","parseSlots","slots","condition","isObject","resolve","props","useBrick","useBackend","walkBrickProperties","value","push","rawContainer","rawKey","concat","provider","Object","values","entries","name","conf","resolves","handlers","parseEventHandlers","slot","childrenType","eventType","contexts","onChange","isConditional","handler","callback","parseEventCallback","callbackType"],"sources":["../../src/parseStoryboard.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MenuConf,\n MessageConf,\n ProviderConf,\n ResolveConf,\n RouteConf,\n RouteConfOfBricks,\n ScrollIntoViewConf,\n SlotsConf,\n Storyboard,\n UseProviderEventHandler,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\nimport type {\n StoryboardNodeBrick,\n StoryboardNodeCondition,\n StoryboardNodeConditionalEvent,\n StoryboardNodeContext,\n StoryboardNodeEvent,\n StoryboardNodeEventCallback,\n StoryboardNodeEventHandler,\n StoryboardNodeLifeCycle,\n StoryboardNodeMenu,\n StoryboardNodeResolvable,\n StoryboardNodeRoot,\n StoryboardNodeRoute,\n StoryboardNodeSlot,\n StoryboardNodeTemplate,\n StoryboardNodeUseBackendEntry,\n StoryboardNodeUseBrickEntry,\n} from \"./interfaces\";\n\n/** Parse storyboard as AST. */\nexport function parseStoryboard(storyboard: Storyboard): StoryboardNodeRoot {\n return {\n type: \"Root\",\n raw: storyboard,\n routes: parseRoutes(storyboard.routes),\n templates: parseTemplates(storyboard.meta?.customTemplates),\n };\n}\n\nexport interface ParseOptions {\n routesOnly?: boolean;\n isUseBrick?: boolean;\n}\n\n/** Parse storyboard routes as AST. */\nexport function parseRoutes(\n routes: RouteConf[],\n options?: ParseOptions\n): StoryboardNodeRoute[] {\n if (Array.isArray(routes)) {\n return routes.map<StoryboardNodeRoute>((route) => ({\n type: \"Route\",\n raw: route,\n ...(options?.routesOnly\n ? null\n : {\n context: parseContext(route.context),\n redirect: parseResolvable(route.redirect as ResolveConf),\n menu: parseMenu(route.menu),\n providers: parseRouteProviders(route.providers),\n defineResolves: Array.isArray(route.defineResolves)\n ? route.defineResolves\n .map((item) => parseResolvable(item))\n .filter(Boolean)\n : undefined,\n }),\n children:\n route.type === \"routes\"\n ? parseRoutes(route.routes, options)\n : parseBricks((route as RouteConfOfBricks).bricks, options),\n }));\n }\n return [];\n}\n\n/** Parse storyboard templates as AST. */\nexport function parseTemplates(\n templates: (CustomTemplate | CustomTemplateConstructor)[]\n): StoryboardNodeTemplate[] {\n if (Array.isArray(templates)) {\n return templates.map<StoryboardNodeTemplate>(parseTemplate);\n }\n return [];\n}\n\n/** Parse a storyboard template as AST. */\nexport function parseTemplate(\n tpl: CustomTemplate | CustomTemplateConstructor\n): StoryboardNodeTemplate {\n return {\n type: \"Template\",\n raw: tpl,\n bricks: parseBricks(tpl.bricks),\n context: parseContext(tpl.state),\n };\n}\n\nfunction parseBricks(\n bricks: BrickConf[] | UseSingleBrickConf[],\n options?: ParseOptions\n): StoryboardNodeBrick[] {\n if (Array.isArray(bricks)) {\n return bricks.map((brick) => parseBrick(brick, options));\n }\n return [];\n}\n\n/** Parse a storyboard brick as AST. */\nexport function parseBrick(\n brick: BrickConf | UseSingleBrickConf,\n options?: ParseOptions\n): StoryboardNodeBrick {\n return {\n type: \"Brick\",\n raw: brick,\n isUseBrick: options?.isUseBrick,\n ...(options?.routesOnly\n ? null\n : {\n if: parseCondition(brick.if),\n events: parseEvents(brick.events),\n lifeCycle: parseLifeCycles(brick.lifeCycle),\n ...parseBrickProperties(brick.properties),\n context: parseContext((brick as BrickConf).context),\n }),\n children: parseSlots(brick.slots as SlotsConf, options),\n } as StoryboardNodeBrick;\n}\n\nfunction parseCondition(condition: BrickConf[\"if\"]): StoryboardNodeCondition {\n if (isObject(condition)) {\n return {\n type: \"ResolvableCondition\",\n resolve: parseResolvable(condition),\n };\n }\n return {\n type: \"LiteralCondition\",\n };\n}\n\nfunction parseBrickProperties(props: unknown): {\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n} {\n const useBrick: StoryboardNodeUseBrickEntry[] = [];\n const useBackend: StoryboardNodeUseBackendEntry[] = [];\n\n function walkBrickProperties(value: unknown): void {\n if (Array.isArray(value)) {\n for (const item of value) {\n walkBrickProperties(item);\n }\n } else if (isObject(value)) {\n if (value.useBrick || value.useBackend) {\n if (value.useBrick) {\n useBrick.push({\n type: \"UseBrickEntry\",\n rawContainer: value,\n rawKey: \"useBrick\",\n children: parseBricks(\n ([] as UseSingleBrickConf[]).concat(value.useBrick),\n {\n isUseBrick: true,\n }\n ),\n });\n }\n const provider = value.useBackend?.provider;\n if (typeof provider === \"string\") {\n useBackend.push({\n type: \"UseBackendEntry\",\n rawContainer: value,\n rawKey: \"useBackend\",\n children: [parseBrick({ brick: provider })],\n });\n }\n } else {\n for (const item of Object.values(value)) {\n walkBrickProperties(item);\n }\n }\n }\n }\n\n walkBrickProperties(props);\n\n return { useBrick, useBackend };\n}\n\nfunction parseLifeCycles(lifeCycle: BrickLifeCycle): StoryboardNodeLifeCycle[] {\n if (isObject(lifeCycle)) {\n return Object.entries(lifeCycle).map<StoryboardNodeLifeCycle>(\n ([name, conf]) => {\n switch (name) {\n case \"useResolves\":\n return {\n type: \"ResolveLifeCycle\",\n rawContainer: lifeCycle,\n rawKey: name,\n resolves: Array.isArray(conf)\n ? conf\n .map((item) => parseResolvable(item, true))\n .filter(Boolean)\n : undefined,\n };\n case \"onPageLoad\":\n case \"onPageLeave\":\n case \"onAnchorLoad\":\n case \"onAnchorUnload\":\n case \"onMessageClose\":\n case \"onBeforePageLoad\":\n case \"onBeforePageLeave\":\n case \"onMediaChange\":\n return {\n type: \"SimpleLifeCycle\",\n name,\n rawContainer: lifeCycle,\n rawKey: name,\n handlers: parseEventHandlers(conf),\n };\n case \"onMessage\":\n case \"onScrollIntoView\":\n return {\n type: \"ConditionalLifeCycle\",\n name,\n events: ([] as (MessageConf | ScrollIntoViewConf)[])\n .concat(conf)\n .filter(Boolean)\n .map<StoryboardNodeConditionalEvent>((item) => ({\n type: \"ConditionalEvent\",\n rawContainer: item,\n rawKey: \"handlers\",\n handlers: parseEventHandlers(item.handlers),\n })),\n };\n default:\n return { type: \"UnknownLifeCycle\" };\n }\n }\n );\n }\n}\n\nfunction parseSlots(\n slots: SlotsConf,\n options?: ParseOptions\n): StoryboardNodeSlot[] {\n if (isObject(slots)) {\n return Object.entries(slots).map<StoryboardNodeSlot>(([slot, conf]) => ({\n type: \"Slot\",\n raw: conf,\n slot,\n childrenType: conf.type === \"routes\" ? \"Route\" : \"Brick\",\n children:\n conf.type === \"routes\"\n ? parseRoutes(conf.routes, options)\n : parseBricks(conf.bricks, options),\n }));\n }\n return [];\n}\n\nfunction parseEvents(events: BrickEventsMap): StoryboardNodeEvent[] {\n if (isObject(events)) {\n return Object.entries(events).map<StoryboardNodeEvent>(\n ([eventType, handlers]) => ({\n type: \"Event\",\n rawContainer: events,\n rawKey: eventType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseContext(\n contexts: (ContextConf | CustomTemplateState)[]\n): StoryboardNodeContext[] {\n if (Array.isArray(contexts)) {\n return contexts.map<StoryboardNodeContext>((context) => ({\n type: \"Context\",\n raw: context,\n resolve: parseResolvable(context.resolve),\n onChange: parseEventHandlers(context.onChange),\n }));\n }\n}\n\nfunction parseMenu(menu: MenuConf): StoryboardNodeMenu {\n if (menu === false) {\n return { type: \"FalseMenu\" };\n }\n if (!menu) {\n return;\n }\n switch (menu.type) {\n case \"brick\":\n return {\n type: \"BrickMenu\",\n raw: menu,\n brick: parseBrick(menu),\n };\n case \"resolve\":\n return {\n type: \"ResolvableMenu\",\n resolve: parseResolvable(menu.resolve),\n };\n default:\n return {\n type: \"StaticMenu\",\n };\n }\n}\n\nfunction parseResolvable(\n resolve: ResolveConf,\n isConditional?: boolean\n): StoryboardNodeResolvable {\n if (isObject(resolve)) {\n return {\n type: \"Resolvable\",\n raw: resolve,\n isConditional,\n };\n }\n}\n\nfunction parseEventHandlers(\n handlers: BrickEventHandler | BrickEventHandler[]\n): StoryboardNodeEventHandler[] {\n return ([] as BrickEventHandler[])\n .concat(handlers)\n .filter(Boolean)\n .map<StoryboardNodeEventHandler>((handler) => ({\n type: \"EventHandler\",\n callback: parseEventCallback(\n (handler as UseProviderEventHandler).callback\n ),\n raw: handler,\n }));\n}\n\nfunction parseEventCallback(\n callback: BrickEventHandlerCallback\n): StoryboardNodeEventCallback[] {\n if (isObject(callback)) {\n return Object.entries(callback).map<StoryboardNodeEventCallback>(\n ([callbackType, handlers]) => ({\n type: \"EventCallback\",\n rawContainer: callback as BrickEventsMap,\n rawKey: callbackType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseRouteProviders(\n providers?: ProviderConf[]\n): StoryboardNodeBrick[] {\n if (Array.isArray(providers)) {\n return providers.map<StoryboardNodeBrick>((provider) =>\n parseBrick(typeof provider === \"string\" ? { brick: provider } : provider)\n );\n }\n}\n\n// Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744\nfunction isObject(value: unknown): value is Record<string, any> {\n const type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parseStoryboard.js","names":["parseStoryboard","storyboard","type","raw","routes","parseRoutes","templates","parseTemplates","meta","customTemplates","options","Array","isArray","map","route","routesOnly","context","parseContext","redirect","parseResolvable","menu","parseMenu","providers","parseRouteProviders","defineResolves","item","filter","Boolean","undefined","children","parseBricks","bricks","parseTemplate","tpl","state","brick","parseBrick","isUseBrick","if","parseCondition","events","parseEvents","lifeCycle","parseLifeCycles","parseBrickProperties","properties","parseSlots","slots","condition","isObject","resolve","props","useBrick","useBackend","walkBrickProperties","value","push","rawContainer","rawKey","concat","provider","Object","values","entries","name","conf","resolves","handlers","parseEventHandlers","slot","childrenType","eventType","contexts","onChange","isConditional","handler","callback","parseEventCallback","callbackType"],"sources":["../../src/parseStoryboard.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MenuConf,\n MessageConf,\n ProviderConf,\n ResolveConf,\n RouteConf,\n RouteConfOfBricks,\n ScrollIntoViewConf,\n SlotsConf,\n Storyboard,\n UseProviderEventHandler,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\nimport type {\n StoryboardNodeBrick,\n StoryboardNodeCondition,\n StoryboardNodeConditionalEvent,\n StoryboardNodeContext,\n StoryboardNodeEvent,\n StoryboardNodeEventCallback,\n StoryboardNodeEventHandler,\n StoryboardNodeLifeCycle,\n StoryboardNodeMenu,\n StoryboardNodeResolvable,\n StoryboardNodeRoot,\n StoryboardNodeRoute,\n StoryboardNodeSlot,\n StoryboardNodeTemplate,\n StoryboardNodeUseBackendEntry,\n StoryboardNodeUseBrickEntry,\n} from \"./interfaces\";\n\n/** Parse storyboard as AST. */\nexport function parseStoryboard(storyboard: Storyboard): StoryboardNodeRoot {\n return {\n type: \"Root\",\n raw: storyboard,\n routes: parseRoutes(storyboard.routes),\n templates: parseTemplates(storyboard.meta?.customTemplates),\n };\n}\n\nexport interface ParseOptions {\n routesOnly?: boolean;\n isUseBrick?: boolean;\n}\n\n/** Parse storyboard routes as AST. */\nexport function parseRoutes(\n routes: RouteConf[],\n options?: ParseOptions\n): StoryboardNodeRoute[] {\n if (Array.isArray(routes)) {\n return routes.map<StoryboardNodeRoute>((route) => ({\n type: \"Route\",\n raw: route,\n ...(options?.routesOnly\n ? null\n : {\n context: parseContext(route.context),\n redirect: parseResolvable(route.redirect as ResolveConf),\n menu: parseMenu(route.menu),\n providers: parseRouteProviders(route.providers),\n defineResolves: Array.isArray(route.defineResolves)\n ? route.defineResolves\n .map((item) => parseResolvable(item))\n .filter(Boolean)\n : undefined,\n }),\n children:\n route.type === \"routes\"\n ? parseRoutes(route.routes, options)\n : parseBricks((route as RouteConfOfBricks).bricks, options),\n }));\n }\n return [];\n}\n\n/** Parse storyboard templates as AST. */\nexport function parseTemplates(\n templates: (CustomTemplate | CustomTemplateConstructor)[]\n): StoryboardNodeTemplate[] {\n if (Array.isArray(templates)) {\n return templates.map<StoryboardNodeTemplate>(parseTemplate);\n }\n return [];\n}\n\n/** Parse a storyboard template as AST. */\nexport function parseTemplate(\n tpl: CustomTemplate | CustomTemplateConstructor\n): StoryboardNodeTemplate {\n return {\n type: \"Template\",\n raw: tpl,\n bricks: parseBricks(tpl.bricks),\n context: parseContext(tpl.state),\n };\n}\n\nfunction parseBricks(\n bricks: BrickConf[] | UseSingleBrickConf[],\n options?: ParseOptions\n): StoryboardNodeBrick[] {\n if (Array.isArray(bricks)) {\n return bricks.map((brick) => parseBrick(brick, options));\n }\n return [];\n}\n\n/** Parse a storyboard brick as AST. */\nexport function parseBrick(\n brick: BrickConf | UseSingleBrickConf,\n options?: ParseOptions\n): StoryboardNodeBrick {\n return {\n type: \"Brick\",\n raw: brick,\n isUseBrick: options?.isUseBrick,\n ...(options?.routesOnly\n ? null\n : {\n if: parseCondition(brick.if),\n events: parseEvents(brick.events),\n lifeCycle: parseLifeCycles(brick.lifeCycle),\n ...parseBrickProperties(brick.properties),\n context: parseContext((brick as BrickConf).context),\n }),\n children: parseSlots(brick.slots as SlotsConf, options),\n } as StoryboardNodeBrick;\n}\n\nfunction parseCondition(condition: BrickConf[\"if\"]): StoryboardNodeCondition {\n if (isObject(condition)) {\n return {\n type: \"ResolvableCondition\",\n resolve: parseResolvable(condition),\n };\n }\n return {\n type: \"LiteralCondition\",\n };\n}\n\nfunction parseBrickProperties(props: unknown): {\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n} {\n const useBrick: StoryboardNodeUseBrickEntry[] = [];\n const useBackend: StoryboardNodeUseBackendEntry[] = [];\n\n function walkBrickProperties(value: unknown): void {\n if (Array.isArray(value)) {\n for (const item of value) {\n walkBrickProperties(item);\n }\n } else if (isObject(value)) {\n if (value.useBrick || value.useBackend) {\n if (value.useBrick) {\n useBrick.push({\n type: \"UseBrickEntry\",\n rawContainer: value,\n rawKey: \"useBrick\",\n children: parseBricks(\n ([] as UseSingleBrickConf[]).concat(value.useBrick),\n {\n isUseBrick: true,\n }\n ),\n });\n }\n const provider = value.useBackend?.provider;\n if (typeof provider === \"string\") {\n useBackend.push({\n type: \"UseBackendEntry\",\n rawContainer: value,\n rawKey: \"useBackend\",\n children: [parseBrick({ brick: provider })],\n });\n }\n } else {\n for (const item of Object.values(value)) {\n walkBrickProperties(item);\n }\n }\n }\n }\n\n walkBrickProperties(props);\n\n return { useBrick, useBackend };\n}\n\nfunction parseLifeCycles(lifeCycle: BrickLifeCycle): StoryboardNodeLifeCycle[] {\n if (isObject(lifeCycle)) {\n return Object.entries(lifeCycle).map<StoryboardNodeLifeCycle>(\n ([name, conf]) => {\n switch (name) {\n case \"useResolves\":\n return {\n type: \"ResolveLifeCycle\",\n rawContainer: lifeCycle,\n rawKey: name,\n resolves: Array.isArray(conf)\n ? conf\n .map((item) => parseResolvable(item, true))\n .filter(Boolean)\n : undefined,\n };\n case \"onPageLoad\":\n case \"onPageLeave\":\n case \"onAnchorLoad\":\n case \"onAnchorUnload\":\n case \"onMessageClose\":\n case \"onBeforePageLoad\":\n case \"onBeforePageLeave\":\n case \"onMount\":\n case \"onUnmount\":\n case \"onMediaChange\":\n return {\n type: \"SimpleLifeCycle\",\n name,\n rawContainer: lifeCycle,\n rawKey: name,\n handlers: parseEventHandlers(conf),\n };\n case \"onMessage\":\n case \"onScrollIntoView\":\n return {\n type: \"ConditionalLifeCycle\",\n name,\n events: ([] as (MessageConf | ScrollIntoViewConf)[])\n .concat(conf)\n .filter(Boolean)\n .map<StoryboardNodeConditionalEvent>((item) => ({\n type: \"ConditionalEvent\",\n rawContainer: item,\n rawKey: \"handlers\",\n handlers: parseEventHandlers(item.handlers),\n })),\n };\n default:\n return { type: \"UnknownLifeCycle\" };\n }\n }\n );\n }\n}\n\nfunction parseSlots(\n slots: SlotsConf,\n options?: ParseOptions\n): StoryboardNodeSlot[] {\n if (isObject(slots)) {\n return Object.entries(slots).map<StoryboardNodeSlot>(([slot, conf]) => ({\n type: \"Slot\",\n raw: conf,\n slot,\n childrenType: conf.type === \"routes\" ? \"Route\" : \"Brick\",\n children:\n conf.type === \"routes\"\n ? parseRoutes(conf.routes, options)\n : parseBricks(conf.bricks, options),\n }));\n }\n return [];\n}\n\nfunction parseEvents(events: BrickEventsMap): StoryboardNodeEvent[] {\n if (isObject(events)) {\n return Object.entries(events).map<StoryboardNodeEvent>(\n ([eventType, handlers]) => ({\n type: \"Event\",\n rawContainer: events,\n rawKey: eventType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseContext(\n contexts: (ContextConf | CustomTemplateState)[]\n): StoryboardNodeContext[] {\n if (Array.isArray(contexts)) {\n return contexts.map<StoryboardNodeContext>((context) => ({\n type: \"Context\",\n raw: context,\n resolve: parseResolvable(context.resolve),\n onChange: parseEventHandlers(context.onChange),\n }));\n }\n}\n\nfunction parseMenu(menu: MenuConf): StoryboardNodeMenu {\n if (menu === false) {\n return { type: \"FalseMenu\" };\n }\n if (!menu) {\n return;\n }\n switch (menu.type) {\n case \"brick\":\n return {\n type: \"BrickMenu\",\n raw: menu,\n brick: parseBrick(menu),\n };\n case \"resolve\":\n return {\n type: \"ResolvableMenu\",\n resolve: parseResolvable(menu.resolve),\n };\n default:\n return {\n type: \"StaticMenu\",\n };\n }\n}\n\nfunction parseResolvable(\n resolve: ResolveConf,\n isConditional?: boolean\n): StoryboardNodeResolvable {\n if (isObject(resolve)) {\n return {\n type: \"Resolvable\",\n raw: resolve,\n isConditional,\n };\n }\n}\n\nfunction parseEventHandlers(\n handlers: BrickEventHandler | BrickEventHandler[]\n): StoryboardNodeEventHandler[] {\n return ([] as BrickEventHandler[])\n .concat(handlers)\n .filter(Boolean)\n .map<StoryboardNodeEventHandler>((handler) => ({\n type: \"EventHandler\",\n callback: parseEventCallback(\n (handler as UseProviderEventHandler).callback\n ),\n raw: handler,\n }));\n}\n\nfunction parseEventCallback(\n callback: BrickEventHandlerCallback\n): StoryboardNodeEventCallback[] {\n if (isObject(callback)) {\n return Object.entries(callback).map<StoryboardNodeEventCallback>(\n ([callbackType, handlers]) => ({\n type: \"EventCallback\",\n rawContainer: callback as BrickEventsMap,\n rawKey: callbackType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseRouteProviders(\n providers?: ProviderConf[]\n): StoryboardNodeBrick[] {\n if (Array.isArray(providers)) {\n return providers.map<StoryboardNodeBrick>((provider) =>\n parseBrick(typeof provider === \"string\" ? { brick: provider } : provider)\n );\n }\n}\n\n// Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744\nfunction isObject(value: unknown): value is Record<string, any> {\n const type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\n"],"mappings":"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"}
@@ -106,7 +106,7 @@ export interface StoryboardNodeResolveLifeCycle {
106
106
  }
107
107
  export interface StoryboardNodeSimpleLifeCycle {
108
108
  type: "SimpleLifeCycle";
109
- name: "onPageLoad" | "onPageLeave" | "onAnchorLoad" | "onAnchorUnload" | "onMessageClose" | "onBeforePageLoad" | "onBeforePageLeave" | "onMediaChange";
109
+ name: "onPageLoad" | "onPageLeave" | "onAnchorLoad" | "onAnchorUnload" | "onMessageClose" | "onBeforePageLoad" | "onBeforePageLeave" | "onMount" | "onUnmount" | "onMediaChange";
110
110
  rawContainer: BrickLifeCycle;
111
111
  rawKey: string;
112
112
  handlers: StoryboardNodeEventHandler[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/storyboard",
3
- "version": "0.2.3",
3
+ "version": "0.3.0",
4
4
  "description": "Parse storyboard as AST",
5
5
  "homepage": "https://github.com/easyops-cn/next-core/tree/master/packages/storyboard",
6
6
  "license": "GPL-3.0",
@@ -29,10 +29,10 @@
29
29
  },
30
30
  "sideEffects": false,
31
31
  "dependencies": {
32
- "@next-core/brick-types": "^2.81.11"
32
+ "@next-core/brick-types": "^2.82.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@next-core/build-next-libs": "^0.2.15"
36
36
  },
37
- "gitHead": "ae68ab32345e27632a00ab745335acfb0f155704"
37
+ "gitHead": "569c22743a56ab382a45477c4a787da887a3a4f3"
38
38
  }