commit 11dc017d657d2fde0ab9e887b02f3535fc207d02
parent d2d1c1bfb6159806f3f7afba1e314c18fa4d571c
Author: Yuukin256 <Yuukin256@gmail.com>
Date: Wed, 1 Jun 2022 23:48:23 +0900
テストデータを挿入して実装
Diffstat:
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: