@happychef/algorithm 1.3.0 → 1.3.5

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 (56) hide show
  1. package/.github/workflows/ci-cd.yml +80 -80
  2. package/CHANGELOG.md +8 -8
  3. package/RESERVERINGEN_GIDS.md +986 -986
  4. package/assignTables.js +444 -444
  5. package/bundle_entry.js +100 -0
  6. package/changes/2025/December/PR2___change.md +14 -14
  7. package/changes/2025/December/PR3_add__change.md +20 -20
  8. package/changes/2025/December/PR4___.md +15 -15
  9. package/changes/2025/December/PR5___.md +15 -15
  10. package/changes/2025/December/PR6__del_.md +17 -17
  11. package/changes/2025/December/PR7_add__change.md +21 -21
  12. package/changes/2026/February/PR15_add__change.md +21 -21
  13. package/changes/2026/January/PR10_add__change.md +21 -21
  14. package/changes/2026/January/PR11_add__change.md +19 -19
  15. package/changes/2026/January/PR12_add__.md +21 -21
  16. package/changes/2026/January/PR13_add__change.md +20 -20
  17. package/changes/2026/January/PR14_add__change.md +19 -19
  18. package/changes/2026/January/PR8_add__change.md +38 -38
  19. package/changes/2026/January/PR9_add__change.md +19 -19
  20. package/filters/maxArrivalsFilter.js +114 -114
  21. package/filters/maxGroupsFilter.js +221 -221
  22. package/filters/timeFilter.js +89 -89
  23. package/getAvailableTimeblocks.js +170 -158
  24. package/grouping.js +162 -162
  25. package/index.js +42 -43
  26. package/isDateAvailable.js +80 -80
  27. package/isDateAvailableWithTableCheck.js +172 -172
  28. package/isTimeAvailable.js +26 -26
  29. package/moment-timezone-shim.js +179 -0
  30. package/nul +0 -0
  31. package/package.json +27 -27
  32. package/processing/dailyGuestCounts.js +73 -73
  33. package/processing/mealTypeCount.js +133 -133
  34. package/processing/timeblocksAvailable.js +194 -182
  35. package/reservation_data/counter.js +74 -74
  36. package/restaurant_data/exceptions.js +150 -150
  37. package/restaurant_data/openinghours.js +166 -142
  38. package/simulateTableAssignment.js +727 -726
  39. package/tableHelpers.js +212 -209
  40. package/tables/time/parseTime.js +19 -19
  41. package/tables/time/shifts.js +7 -7
  42. package/tables/utils/calculateDistance.js +13 -13
  43. package/tables/utils/isTableFreeForAllSlots.js +14 -14
  44. package/tables/utils/isTemporaryTableValid.js +39 -39
  45. package/test/test_counter.js +194 -194
  46. package/test/test_dailyCount.js +81 -81
  47. package/test/test_datesAvailable.js +106 -106
  48. package/test/test_exceptions.js +172 -172
  49. package/test/test_isDateAvailable.js +330 -330
  50. package/test/test_mealTypeCount.js +54 -54
  51. package/test/test_timesAvailable.js +88 -88
  52. package/test-meal-stop-fix.js +147 -147
  53. package/test-meal-stop-simple.js +93 -93
  54. package/test.js +336 -336
  55. package/changes/2026/February/PR16_add_getDateClosingReasons.md +0 -31
  56. package/getDateClosingReasons.js +0 -193
