@bitflow/core 0.5.0 → 0.5.4

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/{cjs/bits.d.ts → bits.d.ts} +0 -0
  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} +8 -8
  5. package/dist/{cjs/findLast.d.ts → findLast.d.ts} +0 -0
  6. package/dist/{cjs/flow.d.ts → flow.d.ts} +0 -0
  7. package/dist/{cjs/flowSchema.d.ts → flowSchema.d.ts} +0 -0
  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 +18 -22
  18. package/CHANGELOG.md +0 -38
  19. package/dist/cjs/bits.js +0 -16
  20. package/dist/cjs/bits.js.map +0 -1
  21. package/dist/cjs/bitsSchema.js +0 -77
  22. package/dist/cjs/bitsSchema.js.map +0 -1
  23. package/dist/cjs/do.js +0 -85
  24. package/dist/cjs/do.js.map +0 -1
  25. package/dist/cjs/doSchema.js +0 -38
  26. package/dist/cjs/doSchema.js.map +0 -1
  27. package/dist/cjs/findLast.js +0 -13
  28. package/dist/cjs/findLast.js.map +0 -1
  29. package/dist/cjs/flow.js +0 -131
  30. package/dist/cjs/flow.js.map +0 -1
  31. package/dist/cjs/flowSchema.js +0 -254
  32. package/dist/cjs/flowSchema.js.map +0 -1
  33. package/dist/cjs/groupBy.js +0 -27
  34. package/dist/cjs/groupBy.js.map +0 -1
  35. package/dist/cjs/index.js +0 -24
  36. package/dist/cjs/index.js.map +0 -1
  37. package/dist/cjs/lerpColor.js +0 -9
  38. package/dist/cjs/lerpColor.js.map +0 -1
  39. package/dist/cjs/levenshtein.js +0 -88
  40. package/dist/cjs/levenshtein.js.map +0 -1
  41. package/dist/cjs/uuid.js +0 -16
  42. package/dist/cjs/uuid.js.map +0 -1
  43. package/dist/esm/bits.d.ts +0 -128
  44. package/dist/esm/bits.js +0 -9
  45. package/dist/esm/bits.js.map +0 -1
  46. package/dist/esm/bitsSchema.d.ts +0 -150
  47. package/dist/esm/bitsSchema.js +0 -55
  48. package/dist/esm/bitsSchema.js.map +0 -1
  49. package/dist/esm/do.d.ts +0 -37
  50. package/dist/esm/do.js +0 -62
  51. package/dist/esm/do.js.map +0 -1
  52. package/dist/esm/doSchema.d.ts +0 -1478
  53. package/dist/esm/doSchema.js +0 -23
  54. package/dist/esm/doSchema.js.map +0 -1
  55. package/dist/esm/findLast.d.ts +0 -1
  56. package/dist/esm/findLast.js +0 -9
  57. package/dist/esm/findLast.js.map +0 -1
  58. package/dist/esm/flow.d.ts +0 -169
  59. package/dist/esm/flow.js +0 -114
  60. package/dist/esm/flow.js.map +0 -1
  61. package/dist/esm/flowSchema.d.ts +0 -2520
  62. package/dist/esm/flowSchema.js +0 -202
  63. package/dist/esm/flowSchema.js.map +0 -1
  64. package/dist/esm/groupBy.d.ts +0 -1
  65. package/dist/esm/groupBy.js +0 -23
  66. package/dist/esm/groupBy.js.map +0 -1
  67. package/dist/esm/index.d.ts +0 -11
  68. package/dist/esm/index.js +0 -12
  69. package/dist/esm/index.js.map +0 -1
  70. package/dist/esm/lerpColor.d.ts +0 -1
  71. package/dist/esm/lerpColor.js +0 -5
  72. package/dist/esm/lerpColor.js.map +0 -1
  73. package/dist/esm/levenshtein.d.ts +0 -1
  74. package/dist/esm/levenshtein.js +0 -84
  75. package/dist/esm/levenshtein.js.map +0 -1
  76. package/dist/esm/uuid.d.ts +0 -1
  77. package/dist/esm/uuid.js +0 -12
  78. package/dist/esm/uuid.js.map +0 -1
  79. package/dist/types/bits.d.ts +0 -128
  80. package/dist/types/bitsSchema.d.ts +0 -150
  81. package/dist/types/do.d.ts +0 -37
  82. package/dist/types/doSchema.d.ts +0 -1478
  83. package/dist/types/findLast.d.ts +0 -1
  84. package/dist/types/flow.d.ts +0 -169
  85. package/dist/types/flowSchema.d.ts +0 -2520
  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
