make-mp-data 2.0.1 → 2.0.12
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/dungeons/adspend.js +96 -0
- package/dungeons/anon.js +104 -0
- package/dungeons/big.js +224 -0
- package/dungeons/business.js +327 -0
- package/dungeons/complex.js +396 -0
- package/dungeons/experiments.js +124 -0
- package/dungeons/foobar.js +241 -0
- package/dungeons/funnels.js +272 -0
- package/dungeons/gaming.js +315 -0
- package/dungeons/mirror.js +129 -0
- package/dungeons/sanity.js +118 -0
- package/dungeons/scd.js +205 -0
- package/dungeons/simple.js +150 -0
- package/dungeons/userAgent.js +190 -0
- package/index.js +5 -1
- package/package.json +10 -1
- package/.claude/settings.local.json +0 -21
- package/.gcloudignore +0 -18
- package/.gitattributes +0 -2
- package/.prettierrc +0 -0
- package/.vscode/launch.json +0 -80
- package/.vscode/settings.json +0 -69
- package/.vscode/tasks.json +0 -12
- package/dungeons/customers/.gitkeep +0 -0
- package/env.yaml +0 -1
- package/scratch.mjs +0 -62
- package/scripts/dana.mjs +0 -137
- package/scripts/deploy.sh +0 -15
- package/scripts/jsdoctest.js +0 -5
- package/scripts/new-dungeon.sh +0 -98
- package/scripts/new-project.mjs +0 -14
- package/scripts/run-index.sh +0 -2
- package/scripts/update-deps.sh +0 -5
- package/tests/benchmark/concurrency.mjs +0 -52
- package/tests/cli.test.js +0 -124
- package/tests/coverage/.gitkeep +0 -0
- package/tests/e2e.test.js +0 -379
- package/tests/int.test.js +0 -715
- package/tests/testCases.mjs +0 -229
- package/tests/testSoup.mjs +0 -28
- package/tests/unit.test.js +0 -910
- package/tmp/.gitkeep +0 -0
- package/tsconfig.json +0 -18
- package/vitest.config.js +0 -47
package/dungeons/scd.js
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is the default configuration file for the data generator in SIMPLE mode
|
|
3
|
+
* notice how the config object is structured, and see it's type definition in ./types.d.ts
|
|
4
|
+
* feel free to modify this file to customize the data you generate
|
|
5
|
+
* see helper functions in utils.js for more ways to generate data
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
import Chance from 'chance';
|
|
12
|
+
const chance = new Chance();
|
|
13
|
+
import dayjs from "dayjs";
|
|
14
|
+
import utc from "dayjs/plugin/utc.js";
|
|
15
|
+
dayjs.extend(utc);
|
|
16
|
+
import { uid, comma } from 'ak-tools';
|
|
17
|
+
import { pickAWinner, weighNumRange, date, integer, weighChoices } from '../lib/utils/utils.js';
|
|
18
|
+
|
|
19
|
+
const itemCategories = ["Books", "Movies", "Music", "Games", "Electronics", "Computers", "Smart Home", "Home", "Garden", "Pet", "Beauty", "Health", "Toys", "Kids", "Baby", "Handmade", "Sports", "Outdoors", "Automotive", "Industrial", "Entertainment", "Art", "Food", "Appliances", "Office", "Wedding", "Software"];
|
|
20
|
+
|
|
21
|
+
const videoCategories = ["funny", "educational", "inspirational", "music", "news", "sports", "cooking", "DIY", "travel", "gaming"];
|
|
22
|
+
|
|
23
|
+
/** @type {import('../types').Dungeon} */
|
|
24
|
+
const config = {
|
|
25
|
+
token: "",
|
|
26
|
+
seed: "simple is best",
|
|
27
|
+
numDays: 30, //how many days worth1 of data
|
|
28
|
+
numEvents: 50000, //how many events
|
|
29
|
+
numUsers: 500, //how many users
|
|
30
|
+
format: 'csv', //csv or json
|
|
31
|
+
region: "US",
|
|
32
|
+
hasAnonIds: false, //if true, anonymousIds are created for each user
|
|
33
|
+
hasSessionIds: false, //if true, hasSessionIds are created for each user
|
|
34
|
+
hasAdSpend: false,
|
|
35
|
+
makeChart: false,
|
|
36
|
+
hasLocation: true,
|
|
37
|
+
hasAndroidDevices: true,
|
|
38
|
+
hasIOSDevices: true,
|
|
39
|
+
hasDesktopDevices: true,
|
|
40
|
+
hasBrowser: true,
|
|
41
|
+
hasCampaigns: true,
|
|
42
|
+
isAnonymous: false,
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
events: [
|
|
46
|
+
{
|
|
47
|
+
event: "checkout",
|
|
48
|
+
weight: 2,
|
|
49
|
+
properties: {
|
|
50
|
+
amount: weighNumRange(5, 500, .25),
|
|
51
|
+
currency: pickAWinner(["USD", "CAD", "EUR", "BTC", "ETH", "JPY"], 0),
|
|
52
|
+
coupon: weighChoices(["none", "none", "none", "none", "10%OFF", "20%OFF", "10%OFF", "20%OFF", "30%OFF", "40%OFF", "50%OFF"]),
|
|
53
|
+
numItems: weighNumRange(1, 10),
|
|
54
|
+
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
event: "add to cart",
|
|
59
|
+
weight: 4,
|
|
60
|
+
properties: {
|
|
61
|
+
amount: weighNumRange(5, 500, .25),
|
|
62
|
+
rating: weighNumRange(1, 5),
|
|
63
|
+
reviews: weighNumRange(0, 35),
|
|
64
|
+
isFeaturedItem: [true, false, false],
|
|
65
|
+
itemCategory: pickAWinner(itemCategories, integer(0, 27)),
|
|
66
|
+
dateItemListed: date(30, true, 'YYYY-MM-DD'),
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
event: "page view",
|
|
71
|
+
weight: 10,
|
|
72
|
+
properties: {
|
|
73
|
+
page: pickAWinner(["/", "/", "/help", "/account", "/watch", "/listen", "/product", "/people", "/peace"]),
|
|
74
|
+
utm_source: pickAWinner(["$organic", "$organic", "$organic", "$organic", "google", "google", "google", "facebook", "facebook", "twitter", "linkedin"]),
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
event: "watch video",
|
|
79
|
+
weight: 8,
|
|
80
|
+
properties: {
|
|
81
|
+
videoCategory: pickAWinner(videoCategories, integer(0, 9)),
|
|
82
|
+
isFeaturedItem: [true, false, false],
|
|
83
|
+
watchTimeSec: weighNumRange(10, 600, .25),
|
|
84
|
+
quality: ["2160p", "1440p", "1080p", "720p", "480p", "360p", "240p"],
|
|
85
|
+
format: ["mp4", "avi", "mov", "mpg"],
|
|
86
|
+
uploader_id: chance.guid.bind(chance)
|
|
87
|
+
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
event: "view item",
|
|
92
|
+
weight: 8,
|
|
93
|
+
properties: {
|
|
94
|
+
isFeaturedItem: [true, false, false],
|
|
95
|
+
itemCategory: pickAWinner(itemCategories, integer(0, 27)),
|
|
96
|
+
dateItemListed: date(30, true, 'YYYY-MM-DD'),
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
event: "save item",
|
|
101
|
+
weight: 5,
|
|
102
|
+
properties: {
|
|
103
|
+
isFeaturedItem: [true, false, false],
|
|
104
|
+
itemCategory: pickAWinner(itemCategories, integer(0, 27)),
|
|
105
|
+
dateItemListed: date(30, true, 'YYYY-MM-DD'),
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
event: "sign up",
|
|
110
|
+
isFirstEvent: true,
|
|
111
|
+
weight: 0,
|
|
112
|
+
properties: {
|
|
113
|
+
variants: ["A", "B", "C", "Control"],
|
|
114
|
+
flows: ["new", "existing", "loyal", "churned"],
|
|
115
|
+
flags: ["on", "off"],
|
|
116
|
+
experiment_ids: ["1234", "5678", "9012", "3456", "7890"],
|
|
117
|
+
multiVariate: [true, false]
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
],
|
|
121
|
+
superProps: {
|
|
122
|
+
platform: ["web", "mobile", "web", "mobile", "web", "web", "kiosk", "smartTV"],
|
|
123
|
+
currentTheme: weighChoices(["light", "dark", "custom", "light", "dark"]),
|
|
124
|
+
},
|
|
125
|
+
/*
|
|
126
|
+
user properties work the same as event properties
|
|
127
|
+
each key should be an array or function reference
|
|
128
|
+
*/
|
|
129
|
+
userProps: {
|
|
130
|
+
title: chance.profession.bind(chance),
|
|
131
|
+
luckyNumber: weighNumRange(42, 420, .3),
|
|
132
|
+
spiritAnimal: pickAWinner(["duck", "dog", "otter", "penguin", "cat", "elephant", "lion", "cheetah", "giraffe", "zebra", "rhino", "hippo", "whale", "dolphin", "shark", "octopus", "squid", "jellyfish", "starfish", "seahorse", "crab", "lobster", "shrimp", "clam", "snail", "slug", "butterfly", "moth", "bee", "wasp", "ant", "beetle", "ladybug", "caterpillar", "centipede", "millipede", "scorpion", "spider", "tarantula", "tick", "mite", "mosquito", "fly", "dragonfly", "damselfly", "grasshopper", "cricket", "locust", "mantis", "cockroach", "termite", "praying mantis", "walking stick", "stick bug", "leaf insect", "lacewing", "aphid", "cicada", "thrips", "psyllid", "scale insect", "whitefly", "mealybug", "planthopper", "leafhopper", "treehopper", "flea", "louse", "bedbug", "flea beetle", "weevil", "longhorn beetle", "leaf beetle", "tiger beetle", "ground beetle", "lady beetle", "firefly", "click beetle", "rove beetle", "scarab beetle", "dung beetle", "stag beetle", "rhinoceros beetle", "hercules beetle", "goliath beetle", "jewel beetle", "tortoise beetle"])
|
|
133
|
+
},
|
|
134
|
+
scdProps: {
|
|
135
|
+
role: {
|
|
136
|
+
type: "user",
|
|
137
|
+
frequency: "week",
|
|
138
|
+
values: ["admin", "collaborator", "user", "view only", "no access"],
|
|
139
|
+
timing: 'fuzzy',
|
|
140
|
+
max: 10
|
|
141
|
+
},
|
|
142
|
+
NPS: {
|
|
143
|
+
type: "user",
|
|
144
|
+
frequency: "day",
|
|
145
|
+
values: weighNumRange(1, 10, 2, 150),
|
|
146
|
+
timing: 'fuzzy',
|
|
147
|
+
max: 10
|
|
148
|
+
},
|
|
149
|
+
MRR: {
|
|
150
|
+
type: "company_id",
|
|
151
|
+
frequency: "month",
|
|
152
|
+
values: weighNumRange(0, 10000, .15),
|
|
153
|
+
timing: 'fixed',
|
|
154
|
+
max: 10
|
|
155
|
+
},
|
|
156
|
+
AccountHealthScore: {
|
|
157
|
+
type: "company_id",
|
|
158
|
+
frequency: "week",
|
|
159
|
+
values: weighNumRange(1, 10, .15),
|
|
160
|
+
timing: 'fixed',
|
|
161
|
+
max: 40
|
|
162
|
+
},
|
|
163
|
+
plan: {
|
|
164
|
+
type: "company_id",
|
|
165
|
+
frequency: "month",
|
|
166
|
+
values: ["free", "basic", "premium", "enterprise"],
|
|
167
|
+
timing: 'fixed',
|
|
168
|
+
max: 10
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
groupKeys: [["company_id", 1_000]],
|
|
172
|
+
groupProps: {
|
|
173
|
+
company_id: {
|
|
174
|
+
name: () => { return chance.name(); },
|
|
175
|
+
email: () => { return `CSM: ${chance.pickone(["AK", "Neha", "Rajiv", "Deepak", "Justin", "Hans", "Katie", "Somya", "Tony", "Kaan"])}`; },
|
|
176
|
+
industry: pickAWinner([
|
|
177
|
+
"technology",
|
|
178
|
+
"education",
|
|
179
|
+
"finance",
|
|
180
|
+
"healthcare",
|
|
181
|
+
"retail",
|
|
182
|
+
"manufacturing",
|
|
183
|
+
"transportation",
|
|
184
|
+
"entertainment",
|
|
185
|
+
"media",
|
|
186
|
+
"real estate",
|
|
187
|
+
"construction",
|
|
188
|
+
"hospitality",
|
|
189
|
+
"energy",
|
|
190
|
+
"utilities",
|
|
191
|
+
"agriculture",
|
|
192
|
+
"other",
|
|
193
|
+
]),
|
|
194
|
+
segment: ["SMB", "SMB", "SMB", "Mid Market", "Mid Market", "Enterprise"],
|
|
195
|
+
"# active users": chance.integer({ min: 2, max: 20 })
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
hook: function (record, type, meta) {
|
|
199
|
+
return record;
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
export default config;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is the default configuration file for the data generator in SIMPLE mode
|
|
3
|
+
* notice how the config object is structured, and see it's type definition in ./types.d.ts
|
|
4
|
+
* feel free to modify this file to customize the data you generate
|
|
5
|
+
* see helper functions in utils.js for more ways to generate data
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
import Chance from 'chance';
|
|
12
|
+
const chance = new Chance();
|
|
13
|
+
import dayjs from "dayjs";
|
|
14
|
+
import utc from "dayjs/plugin/utc.js";
|
|
15
|
+
dayjs.extend(utc);
|
|
16
|
+
import { uid, comma } from 'ak-tools';
|
|
17
|
+
import { pickAWinner, weighNumRange, date, integer, weighChoices } from '../lib/utils/utils.js';
|
|
18
|
+
|
|
19
|
+
const itemCategories = ["Books", "Movies", "Music", "Games", "Electronics", "Computers", "Smart Home", "Home", "Garden", "Pet", "Beauty", "Health", "Toys", "Kids", "Baby", "Handmade", "Sports", "Outdoors", "Automotive", "Industrial", "Entertainment", "Art", "Food", "Appliances", "Office", "Wedding", "Software"];
|
|
20
|
+
|
|
21
|
+
const videoCategories = ["funny", "educational", "inspirational", "music", "news", "sports", "cooking", "DIY", "travel", "gaming"];
|
|
22
|
+
|
|
23
|
+
/** @type {import('../types').Dungeon} */
|
|
24
|
+
const config = {
|
|
25
|
+
token: "",
|
|
26
|
+
seed: "simple is best",
|
|
27
|
+
numDays: 30, //how many days worth1 of data
|
|
28
|
+
numEvents: 50000, //how many events
|
|
29
|
+
numUsers: 500, //how many users
|
|
30
|
+
format: 'csv', //csv or json
|
|
31
|
+
region: "US",
|
|
32
|
+
hasAnonIds: false, //if true, anonymousIds are created for each user
|
|
33
|
+
hasSessionIds: false, //if true, hasSessionIds are created for each user
|
|
34
|
+
hasAdSpend: false,
|
|
35
|
+
makeChart: false,
|
|
36
|
+
hasLocation: true,
|
|
37
|
+
hasAndroidDevices: true,
|
|
38
|
+
hasIOSDevices: true,
|
|
39
|
+
hasDesktopDevices: true,
|
|
40
|
+
hasBrowser: true,
|
|
41
|
+
hasCampaigns: true,
|
|
42
|
+
isAnonymous: false,
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
events: [
|
|
46
|
+
{
|
|
47
|
+
event: "checkout",
|
|
48
|
+
weight: 2,
|
|
49
|
+
properties: {
|
|
50
|
+
amount: weighNumRange(5, 500, .25),
|
|
51
|
+
currency: pickAWinner(["USD", "CAD", "EUR", "BTC", "ETH", "JPY"], 0),
|
|
52
|
+
coupon: weighChoices(["none", "none", "none", "none", "10%OFF", "20%OFF", "10%OFF", "20%OFF", "30%OFF", "40%OFF", "50%OFF"]),
|
|
53
|
+
numItems: weighNumRange(1, 10),
|
|
54
|
+
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
event: "add to cart",
|
|
59
|
+
weight: 4,
|
|
60
|
+
properties: {
|
|
61
|
+
amount: weighNumRange(5, 500, .25),
|
|
62
|
+
rating: weighNumRange(1, 5),
|
|
63
|
+
reviews: weighNumRange(0, 35),
|
|
64
|
+
isFeaturedItem: [true, false, false],
|
|
65
|
+
itemCategory: pickAWinner(itemCategories, integer(0, 27)),
|
|
66
|
+
dateItemListed: date(30, true, 'YYYY-MM-DD'),
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
event: "page view",
|
|
71
|
+
weight: 10,
|
|
72
|
+
properties: {
|
|
73
|
+
page: pickAWinner(["/", "/", "/help", "/account", "/watch", "/listen", "/product", "/people", "/peace"]),
|
|
74
|
+
utm_source: pickAWinner(["$organic", "$organic", "$organic", "$organic", "google", "google", "google", "facebook", "facebook", "twitter", "linkedin"]),
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
event: "watch video",
|
|
79
|
+
weight: 8,
|
|
80
|
+
properties: {
|
|
81
|
+
videoCategory: pickAWinner(videoCategories, integer(0, 9)),
|
|
82
|
+
isFeaturedItem: [true, false, false],
|
|
83
|
+
watchTimeSec: weighNumRange(10, 600, .25),
|
|
84
|
+
quality: ["2160p", "1440p", "1080p", "720p", "480p", "360p", "240p"],
|
|
85
|
+
format: ["mp4", "avi", "mov", "mpg"],
|
|
86
|
+
uploader_id: chance.guid.bind(chance)
|
|
87
|
+
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
event: "view item",
|
|
92
|
+
weight: 8,
|
|
93
|
+
properties: {
|
|
94
|
+
isFeaturedItem: [true, false, false],
|
|
95
|
+
itemCategory: pickAWinner(itemCategories, integer(0, 27)),
|
|
96
|
+
dateItemListed: date(30, true, 'YYYY-MM-DD'),
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
event: "save item",
|
|
101
|
+
weight: 5,
|
|
102
|
+
properties: {
|
|
103
|
+
isFeaturedItem: [true, false, false],
|
|
104
|
+
itemCategory: pickAWinner(itemCategories, integer(0, 27)),
|
|
105
|
+
dateItemListed: date(30, true, 'YYYY-MM-DD'),
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
event: "sign up",
|
|
110
|
+
isFirstEvent: true,
|
|
111
|
+
weight: 0,
|
|
112
|
+
properties: {
|
|
113
|
+
variants: ["A", "B", "C", "Control"],
|
|
114
|
+
flows: ["new", "existing", "loyal", "churned"],
|
|
115
|
+
flags: ["on", "off"],
|
|
116
|
+
experiment_ids: ["1234", "5678", "9012", "3456", "7890"],
|
|
117
|
+
multiVariate: [true, false]
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
],
|
|
121
|
+
superProps: {
|
|
122
|
+
currentTheme: weighChoices(["light", "dark", "custom", "light", "dark"]),
|
|
123
|
+
},
|
|
124
|
+
/*
|
|
125
|
+
user properties work the same as event properties
|
|
126
|
+
each key should be an array or function reference
|
|
127
|
+
*/
|
|
128
|
+
userProps: {
|
|
129
|
+
title: chance.profession.bind(chance),
|
|
130
|
+
luckyNumber: weighNumRange(42, 420, .3),
|
|
131
|
+
spiritAnimal: pickAWinner(["duck", "dog", "otter", "penguin", "cat", "elephant", "lion", "cheetah", "giraffe", "zebra", "rhino", "hippo", "whale", "dolphin", "shark", "octopus", "squid", "jellyfish", "starfish", "seahorse", "crab", "lobster", "shrimp", "clam", "snail", "slug", "butterfly", "moth", "bee", "wasp", "ant", "beetle", "ladybug", "caterpillar", "centipede", "millipede", "scorpion", "spider", "tarantula", "tick", "mite", "mosquito", "fly", "dragonfly", "damselfly", "grasshopper", "cricket", "locust", "mantis", "cockroach", "termite", "praying mantis", "walking stick", "stick bug", "leaf insect", "lacewing", "aphid", "cicada", "thrips", "psyllid", "scale insect", "whitefly", "mealybug", "planthopper", "leafhopper", "treehopper", "flea", "louse", "bedbug", "flea beetle", "weevil", "longhorn beetle", "leaf beetle", "tiger beetle", "ground beetle", "lady beetle", "firefly", "click beetle", "rove beetle", "scarab beetle", "dung beetle", "stag beetle", "rhinoceros beetle", "hercules beetle", "goliath beetle", "jewel beetle", "tortoise beetle"])
|
|
132
|
+
},
|
|
133
|
+
scdProps: {},
|
|
134
|
+
mirrorProps: {},
|
|
135
|
+
|
|
136
|
+
/*
|
|
137
|
+
for group analytics keys, we need an array of arrays [[],[],[]]
|
|
138
|
+
each pair represents a group_key and the number of profiles for that key
|
|
139
|
+
*/
|
|
140
|
+
groupKeys: [],
|
|
141
|
+
groupProps: {},
|
|
142
|
+
lookupTables: [],
|
|
143
|
+
hook: function (record, type, meta) {
|
|
144
|
+
return record;
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
export default config;
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
|
|
2
|
+
const SEED = "my-seed";
|
|
3
|
+
const dayjs = require("dayjs");
|
|
4
|
+
const utc = require("dayjs/plugin/utc");
|
|
5
|
+
dayjs.extend(utc);
|
|
6
|
+
require("dotenv").config();
|
|
7
|
+
const u = require("../components/utils");
|
|
8
|
+
const v = require("ak-tools");
|
|
9
|
+
const chance = u.initChance(SEED);
|
|
10
|
+
const num_users = 1000;
|
|
11
|
+
const days = 30;
|
|
12
|
+
|
|
13
|
+
/** @typedef {import("../types").Dungeon} Config */
|
|
14
|
+
|
|
15
|
+
/** @type {Config} */
|
|
16
|
+
const config = {
|
|
17
|
+
token: "a854e82c2c91ada31c502139d99e8e0d",
|
|
18
|
+
seed: SEED,
|
|
19
|
+
numDays: days,
|
|
20
|
+
numEvents: num_users * 100,
|
|
21
|
+
numUsers: num_users,
|
|
22
|
+
hasAnonIds: false,
|
|
23
|
+
hasSessionIds: false,
|
|
24
|
+
format: "json",
|
|
25
|
+
alsoInferFunnels: true,
|
|
26
|
+
hasLocation: true,
|
|
27
|
+
hasAndroidDevices: true,
|
|
28
|
+
hasIOSDevices: true,
|
|
29
|
+
hasDesktopDevices: true,
|
|
30
|
+
hasBrowser: true,
|
|
31
|
+
hasCampaigns: true,
|
|
32
|
+
isAnonymous: false,
|
|
33
|
+
hasAdSpend: true,
|
|
34
|
+
|
|
35
|
+
hasAvatar: true,
|
|
36
|
+
makeChart: false,
|
|
37
|
+
|
|
38
|
+
batchSize: 500_000,
|
|
39
|
+
concurrency: 500,
|
|
40
|
+
writeToDisk: false,
|
|
41
|
+
|
|
42
|
+
funnels: [],
|
|
43
|
+
events: [{
|
|
44
|
+
event: "foo",
|
|
45
|
+
weight: 10
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
event: "bar",
|
|
49
|
+
weight: 5
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
event: "baz",
|
|
53
|
+
weight: 2
|
|
54
|
+
}],
|
|
55
|
+
superProps: {
|
|
56
|
+
"user_agent": u.pickAWinner([
|
|
57
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36",
|
|
58
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12",
|
|
59
|
+
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36",
|
|
60
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/600.8.9 (KHTML, like Gecko) Version/8.0.8 Safari/600.8.9",
|
|
61
|
+
"Mozilla/5.0 (iPhone; CPU iPhone OS 8_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) CriOS/44.0.2403.67 Mobile/12D508 Safari/600.1.4",
|
|
62
|
+
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36",
|
|
63
|
+
"Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0",
|
|
64
|
+
"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36",
|
|
65
|
+
"Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240",
|
|
66
|
+
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36",
|
|
67
|
+
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/42.0 Safari/537.31",
|
|
68
|
+
"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0",
|
|
69
|
+
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)",
|
|
70
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.59.10 (KHTML, like Gecko) Version/5.1.9 Safari/534.59.10",
|
|
71
|
+
"Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)",
|
|
72
|
+
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)",
|
|
73
|
+
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/50.0.125 Chrome/44.0.2403.125 Safari/537.36",
|
|
74
|
+
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)",
|
|
75
|
+
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0",
|
|
76
|
+
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0",
|
|
77
|
+
"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0",
|
|
78
|
+
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.5; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)",
|
|
79
|
+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240",
|
|
80
|
+
"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko",
|
|
81
|
+
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0) LinkCheck by Siteimprove.com",
|
|
82
|
+
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36",
|
|
83
|
+
"Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; rv:11.0) like Gecko",
|
|
84
|
+
"Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H143 Safari/600.1.4",
|
|
85
|
+
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36",
|
|
86
|
+
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0",
|
|
87
|
+
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36",
|
|
88
|
+
"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36",
|
|
89
|
+
"Mozilla/5.0 (BB10; Touch) AppleWebKit/537.35+ (KHTML, like Gecko) Version/10.3.2.2339 Mobile Safari/537.35+",
|
|
90
|
+
"Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36",
|
|
91
|
+
"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko",
|
|
92
|
+
"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0",
|
|
93
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:40.0) Gecko/20100101 Firefox/40.0",
|
|
94
|
+
"Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 525) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537",
|
|
95
|
+
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36",
|
|
96
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Gecko/20100101 Firefox/37.0",
|
|
97
|
+
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/44.0.2403.89 Chrome/44.0.2403.89 Safari/537.36",
|
|
98
|
+
"Mozilla/5.0 (iPad; CPU OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H143 Safari/600.1.4",
|
|
99
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/600.1.25 (KHTML, like Gecko) QuickLook/5.0",
|
|
100
|
+
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0",
|
|
101
|
+
"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko",
|
|
102
|
+
"Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36",
|
|
103
|
+
"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko",
|
|
104
|
+
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)",
|
|
105
|
+
"Mozilla/5.0 (Windows NT 6.0; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0",
|
|
106
|
+
"Mozilla/5.0 (Linux; U; Android 4.3; en-us; ZTE-Z667G Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
|
|
107
|
+
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36",
|
|
108
|
+
"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; ASU2JS; rv:11.0) like Gecko",
|
|
109
|
+
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0",
|
|
110
|
+
"Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko",
|
|
111
|
+
"Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36",
|
|
112
|
+
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36",
|
|
113
|
+
"Mozilla/5.0 (iPad; CPU OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F69 Safari/600.1.4",
|
|
114
|
+
"Mozilla/5.0 (Windows NT 6.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0",
|
|
115
|
+
"Mozilla/5.0 (iPhone; CPU iPhone OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H321 Safari/600.1.4",
|
|
116
|
+
"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; TNJB; rv:11.0) like Gecko",
|
|
117
|
+
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0",
|
|
118
|
+
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)",
|
|
119
|
+
"Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko",
|
|
120
|
+
"Mozilla/5.0 (iPad; CPU OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53",
|
|
121
|
+
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36",
|
|
122
|
+
"Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4",
|
|
123
|
+
"Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0",
|
|
124
|
+
"Mozilla/5.0 (iPad; CPU OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H321 Safari/600.1.4",
|
|
125
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0",
|
|
126
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:35.0) Gecko/20100101 Firefox/35.0",
|
|
127
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/6.1.6 Safari/537.78.2",
|
|
128
|
+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36",
|
|
129
|
+
"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
|
|
130
|
+
"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0",
|
|
131
|
+
"Mozilla/5.0 (Mobile; rv:32.0) Gecko/32.0 Firefox/32.0",
|
|
132
|
+
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Tablet PC 2.0; McAfee; AmericasCardroom; BRI/2; GWX:DOWNLOADED)",
|
|
133
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36",
|
|
134
|
+
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0)",
|
|
135
|
+
"Mozilla/5.0 (iPad; CPU OS 8_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12D508 Safari/600.1.4",
|
|
136
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2483.0 Safari/537.36",
|
|
137
|
+
"Mozilla/5.0 (Windows NT 5.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0",
|
|
138
|
+
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; MS-RTC LM 8)",
|
|
139
|
+
"Mozilla/5.0 (Android; Linux armv7l; rv:5.0) Gecko/20110615 Firefox/5.0 Fennec/5.0",
|
|
140
|
+
"Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B466 [FBAN/FBIOS;FBAV/37.0.0.21.273;FBBV/13822349;FBDV/iPhone6,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/8.1.3;FBSS/2; FBCR/fido;FBID/phone;FBLC/fr_FR;FBOP/5]",
|
|
141
|
+
"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:40.0) Gecko/20100101 Firefox/40.0 Cyberfox/40.0",
|
|
142
|
+
"Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mercury/8.7 Mobile/11B554a Safari/9537.53",
|
|
143
|
+
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; GWX:QUALIFIED; MASMJS)",
|
|
144
|
+
"Mozilla/5.0 (iPhone; CPU iPhone OS 7_1 like Mac OS X) AppleWebKit (KHTML, like Gecko) Mobile (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)",
|
|
145
|
+
"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; NP06; rv:11.0) like Gecko",
|
|
146
|
+
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; ARM; Trident/7.0; Touch; .NET4.0E; .NET4.0C; Tablet PC 2.0)",
|
|
147
|
+
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.0.19) Gecko/2010062819 Firefox/3.0.19 Flock/2.6.1",
|
|
148
|
+
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36",
|
|
149
|
+
"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko",
|
|
150
|
+
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)",
|
|
151
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/600.1.25 (KHTML, like Gecko) Version/8.0 Safari/600.1.25",
|
|
152
|
+
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36",
|
|
153
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.1.25 (KHTML, like Gecko) Version/8.0 Safari/600.1.25",
|
|
154
|
+
"Mozilla/4.0 (compatible; MSIE 6.1; Windows XP; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
|
|
155
|
+
])
|
|
156
|
+
},
|
|
157
|
+
userProps: {},
|
|
158
|
+
scdProps: {},
|
|
159
|
+
mirrorProps: {},
|
|
160
|
+
groupKeys: [],
|
|
161
|
+
groupProps: {},
|
|
162
|
+
lookupTables: [],
|
|
163
|
+
hook: function (record, type, meta) {
|
|
164
|
+
const NOW = dayjs.unix(global.NOW);
|
|
165
|
+
|
|
166
|
+
if (type === "event") {
|
|
167
|
+
const EVENT_TIME = dayjs(record.time);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (type === "user") {
|
|
171
|
+
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (type === "funnel-post") {
|
|
175
|
+
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
if (type === "funnel-pre") {
|
|
179
|
+
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (type === "scd") {
|
|
183
|
+
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return record;
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
module.exports = config;
|
package/index.js
CHANGED
|
@@ -39,6 +39,8 @@ import utc from "dayjs/plugin/utc.js";
|
|
|
39
39
|
import functions from '@google-cloud/functions-framework';
|
|
40
40
|
import { timer, sLog } from 'ak-tools';
|
|
41
41
|
import fs, { existsSync } from 'fs';
|
|
42
|
+
import path from 'path';
|
|
43
|
+
import { fileURLToPath } from 'url';
|
|
42
44
|
|
|
43
45
|
// Initialize dayjs and time constants
|
|
44
46
|
dayjs.extend(utc);
|
|
@@ -48,7 +50,9 @@ let FIXED_BEGIN = dayjs.unix(FIXED_NOW).subtract(90, 'd').unix();
|
|
|
48
50
|
global.FIXED_BEGIN = FIXED_BEGIN;
|
|
49
51
|
|
|
50
52
|
// Package version
|
|
51
|
-
const
|
|
53
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
54
|
+
const packageJsonPath = path.join(__dirname, 'package.json');
|
|
55
|
+
const { version } = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
52
56
|
|
|
53
57
|
// Environment
|
|
54
58
|
const { NODE_ENV = "unknown" } = process.env;
|
package/package.json
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "make-mp-data",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.12",
|
|
4
4
|
"description": "builds all mixpanel primitives for a given project",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"types": "types.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"index.js",
|
|
10
|
+
"types.d.ts",
|
|
11
|
+
"lib/",
|
|
12
|
+
"dungeons/",
|
|
13
|
+
"!dungeons/customers/",
|
|
14
|
+
"package.json",
|
|
15
|
+
"README.md"
|
|
16
|
+
],
|
|
8
17
|
"scripts": {
|
|
9
18
|
"start": "node ./index.js",
|
|
10
19
|
"dev": "nodemon scratch.mjs --ignore ./data/*",
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"permissions": {
|
|
3
|
-
"allow": [
|
|
4
|
-
"Bash(node:*)",
|
|
5
|
-
"Bash(mkdir:*)",
|
|
6
|
-
"Bash(npm install)",
|
|
7
|
-
"Bash(npx vitest run:*)",
|
|
8
|
-
"Bash(npm test)",
|
|
9
|
-
"Bash(grep:*)",
|
|
10
|
-
"Bash(rg:*)",
|
|
11
|
-
"Bash(./scripts/new-dungeon.sh:*)",
|
|
12
|
-
"Bash(cp:*)",
|
|
13
|
-
"Bash(find:*)",
|
|
14
|
-
"Bash(npm test:*)",
|
|
15
|
-
"Bash(npm run test:*)",
|
|
16
|
-
"Bash(npx tsc:*)",
|
|
17
|
-
"Bash(npm start)"
|
|
18
|
-
],
|
|
19
|
-
"deny": []
|
|
20
|
-
}
|
|
21
|
-
}
|
package/.gcloudignore
DELETED
package/.gitattributes
DELETED
package/.prettierrc
DELETED
|
File without changes
|