@@ -1,80 +1,80 @@
1
- name: CI/CD Pipeline
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
- pull_request:
8
- branches:
9
- - main
10
- types: [opened, synchronize, reopened]
11
-
12
- jobs:
13
- publish:
14
- name: Publish to NPM
15
- runs-on: ubuntu-latest
16
- if: github.ref == 'refs/heads/main' && github.event_name == 'push'
17
-
18
- steps:
19
- - name: Checkout code
20
- uses: actions/checkout@v4
21
-
22
- - name: Setup Node.js
23
- uses: actions/setup-node@v4
24
- with:
25
- node-version: '20.x'
26
- registry-url: 'https://registry.npmjs.org'
27
- cache: 'npm'
28
-
29
- - name: Install dependencies
30
- run: npm ci
31
-
32
- - name: Check if version changed
33
- id: version-check
34
- run: |
35
- PACKAGE_VERSION=$(node -p "require('./package.json').version")
36
- NPM_VERSION=$(npm view @happychef/algorithm version 2>/dev/null || echo "0.0.0")
37
- echo "Package version: $PACKAGE_VERSION"
38
- echo "NPM version: $NPM_VERSION"
39
- if [ "$PACKAGE_VERSION" != "$NPM_VERSION" ]; then
40
- echo "version_changed=true" >> $GITHUB_OUTPUT
41
- echo "Version changed from $NPM_VERSION to $PACKAGE_VERSION"
42
- else
43
- echo "version_changed=false" >> $GITHUB_OUTPUT
44
- echo "Version unchanged: $PACKAGE_VERSION"
45
- fi
46
-
47
- - name: Publish to NPM
48
- if: steps.version-check.outputs.version_changed == 'true'
49
- run: |
50
- npm publish --access public
51
- echo "## 📦 NPM Package Published" >> $GITHUB_STEP_SUMMARY
52
- echo "" >> $GITHUB_STEP_SUMMARY
53
- echo "✅ Successfully published @happychef/algorithm@$(node -p "require('./package.json').version")" >> $GITHUB_STEP_SUMMARY
54
- echo "" >> $GITHUB_STEP_SUMMARY
55
- echo "🔗 [View on NPM](https://www.npmjs.com/package/@happychef/algorithm)" >> $GITHUB_STEP_SUMMARY
56
- env:
57
- NODE_AUTH_TOKEN: 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
58
-
59
- - name: Skip publishing (version unchanged)
60
- if: steps.version-check.outputs.version_changed == 'false'
61
- run: |
62
- echo "## ⏭️ Publishing Skipped" >> $GITHUB_STEP_SUMMARY
63
- echo "" >> $GITHUB_STEP_SUMMARY
64
- echo "Version $(node -p "require('./package.json').version") is already published" >> $GITHUB_STEP_SUMMARY
65
- echo "" >> $GITHUB_STEP_SUMMARY
66
- echo "💡 Bump the version in package.json to trigger publishing" >> $GITHUB_STEP_SUMMARY
67
-
68
- - name: Create Git Tag
69
- if: steps.version-check.outputs.version_changed == 'true'
70
- run: |
71
- PACKAGE_VERSION=$(node -p "require('./package.json').version")
72
- git config user.name "github-actions[bot]"
73
- git config user.email "github-actions[bot]@users.noreply.github.com"
74
- git tag -a "v$PACKAGE_VERSION" -m "Release v$PACKAGE_VERSION"
75
- git push origin "v$PACKAGE_VERSION"
76
- echo "## 🏷️ Git Tag Created" >> $GITHUB_STEP_SUMMARY
77
- echo "" >> $GITHUB_STEP_SUMMARY
78
- echo "Created and pushed tag: v$PACKAGE_VERSION" >> $GITHUB_STEP_SUMMARY
79
- env:
80
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1
+ name: CI/CD Pipeline
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - main
10
+ types: [opened, synchronize, reopened]
11
+
12
+ jobs:
13
+ publish:
14
+ name: Publish to NPM
15
+ runs-on: ubuntu-latest
16
+ if: github.ref == 'refs/heads/main' && github.event_name == 'push'
17
+
18
+ steps:
19
+ - name: Checkout code
20
+ uses: actions/checkout@v4
21
+
22
+ - name: Setup Node.js
23
+ uses: actions/setup-node@v4
24
+ with:
25
+ node-version: '20.x'
26
+ registry-url: 'https://registry.npmjs.org'
27
+ cache: 'npm'
28
+
29
+ - name: Install dependencies
30
+ run: npm ci
31
+
32
+ - name: Check if version changed
33
+ id: version-check
34
+ run: |
35
+ PACKAGE_VERSION=$(node -p "require('./package.json').version")
36
+ NPM_VERSION=$(npm view @happychef/algorithm version 2>/dev/null || echo "0.0.0")
37
+ echo "Package version: $PACKAGE_VERSION"
38
+ echo "NPM version: $NPM_VERSION"
39
+ if [ "$PACKAGE_VERSION" != "$NPM_VERSION" ]; then
40
+ echo "version_changed=true" >> $GITHUB_OUTPUT
41
+ echo "Version changed from $NPM_VERSION to $PACKAGE_VERSION"
42
+ else
43
+ echo "version_changed=false" >> $GITHUB_OUTPUT
44
+ echo "Version unchanged: $PACKAGE_VERSION"
45
+ fi
46
+
47
+ - name: Publish to NPM
48
+ if: steps.version-check.outputs.version_changed == 'true'
49
+ run: |
50
+ npm publish --access public
51
+ echo "## 📦 NPM Package Published" >> $GITHUB_STEP_SUMMARY
52
+ echo "" >> $GITHUB_STEP_SUMMARY
53
+ echo "✅ Successfully published @happychef/algorithm@$(node -p "require('./package.json').version")" >> $GITHUB_STEP_SUMMARY
54
+ echo "" >> $GITHUB_STEP_SUMMARY
55
+ echo "🔗 [View on NPM](https://www.npmjs.com/package/@happychef/algorithm)" >> $GITHUB_STEP_SUMMARY
56
+ env:
57
+ NODE_AUTH_TOKEN: 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
58
+
59
+ - name: Skip publishing (version unchanged)
60
+ if: steps.version-check.outputs.version_changed == 'false'
61
+ run: |
62
+ echo "## ⏭️ Publishing Skipped" >> $GITHUB_STEP_SUMMARY
63
+ echo "" >> $GITHUB_STEP_SUMMARY
64
+ echo "Version $(node -p "require('./package.json').version") is already published" >> $GITHUB_STEP_SUMMARY
65
+ echo "" >> $GITHUB_STEP_SUMMARY
66
+ echo "💡 Bump the version in package.json to trigger publishing" >> $GITHUB_STEP_SUMMARY
67
+
68
+ - name: Create Git Tag
69
+ if: steps.version-check.outputs.version_changed == 'true'
70
+ run: |
71
+ PACKAGE_VERSION=$(node -p "require('./package.json').version")
72
+ git config user.name "github-actions[bot]"
73
+ git config user.email "github-actions[bot]@users.noreply.github.com"
74
+ git tag -a "v$PACKAGE_VERSION" -m "Release v$PACKAGE_VERSION"
75
+ git push origin "v$PACKAGE_VERSION"
76
+ echo "## 🏷️ Git Tag Created" >> $GITHUB_STEP_SUMMARY
77
+ echo "" >> $GITHUB_STEP_SUMMARY
78
+ echo "Created and pushed tag: v$PACKAGE_VERSION" >> $GITHUB_STEP_SUMMARY
79
+ env:
80
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
package/CHANGELOG.md CHANGED
@@ -1,8 +1,8 @@
1
- PR 2:
2
- ADDED:
3
- - Modified the `getAvailableTimeblocks.js` file to change the default value of `uurOpVoorhand` from 4 hours to 0 hours, enabling immediate bookings when the field is not explicitly set in general settings.
4
-
5
- REMOVED:
6
- - No functions, features, or code were removed; only a configuration default value was updated.
7
-
8
- ---
1
+ PR 2:
2
+ ADDED:
3
+ - Modified the `getAvailableTimeblocks.js` file to change the default value of `uurOpVoorhand` from 4 hours to 0 hours, enabling immediate bookings when the field is not explicitly set in general settings.
4
+
5
+ REMOVED:
6
+ - No functions, features, or code were removed; only a configuration default value was updated.
7
+
8
+ ---