tja-parser 0.1.0 → 0.1.1
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.
- package/dist/class/Bar.d.ts +25 -0
- package/dist/class/Bar.d.ts.map +1 -0
- package/dist/class/Bar.js +96 -0
- package/dist/class/Bar.js.map +1 -0
- package/dist/class/BarLine.d.ts +14 -0
- package/dist/class/BarLine.d.ts.map +1 -0
- package/dist/class/BarLine.js +26 -0
- package/dist/class/BarLine.js.map +1 -0
- package/dist/class/Branch.d.ts +27 -0
- package/dist/class/Branch.d.ts.map +1 -0
- package/dist/class/Branch.js +38 -0
- package/dist/class/Branch.js.map +1 -0
- package/dist/class/Command.d.ts +65 -0
- package/dist/class/Command.d.ts.map +1 -0
- package/dist/class/Command.js +172 -0
- package/dist/class/Command.js.map +1 -0
- package/dist/class/Course.d.ts +47 -0
- package/dist/class/Course.d.ts.map +1 -0
- package/dist/class/Course.js +396 -0
- package/dist/class/Course.js.map +1 -0
- package/dist/class/Item.d.ts +12 -0
- package/dist/class/Item.d.ts.map +1 -0
- package/dist/class/Item.js +59 -0
- package/dist/class/Item.js.map +1 -0
- package/dist/class/Note.d.ts +88 -0
- package/dist/class/Note.d.ts.map +1 -0
- package/dist/class/Note.js +188 -0
- package/dist/class/Note.js.map +1 -0
- package/dist/class/Song.d.ts +31 -0
- package/dist/class/Song.d.ts.map +1 -0
- package/dist/class/Song.js +72 -0
- package/dist/class/Song.js.map +1 -0
- package/dist/exception/ParseException.d.ts +12 -0
- package/dist/exception/ParseException.d.ts.map +1 -0
- package/dist/exception/ParseException.js +26 -0
- package/dist/exception/ParseException.js.map +1 -0
- package/dist/exception/TjaException.d.ts +3 -0
- package/dist/exception/TjaException.d.ts.map +1 -0
- package/dist/exception/TjaException.js +8 -0
- package/dist/exception/TjaException.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.RollEndNote = exports.EmptyNote = exports.BalloonNote = exports.RollNote = exports.HitNote = exports.Note = void 0;
|
|
37
|
+
const Item_js_1 = require("./Item.js");
|
|
38
|
+
const math = __importStar(require("mathjs"));
|
|
39
|
+
class Note extends Item_js_1.Item {
|
|
40
|
+
static parse(char) {
|
|
41
|
+
if (char === "0") {
|
|
42
|
+
return new EmptyNote(Note.Type.EMPTY, math.fraction(0), math.fraction(0));
|
|
43
|
+
}
|
|
44
|
+
else if (char === "1") {
|
|
45
|
+
return new HitNote(Note.Type.DON_SMALL, math.fraction(0), math.fraction(0));
|
|
46
|
+
}
|
|
47
|
+
else if (char === "2") {
|
|
48
|
+
return new HitNote(Note.Type.KA_SMALL, math.fraction(0), math.fraction(0));
|
|
49
|
+
}
|
|
50
|
+
else if (char === "3") {
|
|
51
|
+
return new HitNote(Note.Type.DON_BIG, math.fraction(0), math.fraction(0));
|
|
52
|
+
}
|
|
53
|
+
else if (char === "4") {
|
|
54
|
+
return new HitNote(Note.Type.KA_BIG, math.fraction(0), math.fraction(0));
|
|
55
|
+
}
|
|
56
|
+
else if (char === "5") {
|
|
57
|
+
return new RollNote(Note.Type.ROLL_SMALL, math.fraction(0), math.fraction(0), math.fraction(0));
|
|
58
|
+
}
|
|
59
|
+
else if (char === "6") {
|
|
60
|
+
return new RollNote(Note.Type.ROLL_BIG, math.fraction(0), math.fraction(0), math.fraction(0));
|
|
61
|
+
}
|
|
62
|
+
else if (char === "7") {
|
|
63
|
+
return new BalloonNote(0, math.fraction(0), math.fraction(0), math.fraction(0));
|
|
64
|
+
}
|
|
65
|
+
else if (char === "8") {
|
|
66
|
+
return new RollEndNote(math.fraction(0), math.fraction(0));
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
type;
|
|
71
|
+
delay;
|
|
72
|
+
scroll = 1;
|
|
73
|
+
bpm = 160;
|
|
74
|
+
noteLength = 1;
|
|
75
|
+
constructor(type, timing, delay) {
|
|
76
|
+
super(timing);
|
|
77
|
+
this.type = type;
|
|
78
|
+
this.delay = delay;
|
|
79
|
+
}
|
|
80
|
+
getScroll() {
|
|
81
|
+
return this.scroll;
|
|
82
|
+
}
|
|
83
|
+
setScroll(scroll) {
|
|
84
|
+
this.scroll = scroll;
|
|
85
|
+
}
|
|
86
|
+
getBPM() {
|
|
87
|
+
return this.bpm;
|
|
88
|
+
}
|
|
89
|
+
setBpm(bpm) {
|
|
90
|
+
this.bpm = bpm;
|
|
91
|
+
}
|
|
92
|
+
getDelay() {
|
|
93
|
+
return math.fraction(this.delay);
|
|
94
|
+
}
|
|
95
|
+
setDelay(delay) {
|
|
96
|
+
this.delay = math.fraction(delay);
|
|
97
|
+
}
|
|
98
|
+
getNoteLength() {
|
|
99
|
+
return this.noteLength;
|
|
100
|
+
}
|
|
101
|
+
setNoteLength(noteLength) {
|
|
102
|
+
this.noteLength = noteLength;
|
|
103
|
+
}
|
|
104
|
+
toJSON() {
|
|
105
|
+
return {
|
|
106
|
+
...super.toJSON(),
|
|
107
|
+
type: this.type,
|
|
108
|
+
delay: this.delay.valueOf(),
|
|
109
|
+
scroll: this.scroll,
|
|
110
|
+
bpm: this.bpm,
|
|
111
|
+
noteLength: this.noteLength
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.Note = Note;
|
|
116
|
+
(function (Note) {
|
|
117
|
+
let Type;
|
|
118
|
+
(function (Type) {
|
|
119
|
+
Type[Type["EMPTY"] = 0] = "EMPTY";
|
|
120
|
+
Type[Type["DON_SMALL"] = 1] = "DON_SMALL";
|
|
121
|
+
Type[Type["KA_SMALL"] = 2] = "KA_SMALL";
|
|
122
|
+
Type[Type["DON_BIG"] = 3] = "DON_BIG";
|
|
123
|
+
Type[Type["KA_BIG"] = 4] = "KA_BIG";
|
|
124
|
+
Type[Type["ROLL_SMALL"] = 5] = "ROLL_SMALL";
|
|
125
|
+
Type[Type["ROLL_BIG"] = 6] = "ROLL_BIG";
|
|
126
|
+
Type[Type["BALLOON"] = 7] = "BALLOON";
|
|
127
|
+
Type[Type["ROLL_END"] = 8] = "ROLL_END";
|
|
128
|
+
})(Type = Note.Type || (Note.Type = {}));
|
|
129
|
+
})(Note || (exports.Note = Note = {}));
|
|
130
|
+
class HitNote extends Note {
|
|
131
|
+
constructor(type, timing, delay) {
|
|
132
|
+
super(type, timing, delay);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.HitNote = HitNote;
|
|
136
|
+
class RollNote extends Note {
|
|
137
|
+
end;
|
|
138
|
+
constructor(type, timing, end, delay) {
|
|
139
|
+
super(type, timing, delay);
|
|
140
|
+
this.end = end;
|
|
141
|
+
}
|
|
142
|
+
getEnd() {
|
|
143
|
+
return math.fraction(this.end);
|
|
144
|
+
}
|
|
145
|
+
setEnd(end) {
|
|
146
|
+
this.end = math.fraction(end);
|
|
147
|
+
}
|
|
148
|
+
toJSON() {
|
|
149
|
+
return {
|
|
150
|
+
...super.toJSON(),
|
|
151
|
+
end: this.end.valueOf()
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
exports.RollNote = RollNote;
|
|
156
|
+
class BalloonNote extends RollNote {
|
|
157
|
+
count;
|
|
158
|
+
constructor(count, timing, end, delay) {
|
|
159
|
+
super(Note.Type.BALLOON, timing, end, delay);
|
|
160
|
+
this.count = count;
|
|
161
|
+
}
|
|
162
|
+
getCount() {
|
|
163
|
+
return this.count;
|
|
164
|
+
}
|
|
165
|
+
setCount(count) {
|
|
166
|
+
this.count = count;
|
|
167
|
+
}
|
|
168
|
+
toJSON() {
|
|
169
|
+
return {
|
|
170
|
+
...super.toJSON(),
|
|
171
|
+
count: this.count
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
exports.BalloonNote = BalloonNote;
|
|
176
|
+
class EmptyNote extends Note {
|
|
177
|
+
constructor(type, timing, delay) {
|
|
178
|
+
super(type, timing, delay);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
exports.EmptyNote = EmptyNote;
|
|
182
|
+
class RollEndNote extends Note {
|
|
183
|
+
constructor(timing, delay) {
|
|
184
|
+
super(Note.Type.ROLL_END, timing, delay);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
exports.RollEndNote = RollEndNote;
|
|
188
|
+
//# sourceMappingURL=Note.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Note.js","sourceRoot":"","sources":["../../src/class/Note.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Course } from './Course.js';
|
|
2
|
+
import type { Difficulty } from '../types.js';
|
|
3
|
+
export declare class Song {
|
|
4
|
+
static parse(tja: string): Song;
|
|
5
|
+
static parseMetadata(line: string): {
|
|
6
|
+
key: string;
|
|
7
|
+
value: string;
|
|
8
|
+
};
|
|
9
|
+
metadata: Song.Metadata;
|
|
10
|
+
course: Partial<Record<Difficulty, Course>>;
|
|
11
|
+
constructor(metadata: Song.Metadata);
|
|
12
|
+
getBPM(): number;
|
|
13
|
+
toJSON(): {
|
|
14
|
+
metadata: Song.Metadata;
|
|
15
|
+
course: Partial<Record<Difficulty, Course>>;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export declare namespace Song {
|
|
19
|
+
class Metadata {
|
|
20
|
+
title?: string;
|
|
21
|
+
subtitle?: string;
|
|
22
|
+
bpm?: number;
|
|
23
|
+
offset?: number;
|
|
24
|
+
wave?: string;
|
|
25
|
+
songvol?: number;
|
|
26
|
+
sevol?: number;
|
|
27
|
+
demostart?: number;
|
|
28
|
+
[key: string]: string | number | undefined;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=Song.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Song.d.ts","sourceRoot":"","sources":["../../src/class/Song.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,qBAAa,IAAI;IAIb,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA+B/B,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAalE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAM;gBAErC,QAAQ,EAAE,IAAI,CAAC,QAAQ;IAQnC,MAAM;IAIN,MAAM;;;;CAMT;AAED,yBAAiB,IAAI,CAAC;IAClB,MAAa,QAAQ;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KAC9C;CACJ"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Song = void 0;
|
|
4
|
+
const Course_js_1 = require("./Course.js");
|
|
5
|
+
const ParseException_js_1 = require("../exception/ParseException.js");
|
|
6
|
+
class Song {
|
|
7
|
+
static parse(tja) {
|
|
8
|
+
const lines = tja.split('\n').map((e) => e.trim()).filter((e) => e);
|
|
9
|
+
const metadata = new this.Metadata();
|
|
10
|
+
const song = new Song(metadata);
|
|
11
|
+
let i = 0;
|
|
12
|
+
for (; i < lines.length; i++) {
|
|
13
|
+
if (lines[i].startsWith('COURSE')) {
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
const parsedMetadata = this.parseMetadata(lines[i]);
|
|
17
|
+
metadata[parsedMetadata.key] = parsedMetadata.value;
|
|
18
|
+
}
|
|
19
|
+
let courseTja = [];
|
|
20
|
+
for (; i < lines.length; i++) {
|
|
21
|
+
courseTja.push(lines[i]);
|
|
22
|
+
if (lines[i].startsWith('#END')) {
|
|
23
|
+
const course = Course_js_1.Course.parse(courseTja, song);
|
|
24
|
+
song.course[course.difficulty] = course;
|
|
25
|
+
courseTja = [];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
;
|
|
29
|
+
return song;
|
|
30
|
+
}
|
|
31
|
+
static parseMetadata(line) {
|
|
32
|
+
const colonIndex = line.indexOf(':');
|
|
33
|
+
if (colonIndex < 0) {
|
|
34
|
+
throw new ParseException_js_1.MetadataParseException(line);
|
|
35
|
+
}
|
|
36
|
+
const key = line.slice(0, colonIndex).toLowerCase();
|
|
37
|
+
const value = line.slice(colonIndex + 1);
|
|
38
|
+
return {
|
|
39
|
+
key: key.trim(),
|
|
40
|
+
value: value.trim()
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
metadata;
|
|
44
|
+
course = {};
|
|
45
|
+
constructor(metadata) {
|
|
46
|
+
this.metadata = metadata;
|
|
47
|
+
}
|
|
48
|
+
getBPM() {
|
|
49
|
+
return Number(this.metadata.bpm) || 160;
|
|
50
|
+
}
|
|
51
|
+
toJSON() {
|
|
52
|
+
return {
|
|
53
|
+
metadata: this.metadata,
|
|
54
|
+
course: this.course
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.Song = Song;
|
|
59
|
+
(function (Song) {
|
|
60
|
+
class Metadata {
|
|
61
|
+
title;
|
|
62
|
+
subtitle;
|
|
63
|
+
bpm;
|
|
64
|
+
offset;
|
|
65
|
+
wave;
|
|
66
|
+
songvol;
|
|
67
|
+
sevol;
|
|
68
|
+
demostart;
|
|
69
|
+
}
|
|
70
|
+
Song.Metadata = Metadata;
|
|
71
|
+
})(Song || (exports.Song = Song = {}));
|
|
72
|
+
//# sourceMappingURL=Song.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Song.js","sourceRoot":"","sources":["../../src/class/Song.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TjaException } from './TjaException.js';
|
|
2
|
+
export declare class ParseException extends TjaException {
|
|
3
|
+
line?: string;
|
|
4
|
+
constructor(line?: string);
|
|
5
|
+
}
|
|
6
|
+
export declare class MetadataParseException extends ParseException {
|
|
7
|
+
}
|
|
8
|
+
export declare class CourseParseException extends ParseException {
|
|
9
|
+
}
|
|
10
|
+
export declare class UnknownCourseDifficultyException extends CourseParseException {
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ParseException.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParseException.d.ts","sourceRoot":"","sources":["../../src/exception/ParseException.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,qBAAa,cAAe,SAAQ,YAAY;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEF,IAAI,CAAC,EAAE,MAAM;CAI5B;AACD,qBAAa,sBAAuB,SAAQ,cAAc;CAAI;AAC9D,qBAAa,oBAAqB,SAAQ,cAAc;CAAI;AAC5D,qBAAa,gCAAiC,SAAQ,oBAAoB;CAAI"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnknownCourseDifficultyException = exports.CourseParseException = exports.MetadataParseException = exports.ParseException = void 0;
|
|
4
|
+
const TjaException_js_1 = require("./TjaException.js");
|
|
5
|
+
class ParseException extends TjaException_js_1.TjaException {
|
|
6
|
+
line;
|
|
7
|
+
constructor(line) {
|
|
8
|
+
super();
|
|
9
|
+
this.line = line;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.ParseException = ParseException;
|
|
13
|
+
;
|
|
14
|
+
class MetadataParseException extends ParseException {
|
|
15
|
+
}
|
|
16
|
+
exports.MetadataParseException = MetadataParseException;
|
|
17
|
+
;
|
|
18
|
+
class CourseParseException extends ParseException {
|
|
19
|
+
}
|
|
20
|
+
exports.CourseParseException = CourseParseException;
|
|
21
|
+
;
|
|
22
|
+
class UnknownCourseDifficultyException extends CourseParseException {
|
|
23
|
+
}
|
|
24
|
+
exports.UnknownCourseDifficultyException = UnknownCourseDifficultyException;
|
|
25
|
+
;
|
|
26
|
+
//# sourceMappingURL=ParseException.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParseException.js","sourceRoot":"","sources":["../../src/exception/ParseException.ts"],"names":[],"mappings":";;;AAAA,uDAAiD;AAEjD,MAAa,cAAe,SAAQ,8BAAY;IAC5C,IAAI,CAAU;IAEd,YAAY,IAAa;QACrB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AAPD,wCAOC;AAAA,CAAC;AACF,MAAa,sBAAuB,SAAQ,cAAc;CAAI;AAA9D,wDAA8D;AAAA,CAAC;AAC/D,MAAa,oBAAqB,SAAQ,cAAc;CAAI;AAA5D,oDAA4D;AAAA,CAAC;AAC7D,MAAa,gCAAiC,SAAQ,oBAAoB;CAAI;AAA9E,4EAA8E;AAAA,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TjaException.d.ts","sourceRoot":"","sources":["../../src/exception/TjaException.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;CAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TjaException.js","sourceRoot":"","sources":["../../src/exception/TjaException.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAY;CAAE;AAA3B,oCAA2B;AAAA,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,mBAAmB,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./class/Song.js"), exports);
|
|
18
|
+
__exportStar(require("./class/Course.js"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,oDAAkC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED