effect 2.0.1 → 2.0.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 (44) hide show
  1. package/Cron/package.json +6 -0
  2. package/dist/cjs/Cron.js +457 -0
  3. package/dist/cjs/Cron.js.map +1 -0
  4. package/dist/cjs/Fiber.js.map +1 -1
  5. package/dist/cjs/ReadonlyArray.js +13 -7
  6. package/dist/cjs/ReadonlyArray.js.map +1 -1
  7. package/dist/cjs/Schedule.js +12 -1
  8. package/dist/cjs/Schedule.js.map +1 -1
  9. package/dist/cjs/index.js +4 -2
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/internal/schedule.js +29 -2
  12. package/dist/cjs/internal/schedule.js.map +1 -1
  13. package/dist/cjs/internal/version.js +1 -1
  14. package/dist/dts/Cron.d.ts +170 -0
  15. package/dist/dts/Cron.d.ts.map +1 -0
  16. package/dist/dts/Fiber.d.ts +6 -0
  17. package/dist/dts/Fiber.d.ts.map +1 -1
  18. package/dist/dts/ReadonlyArray.d.ts +26 -26
  19. package/dist/dts/ReadonlyArray.d.ts.map +1 -1
  20. package/dist/dts/Schedule.d.ts +11 -0
  21. package/dist/dts/Schedule.d.ts.map +1 -1
  22. package/dist/dts/index.d.ts +4 -0
  23. package/dist/dts/index.d.ts.map +1 -1
  24. package/dist/dts/internal/version.d.ts +1 -1
  25. package/dist/esm/Cron.js +418 -0
  26. package/dist/esm/Cron.js.map +1 -0
  27. package/dist/esm/Fiber.js.map +1 -1
  28. package/dist/esm/ReadonlyArray.js +14 -8
  29. package/dist/esm/ReadonlyArray.js.map +1 -1
  30. package/dist/esm/Schedule.js +11 -0
  31. package/dist/esm/Schedule.js.map +1 -1
  32. package/dist/esm/index.js +4 -0
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/internal/schedule.js +26 -0
  35. package/dist/esm/internal/schedule.js.map +1 -1
  36. package/dist/esm/internal/version.js +1 -1
  37. package/package.json +9 -1
  38. package/src/Cron.ts +525 -0
  39. package/src/Fiber.ts +7 -0
  40. package/src/ReadonlyArray.ts +74 -53
  41. package/src/Schedule.ts +12 -0
  42. package/src/index.ts +5 -0
  43. package/src/internal/schedule.ts +42 -0
  44. package/src/internal/version.ts +1 -1
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/Cron.js",
3
+ "module": "../dist/esm/Cron.js",
4
+ "types": "../dist/dts/Cron.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -0,0 +1,457 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.sequence = exports.parse = exports.next = exports.match = exports.make = exports.isParseError = exports.isCron = exports.equals = exports.TypeId = exports.ParseErrorTypeId = exports.Equivalence = void 0;
7
+ var Either = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Either.js"));
8
+ var Equal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Equal.js"));
9
+ var equivalence = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Equivalence.js"));
10
+ var _Function = /*#__PURE__*/require("./Function.js");
11
+ var Hash = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Hash.js"));
12
+ var _Inspectable = /*#__PURE__*/require("./Inspectable.js");
13
+ var N = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Number.js"));
14
+ var _Pipeable = /*#__PURE__*/require("./Pipeable.js");
15
+ var _Predicate = /*#__PURE__*/require("./Predicate.js");
16
+ var ReadonlyArray = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./ReadonlyArray.js"));
17
+ var String = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./String.js"));
18
+ function _getRequireWildcardCache(e) {
19
+ if ("function" != typeof WeakMap) return null;
20
+ var r = new WeakMap(),
21
+ t = new WeakMap();
22
+ return (_getRequireWildcardCache = function (e) {
23
+ return e ? t : r;
24
+ })(e);
25
+ }
26
+ function _interopRequireWildcard(e, r) {
27
+ if (!r && e && e.__esModule) return e;
28
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
29
+ default: e
30
+ };
31
+ var t = _getRequireWildcardCache(r);
32
+ if (t && t.has(e)) return t.get(e);
33
+ var n = {
34
+ __proto__: null
35
+ },
36
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
37
+ for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {
38
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
39
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
40
+ }
41
+ return n.default = e, t && t.set(e, n), n;
42
+ }
43
+ /**
44
+ * @since 2.0.0
45
+ */
46
+
47
+ /**
48
+ * @since 2.0.0
49
+ * @category symbols
50
+ */
51
+ const TypeId = exports.TypeId = /*#__PURE__*/Symbol.for("effect/Cron");
52
+ const CronProto = {
53
+ [TypeId]: TypeId,
54
+ [Equal.symbol](that) {
55
+ return isCron(that) && equals(this, that);
56
+ },
57
+ [Hash.symbol]() {
58
+ return (0, _Function.pipe)(Hash.array(ReadonlyArray.fromIterable(this.minutes)), Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.hours))), Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.days))), Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.months))), Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.weekdays))));
59
+ },
60
+ toString() {
61
+ return (0, _Inspectable.format)(this.toJSON());
62
+ },
63
+ toJSON() {
64
+ return {
65
+ _id: "Cron",
66
+ minutes: ReadonlyArray.fromIterable(this.minutes),
67
+ hours: ReadonlyArray.fromIterable(this.hours),
68
+ days: ReadonlyArray.fromIterable(this.days),
69
+ months: ReadonlyArray.fromIterable(this.months),
70
+ weekdays: ReadonlyArray.fromIterable(this.weekdays)
71
+ };
72
+ },
73
+ [_Inspectable.NodeInspectSymbol]() {
74
+ return this.toJSON();
75
+ },
76
+ pipe() {
77
+ return (0, _Pipeable.pipeArguments)(this, arguments);
78
+ }
79
+ };
80
+ /**
81
+ * Checks if a given value is a `Cron` instance.
82
+ *
83
+ * @param u - The value to check.
84
+ *
85
+ * @since 2.0.0
86
+ * @category guards
87
+ */
88
+ const isCron = u => (0, _Predicate.hasProperty)(u, TypeId);
89
+ /**
90
+ * Creates a `Cron` instance from.
91
+ *
92
+ * @param constraints - The cron constraints.
93
+ *
94
+ * @since 2.0.0
95
+ * @category constructors
96
+ */
97
+ exports.isCron = isCron;
98
+ const make = ({
99
+ days,
100
+ hours,
101
+ minutes,
102
+ months,
103
+ weekdays
104
+ }) => {
105
+ const o = Object.create(CronProto);
106
+ o.minutes = new Set(ReadonlyArray.sort(minutes, N.Order));
107
+ o.hours = new Set(ReadonlyArray.sort(hours, N.Order));
108
+ o.days = new Set(ReadonlyArray.sort(days, N.Order));
109
+ o.months = new Set(ReadonlyArray.sort(months, N.Order));
110
+ o.weekdays = new Set(ReadonlyArray.sort(weekdays, N.Order));
111
+ return o;
112
+ };
113
+ /**
114
+ * @since 2.0.0
115
+ * @category symbol
116
+ */
117
+ exports.make = make;
118
+ const ParseErrorTypeId = exports.ParseErrorTypeId = /*#__PURE__*/Symbol.for("effect/Cron/errors/ParseError");
119
+ const ParseErrorProto = {
120
+ _tag: "ParseError",
121
+ [ParseErrorTypeId]: ParseErrorTypeId
122
+ };
123
+ const ParseError = (message, input) => {
124
+ const o = Object.create(ParseErrorProto);
125
+ o.message = message;
126
+ if (input !== undefined) {
127
+ o.input = input;
128
+ }
129
+ return o;
130
+ };
131
+ /**
132
+ * Returns `true` if the specified value is an `ParseError`, `false` otherwise.
133
+ *
134
+ * @param u - The value to check.
135
+ *
136
+ * @since 2.0.0
137
+ * @category guards
138
+ */
139
+ const isParseError = u => (0, _Predicate.hasProperty)(u, ParseErrorTypeId);
140
+ /**
141
+ * Parses a cron expression into a `Cron` instance.
142
+ *
143
+ * @param cron - The cron expression to parse.
144
+ *
145
+ * @example
146
+ * import * as Cron from "effect/Cron"
147
+ * import * as Either from "effect/Either"
148
+ *
149
+ * // At 04:00 on every day-of-month from 8 through 14.
150
+ * assert.deepStrictEqual(Cron.parse("0 4 8-14 * *"), Either.right(Cron.make({
151
+ * minutes: [0],
152
+ * hours: [4],
153
+ * days: [8, 9, 10, 11, 12, 13, 14],
154
+ * months: [],
155
+ * weekdays: []
156
+ * })))
157
+ *
158
+ * @since 2.0.0
159
+ * @category constructors
160
+ */
161
+ exports.isParseError = isParseError;
162
+ const parse = cron => {
163
+ const segments = cron.split(" ").filter(String.isNonEmpty);
164
+ if (segments.length !== 5) {
165
+ return Either.left(ParseError(`Invalid number of segments in cron expression`, cron));
166
+ }
167
+ const [minutes, hours, days, months, weekdays] = segments;
168
+ return Either.all({
169
+ minutes: parseSegment(minutes, minuteOptions),
170
+ hours: parseSegment(hours, hourOptions),
171
+ days: parseSegment(days, dayOptions),
172
+ months: parseSegment(months, monthOptions),
173
+ weekdays: parseSegment(weekdays, weekdayOptions)
174
+ }).pipe(Either.map(segments => make(segments)));
175
+ };
176
+ /**
177
+ * Checks if a given `Date` falls within an active `Cron` time window.
178
+ *
179
+ * @param cron - The `Cron` instance.
180
+ * @param date - The `Date` to check against.
181
+ *
182
+ * @example
183
+ * import * as Cron from "effect/Cron"
184
+ * import * as Either from "effect/Either"
185
+ *
186
+ * const cron = Either.getOrThrow(Cron.parse("0 4 8-14 * *"))
187
+ * assert.deepStrictEqual(Cron.match(cron, new Date("2021-01-08 04:00:00")), true)
188
+ * assert.deepStrictEqual(Cron.match(cron, new Date("2021-01-08 05:00:00")), false)
189
+ *
190
+ * @since 2.0.0
191
+ */
192
+ exports.parse = parse;
193
+ const match = (cron, date) => {
194
+ const {
195
+ days,
196
+ hours,
197
+ minutes,
198
+ months,
199
+ weekdays
200
+ } = cron;
201
+ const minute = date.getMinutes();
202
+ if (minutes.size !== 0 && !minutes.has(minute)) {
203
+ return false;
204
+ }
205
+ const hour = date.getHours();
206
+ if (hours.size !== 0 && !hours.has(hour)) {
207
+ return false;
208
+ }
209
+ const month = date.getMonth() + 1;
210
+ if (months.size !== 0 && !months.has(month)) {
211
+ return false;
212
+ }
213
+ if (days.size === 0 && weekdays.size === 0) {
214
+ return true;
215
+ }
216
+ const day = date.getDate();
217
+ if (weekdays.size === 0) {
218
+ return days.has(day);
219
+ }
220
+ const weekday = date.getDay();
221
+ if (days.size === 0) {
222
+ return weekdays.has(weekday);
223
+ }
224
+ return days.has(day) || weekdays.has(weekday);
225
+ };
226
+ /**
227
+ * Returns the next run `Date` for the given `Cron` instance.
228
+ *
229
+ * Uses the current time as a starting point if no value is provided for `now`.
230
+ *
231
+ * @example
232
+ * import * as Cron from "effect/Cron"
233
+ * import * as Either from "effect/Either"
234
+ *
235
+ * const after = new Date("2021-01-01 00:00:00")
236
+ * const cron = Either.getOrThrow(Cron.parse("0 4 8-14 * *"))
237
+ * assert.deepStrictEqual(Cron.next(cron, after), new Date("2021-01-08 04:00:00"))
238
+ *
239
+ * @param cron - The `Cron` instance.
240
+ * @param now - The `Date` to start searching from.
241
+ *
242
+ * @since 2.0.0
243
+ */
244
+ exports.match = match;
245
+ const next = (cron, now) => {
246
+ const {
247
+ days,
248
+ hours,
249
+ minutes,
250
+ months,
251
+ weekdays
252
+ } = cron;
253
+ const restrictMinutes = minutes.size !== 0;
254
+ const restrictHours = hours.size !== 0;
255
+ const restrictDays = days.size !== 0;
256
+ const restrictMonths = months.size !== 0;
257
+ const restrictWeekdays = weekdays.size !== 0;
258
+ const current = now ? new Date(now.getTime()) : new Date();
259
+ // Increment by one minute to ensure we don't match the current date.
260
+ current.setMinutes(current.getMinutes() + 1);
261
+ current.setSeconds(0);
262
+ current.setMilliseconds(0);
263
+ // Only search 8 years into the future.
264
+ const limit = new Date(current).setFullYear(current.getFullYear() + 8);
265
+ while (current.getTime() <= limit) {
266
+ if (restrictMonths && !months.has(current.getMonth() + 1)) {
267
+ current.setMonth(current.getMonth() + 1);
268
+ current.setDate(1);
269
+ current.setHours(0);
270
+ current.setMinutes(0);
271
+ continue;
272
+ }
273
+ if (restrictDays && restrictWeekdays) {
274
+ if (!days.has(current.getDate()) && !weekdays.has(current.getDay())) {
275
+ current.setDate(current.getDate() + 1);
276
+ current.setHours(0);
277
+ current.setMinutes(0);
278
+ continue;
279
+ }
280
+ } else if (restrictDays) {
281
+ if (!days.has(current.getDate())) {
282
+ current.setDate(current.getDate() + 1);
283
+ current.setHours(0);
284
+ current.setMinutes(0);
285
+ continue;
286
+ }
287
+ } else if (restrictWeekdays) {
288
+ if (!weekdays.has(current.getDay())) {
289
+ current.setDate(current.getDate() + 1);
290
+ current.setHours(0);
291
+ current.setMinutes(0);
292
+ continue;
293
+ }
294
+ }
295
+ if (restrictHours && !hours.has(current.getHours())) {
296
+ current.setHours(current.getHours() + 1);
297
+ current.setMinutes(0);
298
+ continue;
299
+ }
300
+ if (restrictMinutes && !minutes.has(current.getMinutes())) {
301
+ current.setMinutes(current.getMinutes() + 1);
302
+ continue;
303
+ }
304
+ return current;
305
+ }
306
+ throw new Error("Unable to find next cron date");
307
+ };
308
+ /**
309
+ * Returns an `IterableIterator` which yields the sequence of `Date`s that match the `Cron` instance.
310
+ *
311
+ * @param cron - The `Cron` instance.
312
+ * @param now - The `Date` to start searching from.
313
+ *
314
+ * @since 2.0.0
315
+ */
316
+ exports.next = next;
317
+ const sequence = function* (cron, now) {
318
+ while (true) {
319
+ yield now = next(cron, now);
320
+ }
321
+ };
322
+ /**
323
+ * @category instances
324
+ * @since 2.0.0
325
+ */
326
+ exports.sequence = sequence;
327
+ const Equivalence = exports.Equivalence = /*#__PURE__*/equivalence.make((self, that) => restrictionsEquals(self.minutes, that.minutes) && restrictionsEquals(self.hours, that.hours) && restrictionsEquals(self.days, that.days) && restrictionsEquals(self.months, that.months) && restrictionsEquals(self.weekdays, that.weekdays));
328
+ const restrictionsArrayEquals = /*#__PURE__*/equivalence.array(equivalence.number);
329
+ const restrictionsEquals = (self, that) => restrictionsArrayEquals(ReadonlyArray.fromIterable(self), ReadonlyArray.fromIterable(that));
330
+ /**
331
+ * Checks if two `Cron`s are equal.
332
+ *
333
+ * @since 2.0.0
334
+ * @category predicates
335
+ */
336
+ const equals = exports.equals = /*#__PURE__*/(0, _Function.dual)(2, (self, that) => Equivalence(self, that));
337
+ const minuteOptions = {
338
+ segment: "minute",
339
+ min: 0,
340
+ max: 59
341
+ };
342
+ const hourOptions = {
343
+ segment: "hour",
344
+ min: 0,
345
+ max: 23
346
+ };
347
+ const dayOptions = {
348
+ segment: "day",
349
+ min: 1,
350
+ max: 31
351
+ };
352
+ const monthOptions = {
353
+ segment: "month",
354
+ min: 1,
355
+ max: 12,
356
+ aliases: {
357
+ jan: 1,
358
+ feb: 2,
359
+ mar: 3,
360
+ apr: 4,
361
+ may: 5,
362
+ jun: 6,
363
+ jul: 7,
364
+ aug: 8,
365
+ sep: 9,
366
+ oct: 10,
367
+ nov: 11,
368
+ dec: 12
369
+ }
370
+ };
371
+ const weekdayOptions = {
372
+ segment: "weekday",
373
+ min: 0,
374
+ max: 6,
375
+ aliases: {
376
+ sun: 0,
377
+ mon: 1,
378
+ tue: 2,
379
+ wed: 3,
380
+ thu: 4,
381
+ fri: 5,
382
+ sat: 6
383
+ }
384
+ };
385
+ const parseSegment = (input, options) => {
386
+ const capacity = options.max - options.min + 1;
387
+ const values = new Set();
388
+ const fields = input.split(",");
389
+ for (const field of fields) {
390
+ const [raw, step] = splitStep(field);
391
+ if (raw === "*" && step === undefined) {
392
+ return Either.right(new Set());
393
+ }
394
+ if (step !== undefined) {
395
+ if (!Number.isInteger(step)) {
396
+ return Either.left(ParseError(`Expected step value to be a positive integer`, input));
397
+ }
398
+ if (step < 1) {
399
+ return Either.left(ParseError(`Expected step value to be greater than 0`, input));
400
+ }
401
+ if (step > options.max) {
402
+ return Either.left(ParseError(`Expected step value to be less than ${options.max}`, input));
403
+ }
404
+ }
405
+ if (raw === "*") {
406
+ for (let i = options.min; i <= options.max; i += step ?? 1) {
407
+ values.add(i);
408
+ }
409
+ } else {
410
+ const [left, right] = splitRange(raw, options.aliases);
411
+ if (!Number.isInteger(left)) {
412
+ return Either.left(ParseError(`Expected a positive integer`, input));
413
+ }
414
+ if (left < options.min || left > options.max) {
415
+ return Either.left(ParseError(`Expected a value between ${options.min} and ${options.max}`, input));
416
+ }
417
+ if (right === undefined) {
418
+ values.add(left);
419
+ } else {
420
+ if (!Number.isInteger(right)) {
421
+ return Either.left(ParseError(`Expected a positive integer`, input));
422
+ }
423
+ if (right < options.min || right > options.max) {
424
+ return Either.left(ParseError(`Expected a value between ${options.min} and ${options.max}`, input));
425
+ }
426
+ if (left > right) {
427
+ return Either.left(ParseError(`Invalid value range`, input));
428
+ }
429
+ for (let i = left; i <= right; i += step ?? 1) {
430
+ values.add(i);
431
+ }
432
+ }
433
+ }
434
+ if (values.size >= capacity) {
435
+ return Either.right(new Set());
436
+ }
437
+ }
438
+ return Either.right(values);
439
+ };
440
+ const splitStep = input => {
441
+ const seperator = input.indexOf("/");
442
+ if (seperator !== -1) {
443
+ return [input.slice(0, seperator), Number(input.slice(seperator + 1))];
444
+ }
445
+ return [input, undefined];
446
+ };
447
+ const splitRange = (input, aliases) => {
448
+ const seperator = input.indexOf("-");
449
+ if (seperator !== -1) {
450
+ return [aliasOrValue(input.slice(0, seperator), aliases), aliasOrValue(input.slice(seperator + 1), aliases)];
451
+ }
452
+ return [aliasOrValue(input, aliases), undefined];
453
+ };
454
+ function aliasOrValue(field, aliases) {
455
+ return aliases?.[field.toLocaleLowerCase()] ?? Number(field);
456
+ }
457
+ //# sourceMappingURL=Cron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cron.js","names":["Either","_interopRequireWildcard","require","Equal","equivalence","_Function","Hash","_Inspectable","N","_Pipeable","_Predicate","ReadonlyArray","String","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","TypeId","exports","Symbol","for","CronProto","symbol","that","isCron","equals","pipe","array","fromIterable","minutes","combine","hours","days","months","weekdays","toString","format","toJSON","_id","NodeInspectSymbol","pipeArguments","arguments","hasProperty","make","o","create","Set","sort","Order","ParseErrorTypeId","ParseErrorProto","_tag","ParseError","message","input","undefined","isParseError","parse","cron","segments","split","filter","isNonEmpty","length","left","all","parseSegment","minuteOptions","hourOptions","dayOptions","monthOptions","weekdayOptions","map","match","date","minute","getMinutes","size","hour","getHours","month","getMonth","day","getDate","weekday","getDay","next","now","restrictMinutes","restrictHours","restrictDays","restrictMonths","restrictWeekdays","current","Date","getTime","setMinutes","setSeconds","setMilliseconds","limit","setFullYear","getFullYear","setMonth","setDate","setHours","Error","sequence","Equivalence","self","restrictionsEquals","restrictionsArrayEquals","number","dual","segment","min","max","aliases","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec","sun","mon","tue","wed","thu","fri","sat","options","capacity","values","fields","field","raw","step","splitStep","right","Number","isInteger","add","splitRange","seperator","indexOf","slice","aliasOrValue","toLocaleLowerCase"],"sources":["../../src/Cron.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Fiber.js","names":["core","_interopRequireWildcard","require","circular","internal","fiberRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","FiberTypeId","exports","RuntimeFiberTypeId","Order","isFiber","isRuntimeFiber","id","_await","await","awaitAll","fiberAwaitAll","children","all","fiberAll","done","dump","dumpAll","fail","failCause","fromEffect","getCurrentFiber","inheritAll","interrupt","interruptFiber","interrupted","interruptAs","interruptAsFiber","interruptAsFork","interruptAll","interruptAllAs","interruptFork","fiberInterruptFork","join","joinAll","fiberJoinAll","map","mapEffect","mapFiber","match","never","orElse","orElseEither","poll","pretty","roots","unsafeRoots","scoped","fiberScoped","status","succeed","unit","zip","zipFiber","zipLeft","zipLeftFiber","zipRight","zipRightFiber","zipWith","zipWithFiber"],"sources":["../../src/Fiber.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"Fiber.js","names":["core","_interopRequireWildcard","require","circular","internal","fiberRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","FiberTypeId","exports","RuntimeFiberTypeId","Order","isFiber","isRuntimeFiber","id","_await","await","awaitAll","fiberAwaitAll","children","all","fiberAll","done","dump","dumpAll","fail","failCause","fromEffect","getCurrentFiber","inheritAll","interrupt","interruptFiber","interrupted","interruptAs","interruptAsFiber","interruptAsFork","interruptAll","interruptAllAs","interruptFork","fiberInterruptFork","join","joinAll","fiberJoinAll","map","mapEffect","mapFiber","match","never","orElse","orElseEither","poll","pretty","roots","unsafeRoots","scoped","fiberScoped","status","succeed","unit","zip","zipFiber","zipLeft","zipLeftFiber","zipRight","zipRightFiber","zipWith","zipWithFiber"],"sources":["../../src/Fiber.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -431,19 +431,21 @@ const takeRight = exports.takeRight = /*#__PURE__*/(0, _Function.dual)(2, (self,
431
431
  * @since 2.0.0
