@bitflow/core 0.4.0 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/{types/bits.d.ts → bits.d.ts} +2 -3
  2. package/dist/{cjs/bitsSchema.d.ts → bitsSchema.d.ts} +0 -0
  3. package/dist/{cjs/do.d.ts → do.d.ts} +0 -0
  4. package/dist/{cjs/doSchema.d.ts → doSchema.d.ts} +94 -18
  5. package/dist/{cjs/findLast.d.ts → findLast.d.ts} +0 -0
  6. package/dist/{types/flow.d.ts → flow.d.ts} +7 -1
  7. package/dist/{types/flowSchema.d.ts → flowSchema.d.ts} +76 -12
  8. package/dist/{cjs/groupBy.d.ts → groupBy.d.ts} +0 -0
  9. package/dist/index.cjs.js +732 -0
  10. package/dist/index.cjs.js.map +7 -0
  11. package/dist/{cjs/index.d.ts → index.d.ts} +0 -0
  12. package/dist/index.esm.mjs +703 -0
  13. package/dist/index.esm.mjs.map +7 -0
  14. package/dist/{cjs/lerpColor.d.ts → lerpColor.d.ts} +0 -0
  15. package/dist/{cjs/levenshtein.d.ts → levenshtein.d.ts} +0 -0
  16. package/dist/{cjs/uuid.d.ts → uuid.d.ts} +0 -0
  17. package/package.json +19 -23
  18. package/CHANGELOG.md +0 -32
  19. package/dist/cjs/bits.d.ts +0 -129
  20. package/dist/cjs/bits.js +0 -30
  21. package/dist/cjs/bits.js.map +0 -1
  22. package/dist/cjs/bitsSchema.js +0 -77
  23. package/dist/cjs/bitsSchema.js.map +0 -1
  24. package/dist/cjs/do.js +0 -85
  25. package/dist/cjs/do.js.map +0 -1
  26. package/dist/cjs/doSchema.js +0 -38
  27. package/dist/cjs/doSchema.js.map +0 -1
  28. package/dist/cjs/findLast.js +0 -13
  29. package/dist/cjs/findLast.js.map +0 -1
  30. package/dist/cjs/flow.d.ts +0 -163
  31. package/dist/cjs/flow.js +0 -98
  32. package/dist/cjs/flow.js.map +0 -1
  33. package/dist/cjs/flowSchema.d.ts +0 -2456
  34. package/dist/cjs/flowSchema.js +0 -251
  35. package/dist/cjs/flowSchema.js.map +0 -1
  36. package/dist/cjs/groupBy.js +0 -27
  37. package/dist/cjs/groupBy.js.map +0 -1
  38. package/dist/cjs/index.js +0 -24
  39. package/dist/cjs/index.js.map +0 -1
  40. package/dist/cjs/lerpColor.js +0 -9
  41. package/dist/cjs/lerpColor.js.map +0 -1
  42. package/dist/cjs/levenshtein.js +0 -88
  43. package/dist/cjs/levenshtein.js.map +0 -1
  44. package/dist/cjs/uuid.js +0 -16
  45. package/dist/cjs/uuid.js.map +0 -1
  46. package/dist/esm/bits.d.ts +0 -129
  47. package/dist/esm/bits.js +0 -19
  48. package/dist/esm/bits.js.map +0 -1
  49. package/dist/esm/bitsSchema.d.ts +0 -150
  50. package/dist/esm/bitsSchema.js +0 -55
  51. package/dist/esm/bitsSchema.js.map +0 -1
  52. package/dist/esm/do.d.ts +0 -37
  53. package/dist/esm/do.js +0 -62
  54. package/dist/esm/do.js.map +0 -1
  55. package/dist/esm/doSchema.d.ts +0 -1402
  56. package/dist/esm/doSchema.js +0 -23
  57. package/dist/esm/doSchema.js.map +0 -1
  58. package/dist/esm/findLast.d.ts +0 -1
  59. package/dist/esm/findLast.js +0 -9
  60. package/dist/esm/findLast.js.map +0 -1
  61. package/dist/esm/flow.d.ts +0 -163
  62. package/dist/esm/flow.js +0 -88
  63. package/dist/esm/flow.js.map +0 -1
  64. package/dist/esm/flowSchema.d.ts +0 -2456
  65. package/dist/esm/flowSchema.js +0 -199
  66. package/dist/esm/flowSchema.js.map +0 -1
  67. package/dist/esm/groupBy.d.ts +0 -1
  68. package/dist/esm/groupBy.js +0 -23
  69. package/dist/esm/groupBy.js.map +0 -1
  70. package/dist/esm/index.d.ts +0 -11
  71. package/dist/esm/index.js +0 -12
  72. package/dist/esm/index.js.map +0 -1
  73. package/dist/esm/lerpColor.d.ts +0 -1
  74. package/dist/esm/lerpColor.js +0 -5
  75. package/dist/esm/lerpColor.js.map +0 -1
  76. package/dist/esm/levenshtein.d.ts +0 -1
  77. package/dist/esm/levenshtein.js +0 -84
  78. package/dist/esm/levenshtein.js.map +0 -1
  79. package/dist/esm/uuid.d.ts +0 -1
  80. package/dist/esm/uuid.js +0 -12
  81. package/dist/esm/uuid.js.map +0 -1
  82. package/dist/types/bitsSchema.d.ts +0 -150
  83. package/dist/types/do.d.ts +0 -37
  84. package/dist/types/doSchema.d.ts +0 -1402
  85. package/dist/types/findLast.d.ts +0 -1
  86. package/dist/types/groupBy.d.ts +0 -1
  87. package/dist/types/index.d.ts +0 -11
  88. package/dist/types/lerpColor.d.ts +0 -1
  89. package/dist/types/levenshtein.d.ts +0 -1
  90. package/dist/types/uuid.d.ts +0 -1
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../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": ["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
+ }
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@bitflow/core",
3
- "version": "0.4.0",
3
+ "version": "0.5.3",
4
4
  "author": "Mike Barkmin",