@@ -1,150 +0,0 @@
1
- import * as z from "zod";
2
- export declare const FeedbackMessageSchema: z.ZodObject<{
3
- message: z.ZodString;
4
- severity: z.ZodEnum<["error", "warning", "info", "success"]>;
5
- }, "strip", z.ZodTypeAny, {
6
- message: string;
7
- severity: "error" | "warning" | "info" | "success";
8
- }, {
9
- message: string;
10
- severity: "error" | "warning" | "info" | "success";
11
- }>;
12
- export declare const TaskSchema: z.ZodObject<{
13
- name: z.ZodString;
14
- description: z.ZodOptional<z.ZodString>;
15
- subtype: z.ZodString;
16
- view: z.ZodRecord<z.ZodString, z.ZodAny>;
17
- evaluation: z.ZodObject<{
18
- mode: z.ZodEnum<["auto", "skip", "manual"]>;
19
- enableRetry: z.ZodBoolean;
20
- showFeedback: z.ZodBoolean;
21
- }, "strip", z.ZodTypeAny, {
22
- mode: "auto" | "manual" | "skip";
23
- enableRetry: boolean;
24
- showFeedback: boolean;
25
- }, {
26
- mode: "auto" | "manual" | "skip";
27
- enableRetry: boolean;
28
- showFeedback: boolean;
29
- }>;
30
- feedback: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
31
- }, "strip", z.ZodTypeAny, {
32
- description?: string | undefined;
33
- feedback?: Record<string, any> | undefined;
34
- view: Record<string, any>;
35
- subtype: string;
36
- name: string;
37
- evaluation: {
38
- mode: "auto" | "manual" | "skip";
39
- enableRetry: boolean;
40
- showFeedback: boolean;
41
- };
42
- }, {
43
- description?: string | undefined;
44
- feedback?: Record<string, any> | undefined;
45
- view: Record<string, any>;
46
- subtype: string;
47
- name: string;
48
- evaluation: {
49
- mode: "auto" | "manual" | "skip";
50
- enableRetry: boolean;
51
- showFeedback: boolean;
52
- };
53
- }>;
54
- export declare const TaskStatisticSchema: z.ZodObject<{
55
- subtype: z.ZodString;
56
- count: z.ZodNumber;
57
- }, "strip", z.ZodTypeAny, {
58
- subtype: string;
59
- count: number;
60
- }, {
61
- subtype: string;
62
- count: number;
63
- }>;
64
- export declare const TaskAnswerSchema: z.ZodObject<{
65
- subtype: z.ZodString;
66
- }, "strip", z.ZodTypeAny, {
67
- subtype: string;
68
- }, {
69
- subtype: string;
70
- }>;
71
- export declare const TaskResultSchema: z.ZodObject<{
72
- subtype: z.ZodString;
73
- state: z.ZodEnum<["unknown", "manual", "correct", "wrong"]>;
74
- allowRetry: z.ZodOptional<z.ZodBoolean>;
75
- feedback: z.ZodAny;
76
- }, "strip", z.ZodTypeAny, {
77
- feedback?: any;
78
- allowRetry?: boolean | undefined;
79
- subtype: string;
80
- state: "manual" | "unknown" | "correct" | "wrong";
81
- }, {
82
- feedback?: any;
83
- allowRetry?: boolean | undefined;
84
- subtype: string;
85
- state: "manual" | "unknown" | "correct" | "wrong";
86
- }>;
87
- export declare const InputSchema: z.ZodObject<{
88
- name: z.ZodString;
89
- description: z.ZodString;
90
- subtype: z.ZodString;
91
- view: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
92
- }, "strip", z.ZodTypeAny, {
93
- view: {};
94
- subtype: string;
95
- name: string;
96
- description: string;
97
- }, {
98
- view: {};
99
- subtype: string;
100
- name: string;
101
- description: string;
102
- }>;
103
- export declare const TitleSchema: z.ZodObject<{
104
- name: z.ZodString;
105
- description: z.ZodString;
106
- subtype: z.ZodString;
107
- view: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
108
- }, "strip", z.ZodTypeAny, {
109
- view: {};
110
- subtype: string;
111
- name: string;
112
- description: string;
113
- }, {
114
- view: {};
115
- subtype: string;
116
- name: string;
117
- description: string;
118
- }>;
119
- export declare const StartSchema: z.ZodObject<{
120
- name: z.ZodString;
121
- description: z.ZodString;
122
- subtype: z.ZodString;
123
- view: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
124
- }, "strip", z.ZodTypeAny, {
125
- view: {};
126
- subtype: string;
127
- name: string;
128
- description: string;
129
- }, {
130
- view: {};
131
- subtype: string;
132
- name: string;
133
- description: string;
134
- }>;
135
- export declare const EndSchema: z.ZodObject<{
136
- name: z.ZodString;
137
- description: z.ZodString;
138
- subtype: z.ZodString;
139
- view: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
140
- }, "strip", z.ZodTypeAny, {
141
- view: {};
142
- subtype: string;
143
- name: string;
144
- description: string;
145
- }, {
146
- view: {};
147
- subtype: string;
148
- name: string;
149
- description: string;
150
- }>;
@@ -1,55 +0,0 @@
1
- import * as z from "zod";
2
- export const FeedbackMessageSchema = z.object({
3
- message: z.string(),
4
- severity: z.enum(["error", "warning", "info", "success"]),
5
- });
6
- export const TaskSchema = z.object({
7
- name: z.string(),
8
- description: z.string().optional(),
9
- subtype: z.string(),
10
- view: z.record(z.any()),
11
- evaluation: z.object({
12
- mode: z.enum(["auto", "skip", "manual"]),
13
- enableRetry: z.boolean(),
14
- showFeedback: z.boolean(),
15
- }),
16
- feedback: z.record(z.any()).optional(),
17
- });
18
- export const TaskStatisticSchema = z.object({
19
- subtype: z.string(),
20
- count: z.number(),
21
- });
22
- export const TaskAnswerSchema = z.object({
23
- subtype: z.string(),
24
- });
25
- export const TaskResultSchema = z.object({
26
- subtype: z.string(),
27
- state: z.enum(["unknown", "manual", "correct", "wrong"]),
28
- allowRetry: z.boolean().optional(),
29
- feedback: z.any(),
30
- });
31
- export const InputSchema = z.object({
32
- name: z.string(),
33
- description: z.string(),
34
- subtype: z.string(),
35
- view: z.object({}),
36
- });
37
- export const TitleSchema = z.object({
38
- name: z.string(),
39
- description: z.string(),
40
- subtype: z.string(),
41
- view: z.object({}),
42
- });
43
- export const StartSchema = z.object({
44
- name: z.string(),
45
- description: z.string(),
46
- subtype: z.string(),
47
- view: z.object({}),
48
- });
49
- export const EndSchema = z.object({
50
- name: z.string(),
51
- description: z.string(),
52
- subtype: z.string(),
53
- view: z.object({}),
54
- });
55
- //# 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/esm/do.d.ts DELETED
@@ -1,37 +0,0 @@
1
- import { InteractiveFlowPublicNode } from "./flow";
2
- export interface DoBaseTry {
3
- node: InteractiveFlowPublicNode;
4
- startDate: Date;
5
- try: number;
6
- status: string;
7
- }
8
- export interface DoStartedTry extends DoBaseTry {
9
- status: "started";
10
- }
11
- export declare const isDoStartedTry: (d: DoTry) => d is DoStartedTry;
12
- export interface DoFinishedTry extends DoBaseTry {
13
- status: "finished";
14
- endDate: Date;
15
- answer?: Bitflow.TaskAnswer;
16
- result?: Bitflow.TaskResult;
17
- }
18
- export declare const isDoFinishedTry: (d: DoTry) => d is DoFinishedTry;
19
- export interface DoSkippedTry extends DoBaseTry {
20
- status: "skipped";
21
- evaluation: {
22
- mode: "auto" | "manual" | "skip";
23
- };
24
- endDate: Date;
25
- }
26
- export declare const isDoSkippedTry: (d: DoTry) => d is DoSkippedTry;
27
- export declare type DoTry = DoStartedTry | DoSkippedTry | DoFinishedTry;
28
- export declare const skipDoTry: (doResult: DoResult, evaluation?: DoSkippedTry["evaluation"]) => DoResult;
29
- export interface DoResult {
30
- points: number;
31
- maxPoints: number;
32
- startDate: Date;
33
- endDate: Date;
34
- tries: DoTry[];
35
- }
36
- export declare const finishDoTry: (doResult: DoResult, answer?: Bitflow.TaskAnswer | undefined, result?: Bitflow.TaskResult | undefined) => DoResult;
37
- export declare const retryDoTry: (doResult: DoResult) => DoResult;
package/dist/esm/do.js DELETED
@@ -1,62 +0,0 @@
1
- export const isDoStartedTry = (d) => {
2
- return d.status === "started";
3
- };
4
- export const isDoFinishedTry = (d) => {
5
- return d.status === "finished";
6
- };
7
- export const isDoSkippedTry = (d) => {
8
- return d.status === "skipped";
9
- };
10
- export const skipDoTry = (doResult, evaluation = { mode: "skip" }) => {
11
- const { tries } = doResult;
12
- let { maxPoints } = doResult;
13
- const currentTry = tries[tries.length - 1];
14
- const hasTry = tries.find((doTry) => doTry.node.id === currentTry.node.id && doTry.status !== "started");
15
- if (!hasTry && (evaluation === null || evaluation === void 0 ? void 0 : evaluation.mode) !== "skip") {
16
- maxPoints += 1;
17
- }
18
- tries[tries.length - 1] = Object.assign(Object.assign({}, currentTry), { evaluation, status: "skipped", endDate: new Date() });
19
- return Object.assign(Object.assign({}, doResult), { maxPoints,
20
- tries });
21
- };
22
- export const finishDoTry = (doResult, answer, result) => {
23
- var _a, _b;
24
- const { tries } = doResult;
25
- let { points, maxPoints } = doResult;
26
- const currentTry = tries[tries.length - 1];
27
- const hasTry = tries.find((doTry) => doTry.node.id === currentTry.node.id && doTry.status !== "started");
28
- if (!hasTry && (result === null || result === void 0 ? void 0 : result.state) !== "unknown") {
29
- maxPoints += 1;
30
- }
31
- tries[tries.length - 1] = Object.assign(Object.assign({}, currentTry), { status: "finished", endDate: new Date(), answer,
32
- result });
33
- const lastTry = tries
34
- .filter(isDoFinishedTry)
35
- .find((doTry) => doTry.node.id === currentTry.node.id && currentTry.try - 1 === doTry.try);
36
- if (!lastTry && (result === null || result === void 0 ? void 0 : result.state) === "correct") {
37
- points += 1;
38
- }
39
- else if (((_a = lastTry === null || lastTry === void 0 ? void 0 : lastTry.result) === null || _a === void 0 ? void 0 : _a.state) === "correct" &&
40
- (result === null || result === void 0 ? void 0 : result.state) !== "correct") {
41
- points -= 1;
42
- }
43
- else if (((_b = lastTry === null || lastTry === void 0 ? void 0 : lastTry.result) === null || _b === void 0 ? void 0 : _b.state) !== "correct" &&
44
- (result === null || result === void 0 ? void 0 : result.state) === "correct") {
45
- points += 1;
46
- }
47
- return Object.assign(Object.assign({}, doResult), { maxPoints,
48
- points,
49
- tries });
50
- };
51
- export const retryDoTry = (doResult) => {
52
- const { tries } = doResult;
53
- const lastTry = tries[tries.length - 1];
54
- tries.push({
55
- status: "started",
56
- try: lastTry.try + 1,
57
- startDate: new Date(),
58
- node: Object.assign({}, lastTry.node),
59
- });
60
- return Object.assign(Object.assign({}, doResult), { tries });
61
- };
62
- //# sourceMappingURL=do.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"do.js","sourceRoot":"","sources":["../../src/do.ts"],"names":[],"mappings":"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"}