package.json 8.75 KB
Newer Older
1
{
2
  "name": "pount",
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  "@comment comments": [
    "To track and understand the whys of each part of this file,",
    "and because we don't want to rely too much on 'git blame', use comments.",
    "Please include the name of the section you comment after the `@comment`",
    "'annotation' to make sure each key is unique (see the JSON spec).",
    "This is required by JSON validators (like the one built into your IDE).",
    "Plus, running `npm install <whatever> --save` removes duplicate keys.",
    "",
    "package.json documentation: https://docs.npmjs.com/files/package.json"
  ],
  "@comment version": [
    "Semantic versionning would be recommended by npm.",
    "See https://docs.npmjs.com/about-semantic-versioning",
    "However, it's ~ a false promise : node and even npm don't follow SemVer.",
    "So, keep in mind alternatives exist :",
    "https://medium.com/sapioit/why-having-3-numbers-in-the-version-name-is-bad-92fc1f6bc73c",
    "https://gist.github.com/jashkenas/cbd2b088e20279ae2c8e"
  ],
Jean Rabreau's avatar
Jean Rabreau committed
21
  "version": "1.0.2",
22
23
24
25
26
27
28
  "@comment private": [
    "This whole project is just documentation.",
    "Don't publish it in npm as is."
  ],
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
29
    "build": "vue-cli-service build",
Jean Rabreau's avatar
Jean Rabreau committed
30
31
32
    "build:test": "vue-cli-service build --mode deploy_test",
    "build:preprod": "vue-cli-service build --mode deploy_preprod",
    "build:prod": "vue-cli-service build --mode deploy_prod",
33
    "test:unit": "vue-cli-service test:unit",
34
    "test:coverage": "nyc vue-cli-service test:unit",
35
    "test:e2e": "vue-cli-service test:e2e --env firefox,chrome --headless",
Jean Rabreau's avatar
Jean Rabreau committed
36
    "lint": "vue-cli-service lint",
Jean Rabreau's avatar
Jean Rabreau committed
37
    "ci": "npm run test:unit && npm run lint"
38
39
  },
  "@comment dependencies": {
40
41
42
43
    "axios": [
      "To be able to communicate with servers by calling their APIs.",
      "vue-axios doesn't seem to bring much excepted syntactic sugar."
    ],
44
45
46
47
    "core-js": [
      "To use next-gen ECMAScript standards on older browsers.",
      "Added by `vue create`, while choosing 'Babel' option."
    ],
48
49
50
    "vue": [
      "Well, it's a vue project, so we of course depend on this.",
      "Run `npm outdated` regularly so versions don't fall too far behind."
51
    ],
Régis Witz's avatar
Régis Witz committed
52
53
54
55
    "vue-i18n": [
      "To support page localization in a not-too-terrible way.",
      "See documentation: https://kazupon.github.io/vue-i18n/"
    ],
56
57
58
59
    "vue-router": [
      "To map urls to views, use wildcards in urls, history mode,",
      "and fine-grained navigation control in general.",
      "See documentation: https://router.vuejs.org/"
60
61
62
63
64
65
    ],
    "vuex": [
      "To get centralized storage for all components. Honestly, this can turn",
      "into just using globals everywhere, so please use with caution.",
      "Please at least use namespaces, and actions for async store update.",
      "See documentation: https://vuex.vuejs.org/"
wiztigers's avatar
wiztigers committed
66
67
68
69
70
    ],
    "vuetify": [
      "To get a library containing many Material Design components.",
      "Aim is gaining productivity and user experience: no NIH rule here.",
      "See documentation: https://vuetifyjs.com/en/introduction/why-vuetify/"
Régis Witz's avatar
Régis Witz committed
71
    ],
Régis Witz's avatar
Régis Witz committed
72
73
74
75
    "tiptap-viewtify": [
      "A Viewtify/Tiptap extension providing a rich TextArea.",
      "Used in particular in forms description fields."
    ],
Régis Witz's avatar
Régis Witz committed
76
77
78
79
80
    "vuejs-logger": [
      "To get configurable logging.",
      "I'm not fond of using a vue-specific logging library, but ...",
      "Well, at least we won't have to import it everywhere we use it.",
      "See documentation: https://www.npmjs.com/package/vuejs-logger"
81
82
83
84
85
86
87
    ],
    "firebase": [
      "To get social media authentication with the following benefits:",
      " + easy maintenance: API is mature and streamlined ;",
      " + good user experience: everything (like redirections) just works ;",
      " - paywalled and privacy invasive features (WE DO NOT WANT THESE !)",
      "See for example: https://firebase.google.com/docs/auth/web/google-signin"
88
89
90
    ]
  },
  "dependencies": {
Jean Rabreau's avatar
Jean Rabreau committed
91
92
    "@sentry/browser": "^6.13.2",
    "@sentry/integrations": "^6.13.2",
93
    "@vue-unistra/formbuilder": "^3.0.19",
Jean Rabreau's avatar
Jean Rabreau committed
94
95
    "axios": "^0.21.4",
    "core-js": "^3.18.1",
Jean Rabreau's avatar
Jean Rabreau committed
96
    "hammerjs": "^2.0.8",
97
    "jdenticon": "^3.1.1",
98
99
    "jquery": "^3.6.0",
    "jquery-ui": "^1.12.1",
Jean Rabreau's avatar
Jean Rabreau committed
100
    "lodash": "^4.17.21",
101
    "tiptap-vuetify": "^2.24.0",
102
    "vue": "^2.6.14",
Jean Rabreau's avatar
Jean Rabreau committed
103
    "vue-i18n": "^8.26.5",
104
105
    "vue-matomo": "^4.1.0",
    "vue-router": "^3.5.2",
Jean Rabreau's avatar
Jean Rabreau committed
106
    "vuejs-logger": "^1.5.5",
Jean Rabreau's avatar
Jean Rabreau committed
107
    "vuetify": "^2.5.9",
Jean Rabreau's avatar
Jean Rabreau committed
108
    "vuex": "^3.6.2"
109
110
  },
  "@comment devDependencies": {
111
112
113
114
115
    "@vue/cli-plugin-babel": [
      "To transpile between different Javascript versions.",
      "For documentation, see: https://babeljs.io/",
      "Added by `vue create`, while choosing 'Babel' option."
    ],
116
117
118
119
120
121
122
123
    "eslint": [
      "To use eslint ECMAScript linter.",
      "Using package eslint makes us depend on those additional dependencies:",
      "- `eslint`: see https://eslint.org/ for documentation",
      "- `eslint-plugin-vue`: to check specific vue stuff; https://eslint.vuejs.org/",
      "- `@vue/cli-plugin-eslint`: to use `npm run lint` command",
      "- `babel-eslint`: for stuff not yet supported by vanilla eslint"
    ],
124
125
126
127
128
129
    "@vue/cli-plugin-unit-mocha": [
      "To use `npm run test:unit` command using mochapack+chai."
    ],
    "@vue/cli-plugin-e2e-nightwatch": [
      "To use `npm run test:e2e` command using nightwatch."
    ],
130
131
132
133
134
135
136
137
    "@vue/test-utils": [
      "To be able to use Vue.js unit testing library.",
      "See documentation: https://vue-test-utils.vuejs.org/"
    ],
    "chai": [
      "To provide more assertions to Vue.js unit tests as long as extensions.",
      "See documentation: https://www.chaijs.com/"
    ],
138
139
140
    "sinon": [
      "Standalone test spies, stubs and mocks for JavaScript.",
      "https://sinonjs.org/"
141
    ],
142
    "nyc": [
143
144
145
      "JavaScript test coverage made simple",
      "https://istanbul.js.org/"
    ],
146
    "babel-plugin-istanbul": [
147
148
      "nyc integration with babel",
      "https://github.com/istanbuljs/babel-plugin-istanbul"
149
150
151
152
153
154
155
156
157
    ],
    "chromedriver": [
      "Driver for webkit-based browsers used by nightwatch in end-to-end tests.",
      "In other words: chromium and chrome."
    ],
    "geckodriver": [
      "Driver for gecko-based browsers used by nightwatch in end-to-end tests.",
      "In other words: firefox."
    ],
158
159
160
161
162
163
    "@vue/cli-service": [
      "To run commands listed in this package.json `scripts` section:",
      " - `npm run serve`: compiles and hot-reloads for development",
      " - `npm run build`: compiles and minifies for production",
      "To customize configuration, see: https://cli.vuejs.org/config/"
    ],
164
165
166
167
168
169
    "@vue/cli-plugin-router": [
      "According to the devs themselves, this package doesn't seem to have",
      "any real use besides being future ready.",
      "It is therefore not needed, so DON'T ADD IT until further notice.",
      "See: https://cli.vuejs.org/migrating-from-v3/#the-global-vue-cli"
    ],
170
171
172
173
    "vue-template-compiler": [
      "To pre-compile vue templates into render functions, ",
      "to avoid runtime-compilation overhead and CSP restrictions.",
      "Added automatically by `vue create` command."
wiztigers's avatar
wiztigers committed
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
    ],
    "vue-cli-plugin-vuetify": [
      "To make vuetify installation and configuration easier."
    ],
    "vuetify-loader": [
      "To reduce build size by only packaging vuetify components we use.",
      "See: https://vuetifyjs.com/fr-FR/customization/a-la-carte/"
    ],
    "sass-loader": [
      "vuetify uses sass/scss, so it needs this loader to compile it to css,",
      "and for some reason we have to add it as an explicit dependency."
    ],
    "sass": [
      "If we don't add it, sass-loader complains module 'node-sass' is not",
      "found. Adding 'sass' as an exlicit dependency solves the problem.",
      "Yeah, npm logic is logic."
    ],
    "null-loader": [
      "We want to test our components, however, some ofthem contain vuetify",
      "elements which break our tests if we don't add this package.",
      "See documentation: https://www.npmjs.com/package/null-loader"
195
196
197
    ]
  },
  "devDependencies": {
198
199
200
201
202
203
204
    "@vue/cli-plugin-babel": "^4.5.13",
    "@vue/cli-plugin-e2e-nightwatch": "^4.5.13",
    "@vue/cli-plugin-eslint": "^4.5.13",
    "@vue/cli-plugin-unit-mocha": "^4.5.13",
    "@vue/cli-plugin-vuex": "^4.5.13",
    "@vue/cli-service": "^4.5.13",
    "@vue/test-utils": "^1.2.2",
205
    "babel-eslint": "^10.0.3",
206
    "babel-plugin-istanbul": "^6.0.0",
Jean Rabreau's avatar
Jean Rabreau committed
207
    "chai": "^4.3.4",
Jean Rabreau's avatar
Jean Rabreau committed
208
    "chromedriver": "^93.0.1",
Jean Rabreau's avatar
Jean Rabreau committed
209
    "eslint": "^6.8.0",
Jean Rabreau's avatar
Jean Rabreau committed
210
    "eslint-plugin-vue": "^7.18.0",
Jean Rabreau's avatar
Jean Rabreau committed
211
    "geckodriver": "^2.0.4",
212
    "jwt-simple": "^0.5.6",
213
    "moxios": "^0.4.0",
Jean Rabreau's avatar
Jean Rabreau committed
214
    "null-loader": "^4.0.1",
215
    "nyc": "^15.1.0",
216
217
218
219
220
    "sass": "~1.32.13",
    "sass-loader": "~10.2.0",
    "sinon": "^11.1.2",
    "vue-cli-plugin-vuetify": "^2.4.2",
    "vue-template-compiler": "^2.6.14",
Jean Rabreau's avatar
Jean Rabreau committed
221
    "vuetify-loader": "^1.7.3",
222
    "webpack-bundle-analyzer": "^4.4.2"
223
224
  }
}