432
432
  */
433
433
  const takeWhile = exports.takeWhile = /*#__PURE__*/(0, _Function.dual)(2, (self, predicate) => {
434
+ let i = 0;
434
435
  const out = [];
435
436
  for (const a of self) {
436
- if (!predicate(a)) {
437
+ if (!predicate(a, i)) {
437
438
  break;
438
439
  }
439
440
  out.push(a);
441
+ i++;
440
442
  }
441
443
  return out;
442
444
  });
443
445
  const spanIndex = (self, predicate) => {
444
446
  let i = 0;
445
447
  for (const a of self) {
446
- if (!predicate(a)) {
448
+ if (!predicate(a, i)) {
447
449
  break;
448
450
  }
449
451
  i++;
@@ -500,7 +502,7 @@ const dropWhile = exports.dropWhile = /*#__PURE__*/(0, _Function.dual)(2, (self,
500
502
  const findFirstIndex = exports.findFirstIndex = /*#__PURE__*/(0, _Function.dual)(2, (self, predicate) => {
501
503
  let i = 0;
502
504
  for (const a of self) {
503
- if (predicate(a)) {
505
+ if (predicate(a, i)) {
504
506
  return O.some(i);
505
507
  }
506
508
  i++;
@@ -516,7 +518,7 @@ const findFirstIndex = exports.findFirstIndex = /*#__PURE__*/(0, _Function.dual)
516
518
  const findLastIndex = exports.findLastIndex = /*#__PURE__*/(0, _Function.dual)(2, (self, predicate) => {
517
519
  const input = fromIterable(self);
518
520
  for (let i = input.length - 1; i >= 0; i--) {
519
- if (predicate(input[i])) {
521
+ if (predicate(input[i], i)) {
520
522
  return O.some(i);
521
523
  }
522
524
  }
@@ -882,7 +884,7 @@ const split = exports.split = /*#__PURE__*/(0, _Function.dual)(2, (self, n) => {
882
884
  * @category splitting
883
885
  * @since 2.0.0
884
886
  */
885
- const splitWhere = exports.splitWhere = /*#__PURE__*/(0, _Function.dual)(2, (self, predicate) => span(self, (0, _Predicate.not)(predicate)));
887
+ const splitWhere = exports.splitWhere = /*#__PURE__*/(0, _Function.dual)(2, (self, predicate) => span(self, (a, i) => !predicate(a, i)));
886
888
  /**
887
889
  * @since 2.0.0
888
890
  */
@@ -1074,14 +1076,16 @@ const filterMap = exports.filterMap = /*#__PURE__*/(0, _Function.dual)(2, (self,
1074
1076
  * @since 2.0.0
1075
1077
  */
1076
1078
  const filterMapWhile = exports.filterMapWhile = /*#__PURE__*/(0, _Function.dual)(2, (self, f) => {
1079
+ let i = 0;
1077
1080
  const out = [];
1078
1081
  for (const a of self) {
1079
- const b = f(a);
1082
+ const b = f(a, i);
1080
1083
  if (O.isSome(b)) {
1081
1084
  out.push(b.value);
1082
1085
  } else {
1083
1086
  break;
1084
1087
  }
1088
+ i++;
1085
1089
  }
1086
1090
  return out;
1087
1091
  });
@@ -1382,12 +1386,14 @@ const join = exports.join = /*#__PURE__*/(0, _Function.dual)(2, (self, sep) => f
1382
1386
  * @category folding
1383
1387
  */
1384
1388
  const mapAccum = exports.mapAccum = /*#__PURE__*/(0, _Function.dual)(3, (self, s, f) => {
1389
+ let i = 0;
1385
1390
  let s1 = s;
1386
1391
  const out = [];
1387
1392
  for (const a of self) {
1388
- const r = f(s1, a);
1393
+ const r = f(s1, a, i);
1389
1394
  s1 = r[0];
1390
1395
  out.push(r[1]);
1396
+ i++;
1391
1397
  }
1392
1398
  return [s1, out];
1393
1399
  });