@bitflow/core 0.5.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/dist/bits.d.ts +128 -0
- package/dist/bitsSchema.d.ts +150 -0
- package/dist/do.d.ts +37 -0
- package/dist/doSchema.d.ts +1478 -0
- package/dist/findLast.d.ts +1 -0
- package/dist/flow.d.ts +169 -0
- package/dist/flowSchema.d.ts +2520 -0
- package/dist/groupBy.d.ts +1 -0
- package/dist/index.cjs.js +725 -0
- package/dist/index.cjs.js.map +7 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.esm.mjs +703 -0
- package/dist/index.esm.mjs.map +7 -0
- package/dist/lerpColor.d.ts +1 -0
- package/dist/levenshtein.d.ts +1 -0
- package/dist/uuid.d.ts +1 -0
- package/package.json +24 -22
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.ts", "../../../scripts/emotion-shim.js", "../src/bits.ts", "../src/bitsSchema.ts", "../src/do.ts", "../src/doSchema.ts", "../src/flowSchema.ts", "../src/findLast.ts", "../src/flow.ts", "../src/groupBy.ts", "../src/lerpColor.ts", "../src/levenshtein.ts", "../src/uuid.ts"],
|
|
4
|
+
"sourcesContent": ["export * from \"./bits\";\nexport * from \"./bitsSchema\";\nexport * from \"./do\";\nexport * from \"./doSchema\";\nexport * from \"./findLast\";\nexport * from \"./flow\";\nexport * from \"./flowSchema\";\nexport * from \"./groupBy\";\nexport * from \"./lerpColor\";\nexport * from \"./levenshtein\";\nexport * from \"./uuid\";\n", "import { jsx } from \"@emotion/react\";\n\nexport { jsx };\n", "import { ForwardRefExoticComponent, ReactElement, RefAttributes } from \"react\";\nimport { ZodSchema } from \"zod\";\nimport { DoResult } from \"./do\";\n\nexport interface Action {\n type: string;\n payload?: any;\n}\n\nexport interface FeedbackMessage {\n message: string;\n severity: \"error\" | \"warning\" | \"info\" | \"success\";\n}\n\nexport interface TitleProps<T extends Bitflow.Title> {\n title: Pick<T, \"view\" | \"subtype\">;\n}\n\nexport interface TitleViewFormProps {\n name: string;\n}\n\nexport interface TitleBit<T extends Bitflow.Title = any> {\n ViewForm: (props: TitleViewFormProps) => ReactElement | null;\n Title: (props: TitleProps<T>) => ReactElement | null;\n TitleSchema: ZodSchema<T>;\n useInformation: () => {\n name: string;\n description: string;\n example: T;\n };\n}\n\nexport interface InputProps<I extends Bitflow.Input> {\n input: Pick<I, \"view\" | \"subtype\">;\n}\n\nexport interface InputViewFormProps {\n name: string;\n}\n\nexport interface InputBit<I extends Bitflow.Input = any> {\n ViewForm: (props: InputViewFormProps) => ReactElement | null;\n Input: (props: InputProps<I>) => ReactElement | null;\n useInformation: () => {\n name: string;\n description: string;\n example: I;\n };\n InputSchema: ZodSchema<I>;\n}\n\nexport interface StartProps<S extends Bitflow.Start> {\n start: Pick<S, \"view\" | \"subtype\">;\n}\n\nexport interface StartViewFormProps {\n name: string;\n}\n\nexport interface StartBit<S extends Bitflow.Start = any> {\n ViewForm: (props: StartViewFormProps) => ReactElement | null;\n Start: (props: StartProps<S>) => ReactElement | null;\n StartSchema: ZodSchema<S>;\n useInformation: () => {\n name: string;\n description: string;\n example: S;\n };\n}\n\nexport interface EndProps<E extends Bitflow.End> {\n end: Pick<E, \"view\" | \"subtype\">;\n getResult: () => Promise<DoResult>;\n}\n\nexport interface EndViewFormProps {\n name: string;\n}\n\nexport interface EndBit<E extends Bitflow.End = any> {\n ViewForm: (props: EndViewFormProps) => ReactElement | null;\n End: (props: EndProps<E>) => ReactElement | null;\n useInformation: () => {\n name: string;\n description: string;\n example: E;\n };\n EndSchema: ZodSchema<E>;\n}\n\nexport interface TaskProps<\n T extends Bitflow.Task,\n R extends Bitflow.TaskResult,\n A extends Bitflow.TaskAnswer,\n Act extends Action\n> {\n mode: \"default\" | \"recording\" | \"result\";\n task: Pick<T, \"view\" | \"subtype\">;\n result?: R;\n answer?: A;\n onChange?: (value: A) => void;\n onAction?: (action: Act) => void;\n}\n\nexport interface TaskRef<Act> {\n dispatch: (action: Act) => void;\n}\n\nexport interface TaskEvaluationFormProps {\n name: string;\n}\n\nexport interface TaskViewFormProps {\n name: string;\n}\n\nexport interface TaskFeedbackFormProps {\n name: string;\n}\n\nexport interface TaskStatisticProps<\n S extends Bitflow.TaskStatistic,\n T extends Bitflow.Task\n> {\n statistic: S;\n task: T;\n}\n\nexport interface TaskEvaluateParams<\n A extends Bitflow.TaskAnswer,\n T extends Bitflow.Task\n> {\n answer?: A;\n task: T;\n}\nexport type Evaluate<\n A extends Bitflow.TaskAnswer = Bitflow.TaskAnswer,\n T extends Bitflow.Task = Bitflow.Task,\n R extends Bitflow.TaskResult = Bitflow.TaskResult\n> = ({ answer, task }: TaskEvaluateParams<A, T>) => Promise<R>;\n\nexport interface UpdateTaskStatisticParams<\n S extends Bitflow.TaskStatistic,\n A extends Bitflow.TaskAnswer,\n T extends Bitflow.Task,\n R extends Bitflow.TaskResult\n> {\n statistic?: S;\n answer: A;\n task: T;\n result?: R;\n}\nexport type UpdateTaskStatistic<\n S extends Bitflow.TaskStatistic,\n A extends Bitflow.TaskAnswer,\n T extends Bitflow.Task,\n R extends Bitflow.TaskResult\n> = ({\n statistic,\n answer,\n task,\n result,\n}: UpdateTaskStatisticParams<S, A, T, R>) => Promise<S>;\n\nexport interface TaskBit<\n T extends Bitflow.Task = any,\n A extends Bitflow.TaskAnswer = any,\n R extends Bitflow.TaskResult = any,\n S extends Bitflow.TaskStatistic = any,\n Act extends Action = any\n> {\n ViewForm: (props: TaskViewFormProps) => ReactElement | null;\n EvaluationForm: (props: TaskEvaluationFormProps) => ReactElement | null;\n FeedbackForm: (props: TaskFeedbackFormProps) => ReactElement | null;\n Task: ForwardRefExoticComponent<\n TaskProps<T, R, A, Act> & RefAttributes<TaskRef<Act>>\n >;\n Statistic: (props: TaskStatisticProps<S, T>) => ReactElement | null;\n updateStatistic: UpdateTaskStatistic<S, A, T, R>;\n TaskSchema: ZodSchema<T>;\n useInformation: () => {\n name: string;\n description: string;\n example: T;\n };\n evaluate: Evaluate<A, T, R>;\n}\n\nexport const makeEvaluate =\n (evaluateMap: Record<string, Evaluate>): Evaluate =>\n ({ task, answer }) => {\n const subtype = task.subtype;\n const evaluate = evaluateMap[subtype];\n\n if (!evaluate) {\n throw new Error(\"subtype not supported\");\n }\n\n return evaluate({ answer, task });\n };\n", "import * as z from \"zod\";\n\nexport const FeedbackMessageSchema = z.object({\n message: z.string(),\n severity: z.enum([\"error\", \"warning\", \"info\", \"success\"]),\n});\n\nexport const TaskSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n subtype: z.string(),\n view: z.record(z.any()),\n evaluation: z.object({\n mode: z.enum([\"auto\", \"skip\", \"manual\"]),\n enableRetry: z.boolean(),\n showFeedback: z.boolean(),\n }),\n feedback: z.record(z.any()).optional(),\n});\n\nexport const TaskStatisticSchema = z.object({\n subtype: z.string(),\n count: z.number(),\n});\n\nexport const TaskAnswerSchema = z.object({\n subtype: z.string(),\n});\n\nexport const TaskResultSchema = z.object({\n subtype: z.string(),\n state: z.enum([\"unknown\", \"manual\", \"correct\", \"wrong\"]),\n allowRetry: z.boolean().optional(),\n feedback: z.any(),\n});\n\nexport const InputSchema = z.object({\n name: z.string(),\n description: z.string(),\n subtype: z.string(),\n view: z.object({}),\n});\n\nexport const TitleSchema = z.object({\n name: z.string(),\n description: z.string(),\n subtype: z.string(),\n view: z.object({}),\n});\n\nexport const StartSchema = z.object({\n name: z.string(),\n description: z.string(),\n subtype: z.string(),\n view: z.object({}),\n});\n\nexport const EndSchema = z.object({\n name: z.string(),\n description: z.string(),\n subtype: z.string(),\n view: z.object({}),\n});\n", "import { InteractiveFlowPublicNode } from \"./flow\";\n\nexport interface DoBaseTry {\n node: InteractiveFlowPublicNode;\n startDate: Date;\n try: number;\n status: string;\n}\n\nexport interface DoStartedTry extends DoBaseTry {\n status: \"started\";\n}\n\nexport const isDoStartedTry = (d: DoTry): d is DoStartedTry => {\n return d.status === \"started\";\n};\n\nexport interface DoFinishedTry extends DoBaseTry {\n status: \"finished\";\n endDate: Date;\n answer?: Bitflow.TaskAnswer;\n result?: Bitflow.TaskResult;\n}\n\nexport const isDoFinishedTry = (d: DoTry): d is DoFinishedTry => {\n return d.status === \"finished\";\n};\n\nexport interface DoSkippedTry extends DoBaseTry {\n status: \"skipped\";\n evaluation: {\n mode: \"auto\" | \"manual\" | \"skip\";\n };\n endDate: Date;\n}\n\nexport const isDoSkippedTry = (d: DoTry): d is DoSkippedTry => {\n return d.status === \"skipped\";\n};\n\nexport type DoTry = DoStartedTry | DoSkippedTry | DoFinishedTry;\n\nexport const skipDoTry = (\n doResult: DoResult,\n evaluation: DoSkippedTry[\"evaluation\"] = { mode: \"skip\" }\n): DoResult => {\n const { tries } = doResult;\n let { maxPoints } = doResult;\n const currentTry = tries[tries.length - 1];\n\n const hasTry = tries.find(\n (doTry) =>\n doTry.node.id === currentTry.node.id && doTry.status !== \"started\"\n );\n\n if (!hasTry && evaluation?.mode !== \"skip\") {\n maxPoints += 1;\n }\n\n tries[tries.length - 1] = {\n ...currentTry,\n evaluation,\n status: \"skipped\",\n endDate: new Date(),\n };\n\n return {\n ...doResult,\n maxPoints,\n tries,\n };\n};\n\nexport interface DoResult {\n points: number;\n maxPoints: number;\n startDate: Date;\n endDate: Date;\n tries: DoTry[];\n}\n\nexport const finishDoTry = (\n doResult: DoResult,\n answer?: Bitflow.TaskAnswer,\n result?: Bitflow.TaskResult\n): DoResult => {\n const { tries } = doResult;\n let { points, maxPoints } = doResult;\n const currentTry = tries[tries.length - 1] as any;\n\n const hasTry = tries.find(\n (doTry) =>\n doTry.node.id === currentTry.node.id && doTry.status !== \"started\"\n );\n\n if (!hasTry && result?.state !== \"unknown\") {\n maxPoints += 1;\n }\n\n tries[tries.length - 1] = {\n ...currentTry,\n status: \"finished\",\n endDate: new Date(),\n answer,\n result,\n };\n\n const lastTry = tries\n .filter(isDoFinishedTry)\n .find(\n (doTry) =>\n doTry.node.id === currentTry.node.id && currentTry.try - 1 === doTry.try\n );\n\n if (!lastTry && result?.state === \"correct\") {\n points += 1;\n } else if (\n lastTry?.result?.state === \"correct\" &&\n result?.state !== \"correct\"\n ) {\n points -= 1;\n } else if (\n lastTry?.result?.state !== \"correct\" &&\n result?.state === \"correct\"\n ) {\n points += 1;\n }\n\n return {\n ...doResult,\n maxPoints,\n points,\n tries,\n };\n};\n\nexport const retryDoTry = (doResult: DoResult): DoResult => {\n const { tries } = doResult;\n const lastTry = tries[tries.length - 1];\n tries.push({\n status: \"started\",\n try: lastTry.try + 1,\n startDate: new Date(),\n node: {\n ...lastTry.node,\n },\n });\n\n return { ...doResult, tries };\n};\n", "import { z, ZodSchema } from \"zod\";\nimport { TaskAnswerSchema, TaskResultSchema } from \"./bitsSchema\";\nimport { makeInteractiveFlowNodeSchema } from \"./flowSchema\";\n\ntype makeDoTrySchemaProps = {\n start: ZodSchema<Bitflow.Start>;\n end: ZodSchema<Bitflow.End>;\n input: ZodSchema<Bitflow.Input>;\n title: ZodSchema<Bitflow.Title>;\n task: ZodSchema<Bitflow.Task>;\n};\n\nexport const makeDoBaseTrySchema = (flowNodeSchemas: makeDoTrySchemaProps) =>\n z.object({\n node: makeInteractiveFlowNodeSchema(flowNodeSchemas),\n startDate: z.date(),\n try: z.number(),\n status: z.string(),\n });\n\nexport const makeDoStartedTry = (flowNodeSchemas: makeDoTrySchemaProps) =>\n makeDoBaseTrySchema(flowNodeSchemas).merge(\n z.object({\n status: z.literal(\"started\"),\n })\n );\n\nexport const makeDoFinishedTry = (flowNodeSchemas: makeDoTrySchemaProps) =>\n makeDoBaseTrySchema(flowNodeSchemas).merge(\n z.object({\n status: z.literal(\"finished\"),\n endDate: z.date(),\n answer: TaskAnswerSchema.optional(),\n result: TaskResultSchema.optional(),\n })\n );\n\nexport const makeDoSkippedTry = (flowNodeSchemas: makeDoTrySchemaProps) =>\n makeDoBaseTrySchema(flowNodeSchemas).merge(\n z.object({\n status: z.literal(\"skipped\"),\n endDate: z.date(),\n })\n );\n", "import { z, ZodSchema } from \"zod\";\nimport {\n AndCondition,\n Condition,\n EqualCondition,\n GreaterCondition,\n InCondition,\n LessCondition,\n OrCondition,\n PrimitiveCondition,\n TrueCondition,\n} from \"./flow\";\n\nconst NodeBaseSchema = z.object({\n id: z.string(),\n position: z.object({\n x: z.number(),\n y: z.number(),\n }),\n});\n\nexport const FlowCheckpointNodeSchema = NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"checkpoint\"),\n })\n);\n\nexport const FlowSynchronizeNodeSchema = NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"synchronize\"),\n data: z.object({\n unlocked: z.boolean(),\n }),\n })\n);\n\nexport const makeFlowTaskNodeSchema = (task: ZodSchema<Bitflow.Task>) =>\n NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"task\"),\n data: task,\n })\n );\n\nexport const makeFlowStartNodeSchema = (start: ZodSchema<Bitflow.Start>) =>\n NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"start\"),\n data: start,\n })\n );\n\nexport const makeFlowEndNodeSchema = (end: ZodSchema<Bitflow.End>) =>\n NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"end\"),\n data: end,\n })\n );\n\nexport const makeFlowInputNodeSchema = (input: ZodSchema<Bitflow.Input>) =>\n NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"input\"),\n data: input,\n })\n );\n\nexport const makeFlowTitleNodeSchema = (title: ZodSchema<Bitflow.Title>) =>\n NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"title\"),\n data: title,\n })\n );\n\nexport const EqualConditionSchema: ZodSchema<EqualCondition> = z.object({\n type: z.literal(\"equal\"),\n not: z.boolean(),\n nodeId: z.string(),\n key: z.string(),\n value: z.union([z.string(), z.number()]),\n});\n\nexport const TrueConditionSchema: ZodSchema<TrueCondition> = z.object({\n type: z.literal(\"true\"),\n not: z.boolean(),\n nodeId: z.string(),\n key: z.string(),\n});\n\nexport const GreaterConditionSchema: ZodSchema<GreaterCondition> = z.object({\n type: z.literal(\"greater\"),\n include: z.boolean(),\n not: z.boolean(),\n nodeId: z.string(),\n key: z.string(),\n value: z.number(),\n});\n\nexport const LessConditionSchema: ZodSchema<LessCondition> = z.object({\n type: z.literal(\"less\"),\n include: z.boolean(),\n not: z.boolean(),\n nodeId: z.string(),\n key: z.string(),\n value: z.number(),\n});\n\nexport const InConditionSchema: ZodSchema<InCondition> = z.object({\n type: z.literal(\"in\"),\n not: z.boolean(),\n nodeId: z.string(),\n key: z.string(),\n value: z.array(z.union([z.string(), z.number()])),\n});\n\nexport const PrimitiveConditionSchema: ZodSchema<PrimitiveCondition> = z.union([\n EqualConditionSchema,\n TrueConditionSchema,\n GreaterConditionSchema,\n LessConditionSchema,\n InConditionSchema,\n]);\n\nexport const AndConditionSchema: ZodSchema<AndCondition> = z.object({\n type: z.literal(\"and\"),\n conditions: z.array(PrimitiveConditionSchema),\n});\n\nexport const OrConditionSchema: ZodSchema<OrCondition> = z.object({\n type: z.literal(\"or\"),\n conditions: z.array(PrimitiveConditionSchema),\n});\n\nexport const ConditionSchema: ZodSchema<Condition> = z.union([\n PrimitiveConditionSchema,\n AndConditionSchema,\n OrConditionSchema,\n]);\n\nexport const SplitAnswerSchema = z.object({\n condition: ConditionSchema,\n});\n\nexport const FlowSplitAnswerNodeSchema = NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"split-answer\"),\n data: SplitAnswerSchema,\n })\n);\n\nexport const SplitResultSchema = z.object({\n condition: ConditionSchema,\n});\n\nexport const FlowSplitResultNodeSchema = NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"split-result\"),\n data: SplitResultSchema,\n })\n);\n\nexport const SplitPointsSchema = z.object({\n points: z.number(),\n});\n\nexport const FlowSplitPointsNodeSchema = NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"split-points\"),\n data: SplitPointsSchema,\n })\n);\n\nexport const PortalInputSchema = z.object({\n portal: z.string(),\n description: z.string(),\n});\n\nexport const PortalOutputSchema = z.object({\n portal: z.string(),\n description: z.string(),\n});\n\nexport const FlowPortalInputNodeSchema = NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"portal-input\"),\n data: PortalInputSchema,\n })\n);\n\nexport const FlowPortalOutputNodeSchema = NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"portal-output\"),\n data: PortalOutputSchema,\n })\n);\n\nexport const FlowSplitRandomNodeSchema = NodeBaseSchema.merge(\n z.object({\n type: z.literal(\"split-random\"),\n })\n);\n\nexport const ControlFlowNodeSchema = z.union([\n FlowSplitAnswerNodeSchema,\n FlowSplitResultNodeSchema,\n FlowSplitPointsNodeSchema,\n FlowSplitRandomNodeSchema,\n FlowPortalInputNodeSchema,\n FlowPortalOutputNodeSchema,\n]);\n\nexport const makeInteractiveFlowNodeSchema = ({\n start,\n end,\n input,\n title,\n task,\n}: {\n start: ZodSchema<Bitflow.Start>;\n end: ZodSchema<Bitflow.End>;\n input: ZodSchema<Bitflow.Input>;\n title: ZodSchema<Bitflow.Title>;\n task: ZodSchema<Bitflow.Task>;\n}) =>\n z.union([\n makeFlowStartNodeSchema(start),\n makeFlowEndNodeSchema(end),\n makeFlowInputNodeSchema(input),\n makeFlowTaskNodeSchema(task),\n makeFlowTitleNodeSchema(title),\n FlowSynchronizeNodeSchema,\n FlowCheckpointNodeSchema,\n ]);\n\nexport const FlowEdgeSchema = z.object({\n id: z.string(),\n source: z.string(),\n sourceHandle: z\n .union([\n z.literal(\"a\"),\n z.literal(\"b\"),\n z.literal(\"c\"),\n z.literal(\"d\"),\n z.literal(\"e\"),\n z.literal(\"f\"),\n ])\n .optional(),\n target: z.string(),\n});\n\nexport const makeFlowNodeSchema = ({\n end,\n input,\n start,\n task,\n title,\n}: {\n start: ZodSchema<Bitflow.Start>;\n end: ZodSchema<Bitflow.End>;\n input: ZodSchema<Bitflow.Input>;\n title: ZodSchema<Bitflow.Title>;\n task: ZodSchema<Bitflow.Task>;\n}) =>\n z.union([\n FlowSplitAnswerNodeSchema,\n FlowSplitResultNodeSchema,\n FlowSplitPointsNodeSchema,\n FlowSplitRandomNodeSchema,\n FlowPortalInputNodeSchema,\n FlowPortalOutputNodeSchema,\n FlowSynchronizeNodeSchema,\n FlowCheckpointNodeSchema,\n makeFlowEndNodeSchema(end),\n makeFlowInputNodeSchema(input),\n makeFlowStartNodeSchema(start),\n makeFlowTaskNodeSchema(task),\n makeFlowTitleNodeSchema(title),\n ]);\n\nexport const makeFlowSchema = ({\n end,\n input,\n start,\n task,\n title,\n}: {\n start: ZodSchema<Bitflow.Start>;\n end: ZodSchema<Bitflow.End>;\n input: ZodSchema<Bitflow.Input>;\n title: ZodSchema<Bitflow.Title>;\n task: ZodSchema<Bitflow.Task>;\n}) =>\n z\n .object({\n name: z.string(),\n description: z.string(),\n language: z.enum([\"en\", \"de\", \"fr\", \"es\", \"nl\", \"pt\", \"tr\", \"it\"]),\n visibility: z.enum([\"public\", \"private\", \"unlisted\"]),\n draft: z.boolean(),\n nodes: z.array(makeFlowNodeSchema({ start, end, input, title, task })),\n edges: z.array(FlowEdgeSchema),\n zoom: z.number().positive().default(1),\n position: z.tuple([z.number(), z.number()]).default([0, 0]),\n })\n .refine(\n (data) => {\n const ids = data.nodes.map((n) => n.id);\n for (let edge of data.edges) {\n if (!ids.includes(edge.source) || !ids.includes(edge.target)) {\n return false;\n }\n }\n return true;\n },\n { message: \"Target and source of an edge need to be valid node ids.\" }\n );\n", "export function findLast<T>(\n array: Array<T>,\n predicate: (value: T, index: number, obj: T[]) => boolean\n): T | null {\n let l = array.length;\n while (l--) {\n if (predicate(array[l], l, array)) return array[l];\n }\n return null;\n}\n", "type NodeBase = {\n id: string;\n position: { x: number; y: number };\n};\n\n// INTERACTIVE FLOW NODES\nexport type FlowCheckpointNode = NodeBase & {\n type: \"checkpoint\";\n};\n\nexport type FlowCheckpointPublicNode = Pick<FlowCheckpointNode, \"id\" | \"type\">;\n\nexport type FlowSynchronizeNode = NodeBase & {\n type: \"synchronize\";\n data?: {\n unlocked: boolean;\n };\n};\n\nexport type FlowSynchronizePublicNode = Pick<\n FlowSynchronizeNode,\n \"id\" | \"type\"\n>;\n\nexport type FlowTaskNode = NodeBase & {\n type: \"task\";\n data: Bitflow.Task;\n};\n\nexport type FlowTaskPublicNode = {\n type: \"task\";\n id: string;\n data: Pick<Bitflow.Task, \"view\" | \"subtype\" | \"name\">;\n};\n\nexport const isFlowTaskNode = (n: FlowNode): n is FlowTaskNode => {\n if (n.type === \"task\") {\n return true;\n }\n return false;\n};\n\nexport type FlowStartNode = NodeBase & {\n type: \"start\";\n data: Bitflow.Start;\n};\n\nexport type FlowStartPublicNode = Pick<FlowStartNode, \"type\" | \"data\" | \"id\">;\n\nexport const isFlowStartNode = (n: FlowNode): n is FlowStartNode => {\n if (n.type === \"start\") {\n return true;\n }\n return false;\n};\n\nexport type FlowEndNode = NodeBase & {\n type: \"end\";\n data: Bitflow.End;\n};\n\nexport const isFlowEndNode = (n: FlowNode): n is FlowEndNode => {\n if (n.type === \"end\") {\n return true;\n }\n return false;\n};\n\nexport type FlowEndPublicNode = Pick<FlowEndNode, \"type\" | \"data\" | \"id\">;\n\nexport type FlowInputNode = NodeBase & {\n type: \"input\";\n data: Bitflow.Input;\n};\n\nexport const isFlowInputNode = (n: FlowNode): n is FlowInputNode => {\n if (n.type === \"input\") {\n return true;\n }\n return false;\n};\n\nexport type FlowInputPublicNode = Pick<FlowInputNode, \"type\" | \"data\" | \"id\">;\n\nexport type FlowTitleNode = NodeBase & {\n type: \"title\";\n data: Bitflow.Title;\n};\n\nexport const isFlowTitleNode = (n: FlowNode): n is FlowTitleNode => {\n if (n.type === \"title\") {\n return true;\n }\n return false;\n};\n\nexport type FlowTitlePublicNode = Pick<FlowTitleNode, \"type\" | \"data\" | \"id\">;\n\nexport type InteractiveFlowNode =\n | FlowTaskNode\n | FlowStartNode\n | FlowEndNode\n | FlowInputNode\n | FlowTitleNode\n | FlowCheckpointNode\n | FlowSynchronizeNode;\n\nexport type InteractiveFlowPublicNode =\n | FlowTaskPublicNode\n | FlowStartPublicNode\n | FlowEndPublicNode\n | FlowInputPublicNode\n | FlowTitlePublicNode\n | FlowCheckpointPublicNode\n | FlowSynchronizePublicNode;\n\n// CONTROL FLOW NODES\nexport type EqualCondition = {\n type: \"equal\";\n not: boolean;\n nodeId: string;\n key: string;\n value: string | number;\n};\n\nexport type TrueCondition = {\n type: \"true\";\n not: boolean;\n nodeId: string;\n key: string;\n};\n\nexport type GreaterCondition = {\n type: \"greater\";\n include: boolean;\n not: boolean;\n nodeId: string;\n key: string;\n value: number;\n};\n\nexport type LessCondition = {\n type: \"less\";\n include: boolean;\n not: boolean;\n nodeId: string;\n key: string;\n value: number;\n};\n\nexport type InCondition = {\n type: \"in\";\n not: boolean;\n nodeId: string;\n key: string;\n value: (string | number)[];\n};\n\nexport type PrimitiveCondition =\n | EqualCondition\n | TrueCondition\n | GreaterCondition\n | LessCondition\n | InCondition;\n\nexport type AndCondition = {\n type: \"and\";\n conditions: PrimitiveCondition[];\n};\n\nexport type OrCondition = {\n type: \"or\";\n conditions: PrimitiveCondition[];\n};\n\nexport type Condition = PrimitiveCondition | AndCondition | OrCondition;\n\nexport type SplitAnswer = {\n condition: Condition;\n};\n\nexport type FlowSplitAnswerNode = NodeBase & {\n type: \"split-answer\";\n data: SplitAnswer;\n};\n\nexport const isFlowSplitAnswerNode = (\n n: FlowNode\n): n is FlowSplitAnswerNode => {\n return n.type === \"split-answer\";\n};\n\nexport type SplitResult = {\n condition: Condition;\n};\n\nexport type FlowSplitResultNode = NodeBase & {\n type: \"split-result\";\n data: SplitResult;\n};\n\nexport const isFlowSplitResultNode = (\n n: FlowNode\n): n is FlowSplitResultNode => {\n return n.type === \"split-result\";\n};\n\nexport type SplitPoints = {\n points: number;\n};\n\nexport type FlowSplitPointsNode = NodeBase & {\n type: \"split-points\";\n data: SplitPoints;\n};\n\nexport const isFlowSplitPointsNode = (\n n: FlowNode\n): n is FlowSplitPointsNode => {\n return n.type === \"split-points\";\n};\n\nexport type PortalInput = {\n portal: string;\n description: string;\n};\n\nexport type PortalOutput = {\n portal: string;\n description: string;\n};\n\nexport type FlowPortalInputNode = NodeBase & {\n type: \"portal-input\";\n data: PortalInput;\n};\n\nexport const isFlowPortalInputNode = (\n n: FlowNode\n): n is FlowPortalInputNode => {\n return n.type === \"portal-input\";\n};\n\nexport type FlowPortalOutputNode = NodeBase & {\n type: \"portal-output\";\n data: PortalOutput;\n};\n\nexport const isFlowPortalOutputNode = (\n n: FlowNode\n): n is FlowPortalOutputNode => {\n return n.type === \"portal-output\";\n};\n\nexport type FlowSplitRandomNode = NodeBase & {\n type: \"split-random\";\n};\n\nexport const isFlowSplitRandomNode = (\n n: FlowNode\n): n is FlowSplitRandomNode => {\n return n.type === \"split-random\";\n};\n\nexport type ControlFlowNode =\n | FlowSplitAnswerNode\n | FlowSplitResultNode\n | FlowSplitPointsNode\n | FlowSplitRandomNode\n | FlowPortalInputNode\n | FlowPortalOutputNode;\n\nexport const isControlFlowNode = (n: FlowNode): n is ControlFlowNode => {\n return (\n n.type === \"portal-input\" ||\n n.type === \"portal-output\" ||\n n.type === \"split-answer\" ||\n n.type === \"split-points\" ||\n n.type === \"split-random\" ||\n n.type === \"split-result\"\n );\n};\n\nexport type FlowNode = InteractiveFlowNode | ControlFlowNode;\n\nexport const isInteractiveFlowNode = (\n n: FlowNode\n): n is InteractiveFlowNode => {\n if (\n n.type === \"checkpoint\" ||\n n.type === \"end\" ||\n n.type === \"input\" ||\n n.type === \"start\" ||\n n.type === \"synchronize\" ||\n n.type === \"task\" ||\n n.type === \"title\"\n ) {\n return true;\n }\n\n return false;\n};\n\nexport type FlowEdge = {\n id: string;\n source: string;\n sourceHandle?: \"a\" | \"b\" | \"c\" | \"d\" | \"e\" | \"f\";\n target: string;\n};\n\nexport type Flow = {\n name: string;\n description: string;\n language: \"en\" | \"de\" | \"fr\" | \"es\" | \"nl\" | \"pt\" | \"tr\" | \"it\";\n visibility: \"public\" | \"private\" | \"unlisted\";\n draft: boolean;\n nodes: FlowNode[];\n edges: FlowEdge[];\n zoom?: number;\n position?: [number, number];\n};\n\nexport const extractInteractiveFlowPublicNode = (\n n: InteractiveFlowNode\n): InteractiveFlowPublicNode => {\n if (n.type === \"task\") {\n return {\n id: n.id,\n type: n.type,\n data: {\n name: n.data.name,\n subtype: n.data.subtype,\n view: n.data.view,\n },\n };\n } else if (n.type === \"synchronize\" || n.type === \"checkpoint\") {\n return {\n id: n.id,\n type: n.type,\n };\n } else if (n.type === \"input\") {\n return {\n id: n.id,\n type: n.type,\n data: n.data,\n };\n } else if (n.type === \"end\") {\n return {\n id: n.id,\n type: n.type,\n data: n.data,\n };\n } else if (n.type === \"start\") {\n return {\n id: n.id,\n type: n.type,\n data: n.data,\n };\n }\n return {\n id: n.id,\n type: n.type,\n data: n.data,\n };\n};\n", "export function groupBy<T>(array: Array<T>, by: (value: T) => string): T[][] {\n const grouped: T[][] = [];\n let index = 0;\n const indexes: Record<string, number> = {};\n\n let l = 0;\n\n while (l < array.length) {\n const value = array[l];\n const key = by(value);\n if (indexes[key] === undefined) {\n indexes[key] = index;\n index++;\n }\n\n if (!grouped[indexes[key]]) {\n grouped[indexes[key]] = [value];\n } else {\n grouped[indexes[key]].push(value);\n }\n l++;\n }\n return grouped;\n}\n", "export function lerpColor(a: string, b: string, amount: number): string {\n let ah = +a.replace(\"#\", \"0x\"),\n ar = ah >> 16,\n ag = (ah >> 8) & 0xff,\n ab = ah & 0xff,\n bh = +b.replace(\"#\", \"0x\"),\n br = bh >> 16,\n bg = (bh >> 8) & 0xff,\n bb = bh & 0xff,\n rr = ar + amount * (br - ar),\n rg = ag + amount * (bg - ag),\n rb = ab + amount * (bb - ab);\n\n return (\n \"#\" + (((1 << 24) + (rr << 16) + (rg << 8) + rb) | 0).toString(16).slice(1)\n );\n}\n", "function _min(d0: number, d1: number, d2: number, bx: number, ay: number) {\n return d0 < d1 || d2 < d1\n ? d0 > d2\n ? d2 + 1\n : d0 + 1\n : bx === ay\n ? d1\n : d1 + 1;\n}\n\nexport const levenshtein = (a: string, b: string) => {\n if (a === b) {\n return 0;\n }\n\n if (a.length > b.length) {\n var tmp = a;\n a = b;\n b = tmp;\n }\n\n var la = a.length;\n var lb = b.length;\n\n while (la > 0 && a.charCodeAt(la - 1) === b.charCodeAt(lb - 1)) {\n la--;\n lb--;\n }\n\n var offset = 0;\n\n while (offset < la && a.charCodeAt(offset) === b.charCodeAt(offset)) {\n offset++;\n }\n\n la -= offset;\n lb -= offset;\n\n if (la === 0 || lb < 3) {\n return lb;\n }\n\n let x = 0;\n let y: number;\n let d0: number;\n let d1: number;\n let d2: number;\n let d3: number;\n let dd: number = 0;\n let dy: number;\n let ay: number;\n let bx0: number;\n let bx1: number;\n let bx2: number;\n let bx3: number;\n\n let vector = [];\n\n for (y = 0; y < la; y++) {\n vector.push(y + 1);\n vector.push(a.charCodeAt(offset + y));\n }\n\n let len = vector.length - 1;\n\n for (; x < lb - 3; ) {\n bx0 = b.charCodeAt(offset + (d0 = x));\n bx1 = b.charCodeAt(offset + (d1 = x + 1));\n bx2 = b.charCodeAt(offset + (d2 = x + 2));\n bx3 = b.charCodeAt(offset + (d3 = x + 3));\n dd = x += 4;\n for (y = 0; y < len; y += 2) {\n dy = vector[y];\n ay = vector[y + 1];\n d0 = _min(dy, d0, d1, bx0, ay);\n d1 = _min(d0, d1, d2, bx1, ay);\n d2 = _min(d1, d2, d3, bx2, ay);\n dd = _min(d2, d3, dd, bx3, ay);\n vector[y] = dd;\n d3 = d2;\n d2 = d1;\n d1 = d0;\n d0 = dy;\n }\n }\n\n for (; x < lb; ) {\n bx0 = b.charCodeAt(offset + (d0 = x));\n dd = ++x;\n for (y = 0; y < len; y += 2) {\n dy = vector[y];\n vector[y] = dd = _min(dy, d0, dd, bx0, vector[y + 1]);\n d0 = dy;\n }\n }\n\n return dd;\n};\n", "export function uuidv4(): string {\n var uuid = \"\",\n i,\n random;\n for (i = 0; i < 32; i++) {\n random = (Math.random() * 16) | 0;\n\n if (i == 8 || i == 12 || i == 16 || i == 20) {\n uuid += \"-\";\n }\n uuid += (i == 12 ? 4 : i == 16 ? (random & 3) | 8 : random).toString(16);\n }\n return uuid;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from "./bits";
|
|
2
|
+
export * from "./bitsSchema";
|
|
3
|
+
export * from "./do";
|
|
4
|
+
export * from "./doSchema";
|
|
5
|
+
export * from "./findLast";
|
|
6
|
+
export * from "./flow";
|
|
7
|
+
export * from "./flowSchema";
|
|
8
|
+
export * from "./groupBy";
|
|
9
|
+
export * from "./lerpColor";
|
|
10
|
+
export * from "./levenshtein";
|
|
11
|
+
export * from "./uuid";
|