5
5
  "homepage": "https://github.com/openpatch/bitflow#readme",
6
6
  "license": "MIT",
7
- "main": "dist/cjs/index.js",
8
- "module": "dist/esm/index.js",
9
- "types": "dist/types/index.d.ts",
10
- "typings": "dist/types/index.d.ts",
7
+ "main": "dist/index.cjs.js",
8
+ "module": "dist/index.esm.mjs",
9
+ "types": "dist/index.d.ts",
10
+ "typings": "dist/index.d.ts",
11
11
  "sideEffects": false,
12
12
  "exports": {
13
13
  ".": {
14
- "require": "./dist/cjs/index.js",
15
- "default": "./dist/esm/index.js"
14
+ "require": "./dist/index.cjs.js",
15
+ "default": "./dist/index.esm.mjs"
16
16
  }
17
17
  },
18
18
  "files": [
@@ -29,27 +29,23 @@
29
29
  "bugs": {
30
30
  "url": "https://github.com/openpatch/bitflow/issues"
31
31
  },
32
- "scripts": {
33
- "prebuild": "rimraf dist",
34
- "start": "tsc --build --watch",
35
- "build": "concurrently yarn:build:*",
36
- "clean": "tsc --build --clean",
37
- "test": "jest --env=jsdom --passWithNoTests",
38
- "test:coverage": "yarn test --coverage",
39
- "version": "yarn build",
40
- "lint": "tsc",
41
- "build:esm": "tsc --project tsconfig.build.json --declaration --declarationDir dist/esm --module esnext --target es2015 --outDir dist/esm",
42
- "build:cjs": "tsc --project tsconfig.build.json --declaration --declarationDir dist/cjs --module commonjs --target es5 --outDir dist/cjs",
43
- "build:types": "tsc --project tsconfig.build.json --declaration --declarationDir dist/types"
44
- },
32
+ "devDependencies": {},
45
33
  "peerDependencies": {
46
34
  "@emotion/cache": "11.x",
47
35
  "@emotion/react": "11.x",
48
36
  "@emotion/styled": "11.x",
49
- "@openpatch/patches": "4.x",
37
+ "@openpatch/patches": "5.x",
50
38
  "react": "17.x",
51
39
  "react-dom": "17.x",
52
40
  "zod": "3.x"
53
41
  },
54
- "gitHead": "19e9fbb7f09dd72b2f450d2d4860baaa7715fc54"
55
- }
42
+ "scripts": {
43
+ "prebuild": "rimraf dist",
44
+ "version": "pnpm build",
45
+ "lint": "tsc --noEmit",
46
+ "test": "jest --env=jsdom --passWithNoTests",
47
+ "build": "pnpm build:pkg && pnpm build:types",
48
+ "build:pkg": "node ../../scripts/build.mjs",
49
+ "build:types": "tsc --project tsconfig.build.json --declaration --emitDeclarationOnly"
50
+ }
51
+ }
package/CHANGELOG.md DELETED
@@ -1,32 +0,0 @@
1
- # @bitflow/core
2
-
3
- ## 0.4.0
4
-
5
- ### Minor Changes
6
-
7
- - 7bf6650: Upgrade to Patches v4.0.0
8
-
9
- ### Patch Changes
10
-
11
- - 3dca220: Add default for TaskBit type
12
- - 54b52d0: Improve visual appearance for DoCheckpoint and DoSynchronize. Make buttons fullwidth.
13
- - 3a9fc4a: Improve types and fix a bug when no toggle function is supplied to a SynchronizeNode
14
-
15
- ## 0.3.0
16
-
17
- ### Minor Changes
18
-
19
- - dea5cca: add toggle lock to synchronize node
20
-
21
- ## 0.2.0
22
-
23
- ### Minor Changes
24
-
25
- - 430125d: Add translations scaffolds for all languages
26
- - 430125d: Add component for doing flow in the browser. This might not work with all task.
27
-
28
- ## 0.1.0
29
-
30
- ### Minor Changes
31
-
32
- - 8c7b6e3: First alpha release. The API might change until we reach the first major release.
@@ -1,129 +0,0 @@
1
- import { ForwardRefExoticComponent, ReactElement, RefAttributes } from "react";
2
- import { ZodSchema } from "zod";
3
- import { DoResult } from "./do";
4
- export interface Action {
5
- type: string;
6
- payload?: any;
7
- }
8
- export interface FeedbackMessage {
9
- message: string;
10
- severity: "error" | "warning" | "info" | "success";
11
- }
12
- export interface TitleProps<T extends Bitflow.Title> {
13
- title: Pick<T, "view" | "subtype">;
14
- }
15
- export interface TitleViewFormProps {
16
- name: string;
17
- }
18
- export interface TitleBit<T extends Bitflow.Title = any> {
19
- ViewForm: (props: TitleViewFormProps) => ReactElement | null;
20
- Title: (props: TitleProps<T>) => ReactElement | null;
21
- TitleSchema: ZodSchema<T>;
22
- useInformation: () => {
23
- name: string;
24
- description: string;
25
- example: T;
26
- };
27
- }
28
- export interface InputProps<I extends Bitflow.Input> {
29
- input: Pick<I, "view" | "subtype">;
30
- }
31
- export interface InputViewFormProps {
32
- name: string;
33
- }
34
- export interface InputBit<I extends Bitflow.Input = any> {
35
- ViewForm: (props: InputViewFormProps) => ReactElement | null;
36
- Input: (props: InputProps<I>) => ReactElement | null;
37
- useInformation: () => {
38
- name: string;
39
- description: string;
40
- example: I;
41
- };
42
- InputSchema: ZodSchema<I>;
43
- }
44
- export interface StartProps<S extends Bitflow.Start> {
45
- start: Pick<S, "view" | "subtype">;
46
- }
47
- export interface StartViewFormProps {
48
- name: string;
49
- }
50
- export interface StartBit<S extends Bitflow.Start = any> {
51
- ViewForm: (props: StartViewFormProps) => ReactElement | null;
52
- Start: (props: StartProps<S>) => ReactElement | null;
53
- StartSchema: ZodSchema<S>;
54
- useInformation: () => {
55
- name: string;
56
- description: string;
57
- example: S;
58
- };
59
- }
60
- export interface EndProps<E extends Bitflow.End> {
61
- end: Pick<E, "view" | "subtype">;
62
- getResult: () => Promise<DoResult>;
63
- }
64
- export interface EndViewFormProps {
65
- name: string;
66
- }
67
- export interface EndBit<E extends Bitflow.End = any> {
68
- ViewForm: (props: EndViewFormProps) => ReactElement | null;
69
- End: (props: EndProps<E>) => ReactElement | null;
70
- useInformation: () => {
71
- name: string;
72
- description: string;
73
- example: E;
74
- };
75
- EndSchema: ZodSchema<E>;
76
- }
77
- export interface TaskProps<T extends Bitflow.Task, R extends Bitflow.TaskResult, A extends Bitflow.TaskAnswer, Act extends Action> {
78
- mode: "default" | "recording" | "result";
79
- task: Pick<T, "view" | "subtype">;
80
- result?: R;
81
- answer?: A;
82
- onChange?: (value: A) => void;
83
- onAction?: (action: Act) => void;
84
- }
85
- export interface TaskRef<Act> {
86
- dispatch: (action: Act) => void;
87
- }
88
- export interface TaskEvaluationFormProps {
89
- name: string;
90
- }
91
- export interface TaskViewFormProps {
92
- name: string;
93
- }
94
- export interface TaskFeedbackFormProps {
95
- name: string;
96
- }
97
- export interface TaskStatisticProps<S extends Bitflow.TaskStatistic, T extends Bitflow.Task> {
98
- statistic: S;
99
- task: T;
100
- }
101
- export interface TaskEvaluateParams<A extends Bitflow.TaskAnswer, T extends Bitflow.Task> {
102
- answer?: A;
103
- task: T;
104
- }
105
- export declare type Evaluate<A extends Bitflow.TaskAnswer = Bitflow.TaskAnswer, T extends Bitflow.Task = Bitflow.Task, R extends Bitflow.TaskResult = Bitflow.TaskResult> = ({ answer, task }: TaskEvaluateParams<A, T>) => Promise<R>;
106
- export interface UpdateTaskStatisticParams<S extends Bitflow.TaskStatistic, A extends Bitflow.TaskAnswer, T extends Bitflow.Task, R extends Bitflow.TaskResult> {
107
- statistic?: S;
108
- answer: A;
109
- task: T;
110
- result?: R;
111
- }
112
- export declare type UpdateTaskStatistic<S extends Bitflow.TaskStatistic = Bitflow.TaskStatistic, A extends Bitflow.TaskAnswer = Bitflow.TaskAnswer, T extends Bitflow.Task = Bitflow.Task, R extends Bitflow.TaskResult = Bitflow.TaskResult> = ({ statistic, answer, task, result, }: UpdateTaskStatisticParams<S, A, T, R>) => Promise<S>;
113
- export interface TaskBit<T extends Bitflow.Task = any, A extends Bitflow.TaskAnswer = any, R extends Bitflow.TaskResult = any, S extends Bitflow.TaskStatistic = any, Act extends Action = any> {
114
- ViewForm: (props: TaskViewFormProps) => ReactElement | null;
115
- EvaluationForm: (props: TaskEvaluationFormProps) => ReactElement | null;
116
- FeedbackForm: (props: TaskFeedbackFormProps) => ReactElement | null;
117
- Task: ForwardRefExoticComponent<TaskProps<T, R, A, Act> & RefAttributes<TaskRef<Act>>>;
118
- Statistic: (props: TaskStatisticProps<S, T>) => ReactElement | null;
119
- updateStatistic: UpdateTaskStatistic<S, A, T, R>;
120
- TaskSchema: ZodSchema<T>;
121
- useInformation: () => {
122
- name: string;
123
- description: string;
124
- example: T;
125
- };
126
- evaluate: Evaluate<A, T, R>;
127
- }
128
- export declare const makeEvaluate: (evaluateMap: Record<Bitflow.Task["subtype"], Pick<TaskBit, "evaluate">>) => Evaluate;
129
- export declare const makeUpdateStatistic: (statisticMap: Record<Bitflow.Task["subtype"], Pick<TaskBit, "updateStatistic">>) => UpdateTaskStatistic;
package/dist/cjs/bits.js DELETED
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeUpdateStatistic = exports.makeEvaluate = void 0;
4
- var makeEvaluate = function (evaluateMap) {
5
- return function (_a) {
6
- var _b;
7
- var task = _a.task, answer = _a.answer;
8
- var subtype = task.subtype;
9
- var evaluate = (_b = evaluateMap[subtype]) === null || _b === void 0 ? void 0 : _b.evaluate;
10
- if (!evaluate) {
11
- throw new Error("subtype not supported");
12
- }
13
- return evaluate({ answer: answer, task: task });
14
- };
15
- };
16
- exports.makeEvaluate = makeEvaluate;
17
- var makeUpdateStatistic = function (statisticMap) {
18
- return function (_a) {
19
- var _b;
20
- var answer = _a.answer, task = _a.task, result = _a.result, statistic = _a.statistic;
21
- var subtype = task.subtype;
22
- var updateStatistic = (_b = statisticMap[subtype]) === null || _b === void 0 ? void 0 : _b.updateStatistic;
23
- if (!updateStatistic) {
24
- throw new Error("subtype not supported");
25
- }
26
- return updateStatistic({ task: task, statistic: statistic, result: result, answer: answer });
27
- };
28
- };
29
- exports.makeUpdateStatistic = makeUpdateStatistic;
30
- //# sourceMappingURL=bits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bits.js","sourceRoot":"","sources":["../../src/bits.ts"],"names":[],"mappings":";;;AA6LO,IAAM,YAAY,GACvB,UACE,WAAuE;IAEzE,OAAA,UAAC,EAAgB;;YAAd,IAAI,UAAA,EAAE,MAAM,YAAA;QACb,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,QAAQ,GAAG,MAAA,WAAW,CAAC,OAAO,CAAC,0CAAE,QAAQ,CAAC;QAEhD,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;SAC1C;QAED,OAAO,QAAQ,CAAC,EAAE,MAAM,QAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;IACpC,CAAC;AATD,CASC,CAAC;AAbS,QAAA,YAAY,gBAarB;AAEG,IAAM,mBAAmB,GAC9B,UACE,YAGC;IAEH,OAAA,UAAC,EAAmC;;YAAjC,MAAM,YAAA,EAAE,IAAI,UAAA,EAAE,MAAM,YAAA,EAAE,SAAS,eAAA;QAChC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,eAAe,GAAG,MAAA,YAAY,CAAC,OAAO,CAAC,0CAAE,eAAe,CAAC;QAE/D,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;SAC1C;QAED,OAAO,eAAe,CAAC,EAAE,IAAI,MAAA,EAAE,SAAS,WAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;IAC9D,CAAC;AATD,CASC,CAAC;AAhBS,QAAA,mBAAmB,uBAgB5B"}
@@ -1,77 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.EndSchema = exports.StartSchema = exports.TitleSchema = exports.InputSchema = exports.TaskResultSchema = exports.TaskAnswerSchema = exports.TaskStatisticSchema = exports.TaskSchema = exports.FeedbackMessageSchema = void 0;
23
- var z = __importStar(require("zod"));
24
- exports.FeedbackMessageSchema = z.object({
25
- message: z.string(),
26
- severity: z.enum(["error", "warning", "info", "success"]),
27
- });
28
- exports.TaskSchema = z.object({
29
- name: z.string(),
30
- description: z.string().optional(),
31
- subtype: z.string(),
32
- view: z.record(z.any()),
33
- evaluation: z.object({
34
- mode: z.enum(["auto", "skip", "manual"]),
35
- enableRetry: z.boolean(),
36
- showFeedback: z.boolean(),
37
- }),
38
- feedback: z.record(z.any()).optional(),
39
- });
40
- exports.TaskStatisticSchema = z.object({
41
- subtype: z.string(),
42
- count: z.number(),
43
- });
44
- exports.TaskAnswerSchema = z.object({
45
- subtype: z.string(),
46
- });
47
- exports.TaskResultSchema = z.object({
48
- subtype: z.string(),
49
- state: z.enum(["unknown", "manual", "correct", "wrong"]),
50
- allowRetry: z.boolean().optional(),
51
- feedback: z.any(),
52
- });
53
- exports.InputSchema = z.object({
54
- name: z.string(),
55
- description: z.string(),
56
- subtype: z.string(),
57
- view: z.object({}),
58
- });
59
- exports.TitleSchema = z.object({
60
- name: z.string(),
61
- description: z.string(),
62
- subtype: z.string(),
63
- view: z.object({}),
64
- });
65
- exports.StartSchema = z.object({
66
- name: z.string(),
67
- description: z.string(),
68
- subtype: z.string(),
69
- view: z.object({}),
70
- });
71
- exports.EndSchema = z.object({
72
- name: z.string(),
73
- description: z.string(),
74
- subtype: z.string(),
75
- view: z.object({}),
76
- });
77
- //# sourceMappingURL=bitsSchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bitsSchema.js","sourceRoot":"","sources":["../../src/bitsSchema.ts"],"names":[],"mappings":"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"}
package/dist/cjs/do.js DELETED
@@ -1,85 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.retryDoTry = exports.finishDoTry = exports.skipDoTry = exports.isDoSkippedTry = exports.isDoFinishedTry = exports.isDoStartedTry = void 0;
15
- var isDoStartedTry = function (d) {
16
- return d.status === "started";
17
- };
18
- exports.isDoStartedTry = isDoStartedTry;
19
- var isDoFinishedTry = function (d) {
20
- return d.status === "finished";
21
- };
22
- exports.isDoFinishedTry = isDoFinishedTry;
23
- var isDoSkippedTry = function (d) {
24
- return d.status === "skipped";
25
- };
26
- exports.isDoSkippedTry = isDoSkippedTry;
27
- var skipDoTry = function (doResult, evaluation) {
28
- if (evaluation === void 0) { evaluation = { mode: "skip" }; }
29
- var tries = doResult.tries;
30
- var maxPoints = doResult.maxPoints;
31
- var currentTry = tries[tries.length - 1];
32
- var hasTry = tries.find(function (doTry) {
33
- return doTry.node.id === currentTry.node.id && doTry.status !== "started";
34
- });
35
- if (!hasTry && (evaluation === null || evaluation === void 0 ? void 0 : evaluation.mode) !== "skip") {
36
- maxPoints += 1;
37
- }
38
- tries[tries.length - 1] = __assign(__assign({}, currentTry), { evaluation: evaluation, status: "skipped", endDate: new Date() });
39
- return __assign(__assign({}, doResult), { maxPoints: maxPoints, tries: tries });
40
- };
41
- exports.skipDoTry = skipDoTry;
42
- var finishDoTry = function (doResult, answer, result) {
43
- var _a, _b;
44
- var tries = doResult.tries;
45
- var points = doResult.points, maxPoints = doResult.maxPoints;
46
- var currentTry = tries[tries.length - 1];
47
- var hasTry = tries.find(function (doTry) {
48
- return doTry.node.id === currentTry.node.id && doTry.status !== "started";
49
- });
50
- if (!hasTry && (result === null || result === void 0 ? void 0 : result.state) !== "unknown") {
51
- maxPoints += 1;
52
- }
53
- tries[tries.length - 1] = __assign(__assign({}, currentTry), { status: "finished", endDate: new Date(), answer: answer, result: result });
54
- var lastTry = tries
55
- .filter(exports.isDoFinishedTry)
56
- .find(function (doTry) {
57
- return doTry.node.id === currentTry.node.id && currentTry.try - 1 === doTry.try;
58
- });
59
- if (!lastTry && (result === null || result === void 0 ? void 0 : result.state) === "correct") {
60
- points += 1;
61
- }
62
- else if (((_a = lastTry === null || lastTry === void 0 ? void 0 : lastTry.result) === null || _a === void 0 ? void 0 : _a.state) === "correct" &&
63
- (result === null || result === void 0 ? void 0 : result.state) !== "correct") {
64
- points -= 1;
65
- }
66
- else if (((_b = lastTry === null || lastTry === void 0 ? void 0 : lastTry.result) === null || _b === void 0 ? void 0 : _b.state) !== "correct" &&
67
- (result === null || result === void 0 ? void 0 : result.state) === "correct") {
68
- points += 1;
69
- }
70
- return __assign(__assign({}, doResult), { maxPoints: maxPoints, points: points, tries: tries });
71
- };
72
- exports.finishDoTry = finishDoTry;
73
- var retryDoTry = function (doResult) {
74
- var tries = doResult.tries;
75
- var lastTry = tries[tries.length - 1];
76
- tries.push({
77
- status: "started",
78
- try: lastTry.try + 1,
79
- startDate: new Date(),
80
- node: __assign({}, lastTry.node),
81
- });
82
- return __assign(__assign({}, doResult), { tries: tries });
83
- };
84
- exports.retryDoTry = retryDoTry;
85
- //# sourceMappingURL=do.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"do.js","sourceRoot":"","sources":["../../src/do.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeDoSkippedTry = exports.makeDoFinishedTry = exports.makeDoStartedTry = exports.makeDoBaseTrySchema = void 0;
4
- var zod_1 = require("zod");
5
- var bitsSchema_1 = require("./bitsSchema");
6
- var flowSchema_1 = require("./flowSchema");
7
- var makeDoBaseTrySchema = function (flowNodeSchemas) {
8
- return zod_1.z.object({
9
- node: flowSchema_1.makeInteractiveFlowNodeSchema(flowNodeSchemas),
10
- startDate: zod_1.z.date(),
11
- try: zod_1.z.number(),
12
- status: zod_1.z.string(),
13
- });
14
- };
15
- exports.makeDoBaseTrySchema = makeDoBaseTrySchema;
16
- var makeDoStartedTry = function (flowNodeSchemas) {
17
- return exports.makeDoBaseTrySchema(flowNodeSchemas).merge(zod_1.z.object({
18
- status: zod_1.z.literal("started"),
19
- }));
20
- };
21
- exports.makeDoStartedTry = makeDoStartedTry;
22
- var makeDoFinishedTry = function (flowNodeSchemas) {
23
- return exports.makeDoBaseTrySchema(flowNodeSchemas).merge(zod_1.z.object({
24
- status: zod_1.z.literal("finished"),
25
- endDate: zod_1.z.date(),
26
- answer: bitsSchema_1.TaskAnswerSchema.optional(),
27
- result: bitsSchema_1.TaskResultSchema.optional(),
28
- }));
29
- };
30
- exports.makeDoFinishedTry = makeDoFinishedTry;
31
- var makeDoSkippedTry = function (flowNodeSchemas) {
32
- return exports.makeDoBaseTrySchema(flowNodeSchemas).merge(zod_1.z.object({
33
- status: zod_1.z.literal("skipped"),
34
- endDate: zod_1.z.date(),
35
- }));
36
- };
37
- exports.makeDoSkippedTry = makeDoSkippedTry;
38
- //# sourceMappingURL=doSchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doSchema.js","sourceRoot":"","sources":["../../src/doSchema.ts"],"names":[],"mappings":";;;AAAA,2BAAmC;AACnC,2CAAkE;AAClE,2CAA6D;AAUtD,IAAM,mBAAmB,GAAG,UAAC,eAAqC;IACvE,OAAA,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,0CAA6B,CAAC,eAAe,CAAC;QACpD,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;QACnB,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;QACf,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;KACnB,CAAC;AALF,CAKE,CAAC;AANQ,QAAA,mBAAmB,uBAM3B;AAEE,IAAM,gBAAgB,GAAG,UAAC,eAAqC;IACpE,OAAA,2BAAmB,CAAC,eAAe,CAAC,CAAC,KAAK,CACxC,OAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,SAAS,CAAC;KAC7B,CAAC,CACH;AAJD,CAIC,CAAC;AALS,QAAA,gBAAgB,oBAKzB;AAEG,IAAM,iBAAiB,GAAG,UAAC,eAAqC;IACrE,OAAA,2BAAmB,CAAC,eAAe,CAAC,CAAC,KAAK,CACxC,OAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7B,OAAO,EAAE,OAAC,CAAC,IAAI,EAAE;QACjB,MAAM,EAAE,6BAAgB,CAAC,QAAQ,EAAE;QACnC,MAAM,EAAE,6BAAgB,CAAC,QAAQ,EAAE;KACpC,CAAC,CACH;AAPD,CAOC,CAAC;AARS,QAAA,iBAAiB,qBAQ1B;AAEG,IAAM,gBAAgB,GAAG,UAAC,eAAqC;IACpE,OAAA,2BAAmB,CAAC,eAAe,CAAC,CAAC,KAAK,CACxC,OAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5B,OAAO,EAAE,OAAC,CAAC,IAAI,EAAE;KAClB,CAAC,CACH;AALD,CAKC,CAAC;AANS,QAAA,gBAAgB,oBAMzB"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findLast = void 0;
4
- function findLast(array, predicate) {
5
- var l = array.length;
6
- while (l--) {
7
- if (predicate(array[l], l, array))
8
- return array[l];
9
- }
10
- return null;
11
- }
12
- exports.findLast = findLast;
13
- //# sourceMappingURL=findLast.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"findLast.js","sourceRoot":"","sources":["../../src/findLast.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CACtB,KAAe,EACf,SAAyD;IAEzD,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,EAAE;QACV,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;KACpD;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AATD,4BASC"}