timetable-app

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 11dc017d657d2fde0ab9e887b02f3535fc207d02
parent d2d1c1bfb6159806f3f7afba1e314c18fa4d571c
Author: Yuukin256 <Yuukin256@gmail.com>
Date:   Wed,  1 Jun 2022 23:48:23 +0900

テストデータを挿入して実装

Diffstat:
Mpackage.json | 7++++++-
Asrc/data/test.csv | 1+
Msrc/index.ts | 94+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/types.ts | 29+++++++++++++++++++++++++++++
Asrc/utils.ts | 29+++++++++++++++++++++++++++++
Mtsconfig.json | 2+-
Myarn.lock | 289+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
7 files changed, 339 insertions(+), 112 deletions(-)

diff --git a/package.json b/package.json @@ -6,13 +6,18 @@ "prepare": "husky install", "build": "tsc", "dev": "ts-node", - "start": "node .", + "start": "node dist/index.js", "lint": "eslint src/**/*.{ts,tsx} && tsc --noEmit", "lint:fix": "eslint src/**/*.{ts,tsx} --fix", "type-check": "tsc --noEmit", "format": "prettier --write ." }, + "dependencies": { + "@js-temporal/polyfill": "^0.4.1", + "immutable": "^4.0.0" + }, "devDependencies": { + "@types/node": "^17.0.33", "@typescript-eslint/eslint-plugin": "^5.17.0", "@typescript-eslint/parser": "^5.17.0", "eslint": "^8.12.0", diff --git a/src/data/test.csv b/src/data/test.csv @@ -0,0 +1 @@ +test date, data1, data2 diff --git a/src/index.ts b/src/index.ts @@ -0,0 +1,94 @@ +import { Temporal } from '@js-temporal/polyfill'; +import { Map, merge } from 'immutable'; + +import { isAbstractLessonName } from './utils'; + +import type { Grade, Class, Calendar, Standard, Unusual } from './types'; + +const main = async (g: Grade, c: Class) => { + console.log(`${g}-${c}`); + + const calendar: Calendar = Map([ + [new Temporal.PlainDate(2022, 1, 26), { 1: '水1', 2: '水2', 3: '水5', 4: '水6', 5: '水3', 6: '水4', 7: '水7' }], + ]); + + const standard: Standard = { + 月1: '', + 月2: '', + 月3: '', + 月4: '', + 月5: '', + 月6: '', + 月7: '', + 火1: '', + 火2: '', + 火3: '', + 火4: '', + 火5: '', + 火6: '', + 火7: '', + 水1: '古典', + 水2: '化学', + 水3: '英語G', + 水4: '数学Ⅰ', + 水5: '書道', + 水6: '体育', + 水7: 'SD', + 木1: '', + 木2: '', + 木3: '', + 木4: '', + 木5: '', + 木6: '', + 金1: '', + 金2: '', + 金3: '', + 金4: '', + 金5: '', + 金6: '', + 金7: '', + }; + const unusual: Unusual = Map([[new Temporal.PlainDate(2022, 1, 26), { 1: '数学A', 3: '古典' }]]); + + const standardAppliedCalendar = applyStandard(calendar, standard); + + return applyUnusual(standardAppliedCalendar, unusual); +}; + +const applyStandard = (calendar: Calendar, standard: Standard): Calendar => { + // 標準時間割表のオブジェクトからから授業名を取り出す関数 + const getActualLesson = (lessonName: string | null) => { + if (lessonName !== null && isAbstractLessonName(lessonName)) { + return standard[lessonName]; + } else { + return lessonName; + } + }; + + return calendar.map((lessons) => ({ + 1: getActualLesson(lessons[1]), + 2: getActualLesson(lessons[2]), + 3: getActualLesson(lessons[3]), + 4: getActualLesson(lessons[4]), + 5: getActualLesson(lessons[5]), + 6: getActualLesson(lessons[6]), + 7: getActualLesson(lessons[7]), + })); +}; + +const applyUnusual = (calendar: Calendar, unusual: Unusual): Calendar => { + return calendar.map((originalLessons, date) => { + // この日の臨時時間割 + const unusualLessons = unusual.find((_, k) => k.equals(date)); + + // ない場合は終了 + if (typeof unusualLessons === 'undefined') { + return originalLessons; + } + + // merge して返す + return merge(originalLessons, unusualLessons); + }); +}; + +console.log(main(2, 4)); diff --git a/src/types.ts b/src/types.ts @@ -0,0 +1,29 @@ +import type { Temporal } from '@js-temporal/polyfill'; +import type { Map } from 'immutable'; + +// 学年 +export type Grade = 1 | 2 | 3; +// クラス +export type Class = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; + +type Weekday = '月' | '火' | '水' | '木' | '金'; +type SchoolPeriod = 1 | 2 | 3 | 4 | 5 | 6 | 7; + +// 月1 から 金7 (木7 以外) +export type AbstractLessonName = Exclude<`${Weekday}${SchoolPeriod}`, '木7'>; +// 授業名 +export type ActualLessonName = string; + +export type Lesson = AbstractLessonName | ActualLessonName; + +// 1日の授業 +type DayLessons = Record<SchoolPeriod, string | null>; + +// クラスの標準時間割 +export type Standard = Readonly<Record<AbstractLessonName, string>>; + +// 曜日変更込みの時間割表 (月1, 月2,… など) または、授業名代入済みの時間割表 +export type Calendar = Map<Temporal.PlainDate, DayLessons>; + +// クラスの臨時変更 +export type Unusual = Map<Temporal.PlainDate, Partial<DayLessons>>; diff --git a/src/utils.ts b/src/utils.ts @@ -0,0 +1,29 @@ +import { readFile, writeFile } from 'node:fs/promises'; + +import type { PathLike } from 'node:fs'; +import type { AbstractLessonName } from 'types'; + +export const isAbstractLessonName = (value: string): value is AbstractLessonName => { + return /((月|火|水|金)(1|2|3|4|5|6|7)|木(1|2|3|4|5|6))/.test(value); +}; + +const csvToArray = async (path: PathLike): Promise<string[][]> => { + const csv = await readFile(path); + const arr = csv + .toString() + .trim() + .split('\n') + .map((s) => s.split(',')); + return arr; +}; + +const arrayToCsv = async (path: PathLike, arr: (string | null)[][]): Promise<void> => { + const csvString = arr.map((v) => (v ?? '').join(',')).join('\n'); + writeFile(path, csvString); +}; + +const main = async () => { + arrayToCsv('./src/data/output.csv', await csvToArray('./src/data/test.csv')); +}; + +main(); diff --git a/tsconfig.json b/tsconfig.json @@ -10,7 +10,7 @@ "strict": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, - "lib": ["ESNext"] + "lib": ["ESNext", "DOM"], }, "include": ["src/*.ts"] } diff --git a/yarn.lock b/yarn.lock @@ -21,20 +21,20 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^1.2.2": - version: 1.2.2 - resolution: "@eslint/eslintrc@npm:1.2.2" +"@eslint/eslintrc@npm:^1.2.3": + version: 1.2.3 + resolution: "@eslint/eslintrc@npm:1.2.3" dependencies: ajv: ^6.12.4 debug: ^4.3.2 - espree: ^9.3.1 + espree: ^9.3.2 globals: ^13.9.0 ignore: ^5.2.0 import-fresh: ^3.2.1 js-yaml: ^4.1.0 - minimatch: ^3.0.4 + minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: d891036bbffb0efec1462aa4a603ed6e349d546b1632dde7d474ddd15c2a8b6895671b25293f1d3ba10ff629c24a3649ad049373fe695a0e44b612537088563c + checksum: 48e7b7ac05cd514eee2ebb1d487600f0dd637ac21f63605e353cff6a08c7223275fe4f571d15ee9deae4e78c53edc73369ffcbed15fba4dfc1806179dbf4dc85 languageName: node linkType: hard @@ -56,6 +56,16 @@ __metadata: languageName: node linkType: hard +"@js-temporal/polyfill@npm:^0.4.1": + version: 0.4.1 + resolution: "@js-temporal/polyfill@npm:0.4.1" + dependencies: + jsbi: ^4.1.0 + tslib: ^2.3.1 + checksum: 0d7523918fe89353501e1d8c75ec2548f790765b55f6c9cdab5c9336025e93566adff8d9aca69b163becad51c155f9557a89cc352c5eb3e00ed037efdeede53e + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -125,13 +135,20 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^17.0.33": + version: 17.0.33 + resolution: "@types/node@npm:17.0.33" + checksum: 6620652cc89ce125e1162e060ec4608c25b3635185e3e5dcaae4ed09e4770dc8bf168ba48bcd7059a1a56087a05000d7ed562e81aea7b6a512e2b13d4409c6b6 + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:^5.17.0": - version: 5.20.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.20.0" + version: 5.23.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.23.0" dependencies: - "@typescript-eslint/scope-manager": 5.20.0 - "@typescript-eslint/type-utils": 5.20.0 - "@typescript-eslint/utils": 5.20.0 + "@typescript-eslint/scope-manager": 5.23.0 + "@typescript-eslint/type-utils": 5.23.0 + "@typescript-eslint/utils": 5.23.0 debug: ^4.3.2 functional-red-black-tree: ^1.0.1 ignore: ^5.1.8 @@ -144,42 +161,42 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 276251535b38dc5e9165c86d7f9b0a6d601cef82f02dc2a94b4133ad08d8825cb3e27bfd3b686b21b0627e05fa25c5e456c89cc3a66583b109637d1cf2d6c06a + checksum: 19ee37c0be172469968f61d156d6ce36a975ab72ccbb8f702eb4573c94d1cf9247ff32352ed85eda5e7b2eaace567d5c66b32846f042f9711349213496ec37d4 languageName: node linkType: hard "@typescript-eslint/parser@npm:^5.17.0": - version: 5.20.0 - resolution: "@typescript-eslint/parser@npm:5.20.0" + version: 5.23.0 + resolution: "@typescript-eslint/parser@npm:5.23.0" dependencies: - "@typescript-eslint/scope-manager": 5.20.0 - "@typescript-eslint/types": 5.20.0 - "@typescript-eslint/typescript-estree": 5.20.0 + "@typescript-eslint/scope-manager": 5.23.0 + "@typescript-eslint/types": 5.23.0 + "@typescript-eslint/typescript-estree": 5.23.0 debug: ^4.3.2 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 0a72c5c0fbea3ef30332a20a7fc673461a4106225d7d4b78e1d4eb3cd0343d26132deb0cdaa17fd31b90711c63978996216faf1fb9a7abdee367e3b42f812e21 + checksum: b65a732b0be06ac9e4b13df78c466517e33fd382985c5d85b6d51cfa295cdf3351594cc2f95dda41d57abb6115e3b8df815fbbb7793aa0c4eddbac11077b90a8 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.20.0": - version: 5.20.0 - resolution: "@typescript-eslint/scope-manager@npm:5.20.0" +"@typescript-eslint/scope-manager@npm:5.23.0": + version: 5.23.0 + resolution: "@typescript-eslint/scope-manager@npm:5.23.0" dependencies: - "@typescript-eslint/types": 5.20.0 - "@typescript-eslint/visitor-keys": 5.20.0 - checksum: 904fd43f559dc2579958496ffad837eca124940b4a172666f0ea54ed606074d9ec7d2bec0f2141c3f9a8b894dd2644817cb86809e79a7a73ecba2b7babcdb5c9 + "@typescript-eslint/types": 5.23.0 + "@typescript-eslint/visitor-keys": 5.23.0 + checksum: cd3dda0b18d6730e34784fc63135fc9fe31673898d3e0868cd765ad78855351f285fe577297193cf179b3ce918c3d44453de85159a925f5c02d12a5626e787d8 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.20.0": - version: 5.20.0 - resolution: "@typescript-eslint/type-utils@npm:5.20.0" +"@typescript-eslint/type-utils@npm:5.23.0": + version: 5.23.0 + resolution: "@typescript-eslint/type-utils@npm:5.23.0" dependencies: - "@typescript-eslint/utils": 5.20.0 + "@typescript-eslint/utils": 5.23.0 debug: ^4.3.2 tsutils: ^3.21.0 peerDependencies: @@ -187,23 +204,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: c9c436122b715d144edae9d36ebd34e9b02b282ada829382770e15170c58f4f27cfde2d5847ea3c4a1b70ca42e2460a204e920eea50b3d05e9d342e8836d4d12 + checksum: 88bf7c7a08c11f2a02a05fe331750c569bfc2b4759e0dea6ec72ffd1597624a01100965052a5fede1e3f25ea8ef503bd424e03c9805f0a1af223f28b4fd74946 languageName: node linkType: hard -"@typescript-eslint/types@npm:5.20.0": - version: 5.20.0 - resolution: "@typescript-eslint/types@npm:5.20.0" - checksum: d7f6e51e23f59feee8857340828c47a98a0dd5eaa1b045e936dc11199b55754cf78ae5cd8d56c1fafb1b5a40a6f472c1ac921072951217caffe3f06a717fa61c +"@typescript-eslint/types@npm:5.23.0": + version: 5.23.0 + resolution: "@typescript-eslint/types@npm:5.23.0" + checksum: 96ae3e80cfae7b34f2846db692c31fb1804bf9651bce1d29f2eb8ae4c763d22f3283adc02dedeebd7cf70e4d8be54ec7f6ca593e03cdca26c791207e7556c2c1 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.20.0": - version: 5.20.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.20.0" +"@typescript-eslint/typescript-estree@npm:5.23.0": + version: 5.23.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.23.0" dependencies: - "@typescript-eslint/types": 5.20.0 - "@typescript-eslint/visitor-keys": 5.20.0 + "@typescript-eslint/types": 5.23.0 + "@typescript-eslint/visitor-keys": 5.23.0 debug: ^4.3.2 globby: ^11.0.4 is-glob: ^4.0.3 @@ -212,37 +229,37 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 2b709292b7df3675d1f8eaf2f4e1ecf491f70fc525012c6a0fb5164aa893c165317b0a419022b8b00aaed502864d5b5b84092b58a9950d2633248e8d7627abd8 + checksum: 8d85bb1cd777e93cc7322ae8fea25f9b924def02494cdb8395c1d5d17b5fd3ac9bc969418a1d20a5dc28c2cdd85da20e13527e28b595c06ff6f84cd22a78d73f languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.20.0": - version: 5.20.0 - resolution: "@typescript-eslint/utils@npm:5.20.0" +"@typescript-eslint/utils@npm:5.23.0": + version: 5.23.0 + resolution: "@typescript-eslint/utils@npm:5.23.0" dependencies: "@types/json-schema": ^7.0.9 - "@typescript-eslint/scope-manager": 5.20.0 - "@typescript-eslint/types": 5.20.0 - "@typescript-eslint/typescript-estree": 5.20.0 + "@typescript-eslint/scope-manager": 5.23.0 + "@typescript-eslint/types": 5.23.0 + "@typescript-eslint/typescript-estree": 5.23.0 eslint-scope: ^5.1.1 eslint-utils: ^3.0.0 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: e387cf96124e34d079804220c5cb9134148fb3efc68d852a344453e285e3016e0b7e37b11308ef58c0e7afc638f145002cebc27c5da0fd03e0c074ff97d8210e + checksum: 72207399f29856b601148fe1aff07049021fad8e780ee6e896279d2291806d4608f1c28ddc5c3c5616ce94f25dcbcd26f295669e524fc1c4b4db810569c90f85 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.20.0": - version: 5.20.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.20.0" +"@typescript-eslint/visitor-keys@npm:5.23.0": + version: 5.23.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.23.0" dependencies: - "@typescript-eslint/types": 5.20.0 + "@typescript-eslint/types": 5.23.0 eslint-visitor-keys: ^3.0.0 - checksum: 1e1aa5f14fd60f1846ee26947d571953898dc82eb635a7eab3984c6b7db9bb8897743416713a129cc95c8cd63325cc0c64b3935d264f73100911fc5da76fc65f + checksum: 322e10d52a985e8a90d3612bb9d09a87dc64fc4cb1248484f1a9a7a98f65d3ef65a465ce868773a4939e35fa3b726ad609dac5a168efd7eaca4b06df33e965e3 languageName: node linkType: hard -"acorn-jsx@npm:^5.3.1": +"acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" peerDependencies: @@ -258,12 +275,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.4.1, acorn@npm:^8.7.0": - version: 8.7.0 - resolution: "acorn@npm:8.7.0" +"acorn@npm:^8.4.1, acorn@npm:^8.7.1": + version: 8.7.1 + resolution: "acorn@npm:8.7.1" bin: acorn: bin/acorn - checksum: e0f79409d68923fbf1aa6d4166f3eedc47955320d25c89a20cc822e6ba7c48c5963d5bc657bc242d68f7a4ac9faf96eef033e8f73656da6c640d4219935fdfd0 + checksum: aca0aabf98826717920ac2583fdcad0a6fbe4e583fdb6e843af2594e907455aeafe30b1e14f1757cd83ce1776773cf8296ffc3a4acf13f0bd3dfebcf1db6ae80 languageName: node linkType: hard @@ -343,15 +360,15 @@ __metadata: linkType: hard "array-includes@npm:^3.1.4": - version: 3.1.4 - resolution: "array-includes@npm:3.1.4" + version: 3.1.5 + resolution: "array-includes@npm:3.1.5" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.1 + define-properties: ^1.1.4 + es-abstract: ^1.19.5 get-intrinsic: ^1.1.1 is-string: ^1.0.7 - checksum: 69967c38c52698f84b50a7aed5554aadc89c6ac6399b6d92ad061a5952f8423b4bba054c51d40963f791dfa294d7247cdd7988b6b1f2c5861477031c6386e1c0 + checksum: f6f24d834179604656b7bec3e047251d5cc87e9e87fab7c175c61af48e80e75acd296017abcde21fb52292ab6a2a449ab2ee37213ee48c8709f004d75983f9c5 languageName: node linkType: hard @@ -562,7 +579,7 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3": +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4": version: 1.1.4 resolution: "define-properties@npm:1.1.4" dependencies: @@ -627,16 +644,18 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.1, es-abstract@npm:^1.19.2": - version: 1.19.5 - resolution: "es-abstract@npm:1.19.5" +"es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1, es-abstract@npm:^1.19.2, es-abstract@npm:^1.19.5": + version: 1.20.0 + resolution: "es-abstract@npm:1.20.0" dependencies: call-bind: ^1.0.2 es-to-primitive: ^1.2.1 function-bind: ^1.1.1 + function.prototype.name: ^1.1.5 get-intrinsic: ^1.1.1 get-symbol-description: ^1.0.0 has: ^1.0.3 + has-property-descriptors: ^1.0.0 has-symbols: ^1.0.3 internal-slot: ^1.0.3 is-callable: ^1.2.4 @@ -648,10 +667,11 @@ __metadata: object-inspect: ^1.12.0 object-keys: ^1.1.1 object.assign: ^4.1.2 - string.prototype.trimend: ^1.0.4 - string.prototype.trimstart: ^1.0.4 - unbox-primitive: ^1.0.1 - checksum: 55199b0f179a12b3b0ec9c9f2e3a27a7561686e4f88d46f9ef32c836448a336e367c14d8f792612fc83a64113896e478259e4dffbbcffb3efdd06650f6360324 + regexp.prototype.flags: ^1.4.1 + string.prototype.trimend: ^1.0.5 + string.prototype.trimstart: ^1.0.5 + unbox-primitive: ^1.0.2 + checksum: c9cc85a7aa0e3cdef740293b4b90892d6954e4e834d0888e3071cc9544bce0ae12923f5026a1970e0ac75a254d311d53e72ba4675647b81e7ca05acb703004e6 languageName: node linkType: hard @@ -820,10 +840,10 @@ __metadata: linkType: hard "eslint@npm:^8.12.0": - version: 8.14.0 - resolution: "eslint@npm:8.14.0" + version: 8.15.0 + resolution: "eslint@npm:8.15.0" dependencies: - "@eslint/eslintrc": ^1.2.2 + "@eslint/eslintrc": ^1.2.3 "@humanwhocodes/config-array": ^0.9.2 ajv: ^6.10.0 chalk: ^4.0.0 @@ -834,7 +854,7 @@ __metadata: eslint-scope: ^7.1.1 eslint-utils: ^3.0.0 eslint-visitor-keys: ^3.3.0 - espree: ^9.3.1 + espree: ^9.3.2 esquery: ^1.4.0 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 @@ -850,7 +870,7 @@ __metadata: json-stable-stringify-without-jsonify: ^1.0.1 levn: ^0.4.1 lodash.merge: ^4.6.2 - minimatch: ^3.0.4 + minimatch: ^3.1.2 natural-compare: ^1.4.0 optionator: ^0.9.1 regexpp: ^3.2.0 @@ -860,18 +880,18 @@ __metadata: v8-compile-cache: ^2.0.3 bin: eslint: bin/eslint.js - checksum: 87d2e3e5eb93216d4ab36006e7b8c0bfad02f40b0a0f193f1d42754512cd3a9d8244152f1c69df5db2e135b3c4f1c10d0ed2f0881fe8a8c01af55465968174c1 + checksum: d8896393832e154e1381a21041cfe4d12a73a76fac26ea27cabbc0e5fdac87918ad651f07f804ef6faacd3868572de3c1ec5d96edf5502bc999eff0c423638f7 languageName: node linkType: hard -"espree@npm:^9.3.1": - version: 9.3.1 - resolution: "espree@npm:9.3.1" +"espree@npm:^9.3.2": + version: 9.3.2 + resolution: "espree@npm:9.3.2" dependencies: - acorn: ^8.7.0 - acorn-jsx: ^5.3.1 + acorn: ^8.7.1 + acorn-jsx: ^5.3.2 eslint-visitor-keys: ^3.3.0 - checksum: d7161db30b65427e0799383699ac4c441533a38faee005153694b68b933ba7a24666680edfc490fa77e3a84a22dbd955768034a6f811af5049774eead83063a5 + checksum: 9a790d6779847051e87f70d720a0f6981899a722419e80c92ab6dee01e1ab83b8ce52d11b4dc96c2c490182efb5a4c138b8b0d569205bfe1cd4629e658e58c30 languageName: node linkType: hard @@ -1032,6 +1052,18 @@ __metadata: languageName: node linkType: hard +"function.prototype.name@npm:^1.1.5": + version: 1.1.5 + resolution: "function.prototype.name@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.0 + functions-have-names: ^1.2.2 + checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 + languageName: node + linkType: hard + "functional-red-black-tree@npm:^1.0.1": version: 1.0.1 resolution: "functional-red-black-tree@npm:1.0.1" @@ -1039,6 +1071,13 @@ __metadata: languageName: node linkType: hard +"functions-have-names@npm:^1.2.2": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 + languageName: node + linkType: hard + "get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1": version: 1.1.1 resolution: "get-intrinsic@npm:1.1.1" @@ -1086,25 +1125,25 @@ __metadata: linkType: hard "glob@npm:^7.1.3, glob@npm:^7.2.0": - version: 7.2.0 - resolution: "glob@npm:7.2.0" + version: 7.2.2 + resolution: "glob@npm:7.2.2" dependencies: fs.realpath: ^1.0.0 inflight: ^1.0.4 inherits: 2 - minimatch: ^3.0.4 + minimatch: ^3.1.1 once: ^1.3.0 path-is-absolute: ^1.0.0 - checksum: 78a8ea942331f08ed2e055cb5b9e40fe6f46f579d7fd3d694f3412fe5db23223d29b7fee1575440202e9a7ff9a72ab106a39fee39934c7bedafe5e5f8ae20134 + checksum: 5a5f74f39a03fb27f08ed1ed9e38334b8a53cea1c142083d670e3d313b95595aebbfc39d021f77d943b8082459436e3231e5cc928b5a2b72c4487ff08c59b0dc languageName: node linkType: hard "globals@npm:^13.6.0, globals@npm:^13.9.0": - version: 13.13.0 - resolution: "globals@npm:13.13.0" + version: 13.15.0 + resolution: "globals@npm:13.15.0" dependencies: type-fest: ^0.20.2 - checksum: c55ea8fd3afecb72567bac41605577e19e68476993dfb0ca4c49b86075af5f0ae3f0f5502525f69010f7c5ea5db6a1c540a80a4f80ebdfb2f686d87b0f05d7e9 + checksum: 383ade0873b2ab29ce6d143466c203ed960491575bc97406395e5c8434026fb02472ab2dfff5bc16689b8460269b18fda1047975295cd0183904385c51258bae languageName: node linkType: hard @@ -1193,6 +1232,13 @@ __metadata: languageName: node linkType: hard +"immutable@npm:^4.0.0": + version: 4.0.0 + resolution: "immutable@npm:4.0.0" + checksum: 4b5e9181e4d5fa06728a481835ec09c86367e5d03268666c95b522b7644ab891098022e4479a43c4c81a68f2ed82f10751ce5d33e208d7b873b6e7f9dfaf4d87 + languageName: node + linkType: hard + "import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" @@ -1413,6 +1459,13 @@ __metadata: languageName: node linkType: hard +"jsbi@npm:^4.1.0": + version: 4.3.0 + resolution: "jsbi@npm:4.3.0" + checksum: 27c4f178eb7fd9d1756144066fdebc62f4a0176e877f55e646e8ce84075c13551bd575a316b9959ccdcca9d5dc05a81c9907cfa09f0cfeb43c9777797e36b0e9 + languageName: node + linkType: hard + "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -1456,8 +1509,8 @@ __metadata: linkType: hard "lint-staged@npm:^12.3.7": - version: 12.4.0 - resolution: "lint-staged@npm:12.4.0" + version: 12.4.1 + resolution: "lint-staged@npm:12.4.1" dependencies: cli-truncate: ^3.1.0 colorette: ^2.0.16 @@ -1475,7 +1528,7 @@ __metadata: yaml: ^1.10.2 bin: lint-staged: bin/lint-staged.js - checksum: e25b273a73b79f224ff1ccb22432c34a9050fe8318b9cf7e08c748e2efc80e1f48ed4f2aa61cd16a701bb7fd6323ecf0d94a497c97732db04f2b5382d6b70131 + checksum: b57183b537064cda6caef6679918bf271903145f7c28d09567e918b8b13094048b579f8df808ea590dbd7ea2ec332327c5e372cf3d77e85b7b0254f6541ce4c3 languageName: node linkType: hard @@ -1576,7 +1629,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.4, minimatch@npm:^3.1.2": +"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -1829,6 +1882,17 @@ __metadata: languageName: node linkType: hard +"regexp.prototype.flags@npm:^1.4.1": + version: 1.4.3 + resolution: "regexp.prototype.flags@npm:1.4.3" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + functions-have-names: ^1.2.2 + checksum: 51228bae732592adb3ededd5e15426be25f289e9c4ef15212f4da73f4ec3919b6140806374b8894036a86020d054a8d2657d3fee6bb9b4d35d8939c20030b7a6 + languageName: node + linkType: hard + "regexpp@npm:^3.2.0": version: 3.2.0 resolution: "regexpp@npm:3.2.0" @@ -2035,23 +2099,25 @@ __metadata: languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.4": - version: 1.0.4 - resolution: "string.prototype.trimend@npm:1.0.4" +"string.prototype.trimend@npm:^1.0.5": + version: 1.0.5 + resolution: "string.prototype.trimend@npm:1.0.5" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.3 - checksum: 17e5aa45c3983f582693161f972c1c1fa4bbbdf22e70e582b00c91b6575f01680dc34e83005b98e31abe4d5d29e0b21fcc24690239c106c7b2315aade6a898ac + define-properties: ^1.1.4 + es-abstract: ^1.19.5 + checksum: d44f543833112f57224e79182debadc9f4f3bf9d48a0414d6f0cbd2a86f2b3e8c0ca1f95c3f8e5b32ae83e91554d79d932fc746b411895f03f93d89ed3dfb6bc languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.4": - version: 1.0.4 - resolution: "string.prototype.trimstart@npm:1.0.4" +"string.prototype.trimstart@npm:^1.0.5": + version: 1.0.5 + resolution: "string.prototype.trimstart@npm:1.0.5" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.3 - checksum: 3fb06818d3cccac5fa3f5f9873d984794ca0e9f6616fae6fcc745885d9efed4e17fe15f832515d9af5e16c279857fdbffdfc489ca4ed577811b017721b30302f + define-properties: ^1.1.4 + es-abstract: ^1.19.5 + checksum: a4857c5399ad709d159a77371eeaa8f9cc284469a0b5e1bfe405de16f1fd4166a8ea6f4180e55032f348d1b679b1599fd4301fbc7a8b72bdb3e795e43f7b1048 languageName: node linkType: hard @@ -2197,7 +2263,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.1.0": +"tslib@npm:^2.1.0, tslib@npm:^2.3.1": version: 2.4.0 resolution: "tslib@npm:2.4.0" checksum: 8c4aa6a3c5a754bf76aefc38026134180c053b7bd2f81338cb5e5ebf96fefa0f417bff221592bf801077f5bf990562f6264fecbc42cd3309b33872cb6fc3b113 @@ -2242,6 +2308,8 @@ __metadata: version: 0.0.0-use.local resolution: "typescript-template@workspace:." dependencies: + "@js-temporal/polyfill": ^0.4.1 + "@types/node": ^17.0.33 "@typescript-eslint/eslint-plugin": ^5.17.0 "@typescript-eslint/parser": ^5.17.0 eslint: ^8.12.0 @@ -2250,6 +2318,7 @@ __metadata: eslint-plugin-import: ^2.25.4 eslint-plugin-unused-imports: ^2.0.0 husky: ^7.0.4 + immutable: ^4.0.0 lint-staged: ^12.3.7 prettier: ^2.6.1 ts-node: ^10.7.0 @@ -2258,26 +2327,26 @@ __metadata: linkType: soft "typescript@npm:^4.6.3": - version: 4.6.3 - resolution: "typescript@npm:4.6.3" + version: 4.6.4 + resolution: "typescript@npm:4.6.4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 255bb26c8cb846ca689dd1c3a56587af4f69055907aa2c154796ea28ee0dea871535b1c78f85a6212c77f2657843a269c3a742d09d81495b97b914bf7920415b + checksum: e7bfcc39cd4571a63a54e5ea21f16b8445268b9900bf55aee0e02ad981be576acc140eba24f1af5e3c1457767c96cea6d12861768fb386cf3ffb34013718631a languageName: node linkType: hard "typescript@patch:typescript@^4.6.3#~builtin<compat/typescript>": - version: 4.6.3 - resolution: "typescript@patch:typescript@npm%3A4.6.3#~builtin<compat/typescript>::version=4.6.3&hash=bda367" + version: 4.6.4 + resolution: "typescript@patch:typescript@npm%3A4.6.4#~builtin<compat/typescript>::version=4.6.4&hash=bda367" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 6bf45caf847062420592e711bc9c28bf5f9a9a7fa8245343b81493e4ededae33f1774009d1234d911422d1646a2c839f44e1a23ecb111b40a60ac2ea4c1482a8 + checksum: 1cb434fbc637d347be90e3a0c6cd05e33c38f941713c8786d3031faf1842c2c148ba91d2fac01e7276b0ae3249b8633f1660e32686cc7a8c6a8fd5361dc52c66 languageName: node linkType: hard -"unbox-primitive@npm:^1.0.1": +"unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" dependencies: