@webresto/graphql 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.editorconfig +10 -0
- package/index.d.ts +3 -0
- package/index.js +22 -0
- package/index.ts +14 -0
- package/lib/afterHook.d.ts +1 -0
- package/lib/afterHook.js +24 -0
- package/lib/afterHook.ts +26 -0
- package/lib/afterHook.ts___graphql-transport-ws +138 -0
- package/lib/afterHook.ts___graphql-ws +133 -0
- package/lib/defaults.js +12 -0
- package/lib/errorWrapper.d.ts +4 -0
- package/lib/errorWrapper.js +13 -0
- package/lib/errorWrapper.ts +12 -0
- package/lib/eventHelper.d.ts +21 -0
- package/lib/eventHelper.js +32 -0
- package/lib/eventHelper.ts +35 -0
- package/lib/graphqlHelper.d.ts +115 -0
- package/lib/graphqlHelper.js +596 -0
- package/lib/graphqlHelper.ts +692 -0
- package/lib/initialize.d.ts +1 -0
- package/lib/initialize.js +22 -0
- package/lib/initialize.ts +21 -0
- package/notes.md +1976 -0
- package/package.json +47 -0
- package/readme.md +258 -0
- package/restApi.http +11 -0
- package/src/additionalResolvers.d.ts +19 -0
- package/src/additionalResolvers.js +114 -0
- package/src/additionalResolvers.ts +111 -0
- package/src/graphql.d.ts +7 -0
- package/src/graphql.js +144 -0
- package/src/graphql.ts +160 -0
- package/src/resolvers/cart.d.ts +123 -0
- package/src/resolvers/cart.js +176 -0
- package/src/resolvers/cart.ts +256 -0
- package/src/resolvers/checkout.d.ts +30 -0
- package/src/resolvers/checkout.js +226 -0
- package/src/resolvers/checkout.ts +242 -0
- package/src/resolvers/dishAndModifier.d.ts +2 -0
- package/src/resolvers/dishAndModifier.js +35 -0
- package/src/resolvers/dishAndModifier.ts +38 -0
- package/src/resolvers/maintenance.d.ts +9 -0
- package/src/resolvers/maintenance.js +12 -0
- package/src/resolvers/maintenance.ts +11 -0
- package/src/resolvers/paymentMethod.d.ts +9 -0
- package/src/resolvers/paymentMethod.js +22 -0
- package/src/resolvers/paymentMethod.ts +20 -0
- package/src/resolvers/restrictions.d.ts +9 -0
- package/src/resolvers/restrictions.js +24 -0
- package/src/resolvers/restrictions.ts +22 -0
- package/src/resolvers/streets.d.ts +9 -0
- package/src/resolvers/streets.js +16 -0
- package/src/resolvers/streets.ts +13 -0
- package/src/resolvers/subscriptions.d.ts +33 -0
- package/src/resolvers/subscriptions.js +52 -0
- package/src/resolvers/subscriptions.ts +63 -0
- package/test/.eslintrc +8 -0
- package/test/_bootstrap.js +29 -0
- package/test/fixtures/v0.12-app/.gitignore +11 -0
- package/test/fixtures/v0.12-app/.sailsrc +11 -0
- package/test/fixtures/v0.12-app/api/controllers/.gitkeep +0 -0
- package/test/fixtures/v0.12-app/api/models/.gitkeep +0 -0
- package/test/fixtures/v0.12-app/api/models/TestModel.js +22 -0
- package/test/fixtures/v0.12-app/api/responses/badRequest.js +76 -0
- package/test/fixtures/v0.12-app/api/responses/created.js +60 -0
- package/test/fixtures/v0.12-app/api/responses/forbidden.js +89 -0
- package/test/fixtures/v0.12-app/api/responses/notFound.js +94 -0
- package/test/fixtures/v0.12-app/api/responses/ok.js +60 -0
- package/test/fixtures/v0.12-app/api/responses/serverError.js +89 -0
- package/test/fixtures/v0.12-app/api/services/.gitkeep +0 -0
- package/test/fixtures/v0.12-app/app.js +73 -0
- package/test/fixtures/v0.12-app/config/bootstrap.js +6 -0
- package/test/fixtures/v0.12-app/config/connections.js +5 -0
- package/test/fixtures/v0.12-app/config/cors.js +78 -0
- package/test/fixtures/v0.12-app/config/csrf.js +64 -0
- package/test/fixtures/v0.12-app/config/env/development.js +10 -0
- package/test/fixtures/v0.12-app/config/env/production.js +16 -0
- package/test/fixtures/v0.12-app/config/globals.js +63 -0
- package/test/fixtures/v0.12-app/config/hookTimeout.js +8 -0
- package/test/fixtures/v0.12-app/config/http.js +93 -0
- package/test/fixtures/v0.12-app/config/i18n.js +57 -0
- package/test/fixtures/v0.12-app/config/log.js +29 -0
- package/test/fixtures/v0.12-app/config/models.js +3 -0
- package/test/fixtures/v0.12-app/config/policies.js +51 -0
- package/test/fixtures/v0.12-app/config/restoapi.js +3 -0
- package/test/fixtures/v0.12-app/config/restocore.js +39 -0
- package/test/fixtures/v0.12-app/config/routes.js +49 -0
- package/test/fixtures/v0.12-app/config/session.js +100 -0
- package/test/fixtures/v0.12-app/config/sockets.js +141 -0
- package/test/fixtures/v0.12-app/config/stateflow.js +4 -0
- package/test/fixtures/v0.12-app/config/views.js +95 -0
- package/test/fixtures/v0.12-app/package.json +34 -0
- package/test/fixtures/v0.12-app/views/403.ejs +68 -0
- package/test/fixtures/v0.12-app/views/404.ejs +68 -0
- package/test/fixtures/v0.12-app/views/500.ejs +73 -0
- package/test/fixtures/v0.12-app/views/homepage.ejs +74 -0
- package/test/fixtures/v0.12-app/views/layout.ejs +91 -0
- package/test/mocha.opts +2 -0
- package/test/readme.md +0 -0
- package/test/todo +0 -0
- package/test/tslint.json +18 -0
- package/test/unit/first.test.js +11 -0
- package/test/unit/sails_not_crash.test.js +3 -0
- package/todo.md +1 -0
- package/tsconfig.json +10 -0
@@ -0,0 +1,100 @@
|
|
1
|
+
/**
|
2
|
+
* Session Configuration
|
3
|
+
* (sails.config.session)
|
4
|
+
*
|
5
|
+
* Sails session integration leans heavily on the great work already done by
|
6
|
+
* Express, but also unifies Socket.io with the Connect session store. It uses
|
7
|
+
* Connect's cookie parser to normalize configuration differences between Express
|
8
|
+
* and Socket.io and hooks into Sails' middleware interpreter to allow you to access
|
9
|
+
* and auto-save to `req.session` with Socket.io the same way you would with Express.
|
10
|
+
*
|
11
|
+
* For more information on configuring the session, check out:
|
12
|
+
* http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.session.html
|
13
|
+
*/
|
14
|
+
|
15
|
+
module.exports.session = {
|
16
|
+
|
17
|
+
/***************************************************************************
|
18
|
+
* *
|
19
|
+
* Session secret is automatically generated when your new app is created *
|
20
|
+
* Replace at your own risk in production-- you will invalidate the cookies *
|
21
|
+
* of your users, forcing them to log in again. *
|
22
|
+
* *
|
23
|
+
***************************************************************************/
|
24
|
+
secret: 'ffbef9b6711dc3130e47e22d46fee23c',
|
25
|
+
|
26
|
+
|
27
|
+
/***************************************************************************
|
28
|
+
* *
|
29
|
+
* Set the session cookie expire time The maxAge is set by milliseconds, *
|
30
|
+
* the example below is for 24 hours *
|
31
|
+
* *
|
32
|
+
***************************************************************************/
|
33
|
+
|
34
|
+
// cookie: {
|
35
|
+
// maxAge: 24 * 60 * 60 * 1000
|
36
|
+
// },
|
37
|
+
|
38
|
+
/***************************************************************************
|
39
|
+
* *
|
40
|
+
* Uncomment the following lines to set up a Redis session store that can *
|
41
|
+
* be shared across multiple Sails.js servers. *
|
42
|
+
* *
|
43
|
+
* Requires connect-redis (https://www.npmjs.com/package/connect-redis) *
|
44
|
+
* *
|
45
|
+
***************************************************************************/
|
46
|
+
|
47
|
+
// adapter: 'redis',
|
48
|
+
|
49
|
+
/***************************************************************************
|
50
|
+
* *
|
51
|
+
* The following values are optional, if no options are set a redis *
|
52
|
+
* instance running on localhost is expected. Read more about options at: *
|
53
|
+
* *
|
54
|
+
* https://github.com/visionmedia/connect-redis *
|
55
|
+
* *
|
56
|
+
***************************************************************************/
|
57
|
+
|
58
|
+
// host: 'localhost',
|
59
|
+
// port: 6379,
|
60
|
+
// ttl: <redis session TTL in seconds>,
|
61
|
+
// db: 0,
|
62
|
+
// pass: <redis auth password>,
|
63
|
+
// prefix: 'sess:',
|
64
|
+
|
65
|
+
|
66
|
+
/***************************************************************************
|
67
|
+
* *
|
68
|
+
* Uncomment the following lines to set up a MongoDB session store that can *
|
69
|
+
* be shared across multiple Sails.js servers. *
|
70
|
+
* *
|
71
|
+
* Requires connect-mongo (https://www.npmjs.com/package/connect-mongo) *
|
72
|
+
* Use version 0.8.2 with Node version <= 0.12 *
|
73
|
+
* Use the latest version with Node >= 4.0 *
|
74
|
+
* *
|
75
|
+
***************************************************************************/
|
76
|
+
|
77
|
+
// adapter: 'mongo',
|
78
|
+
// url: 'mongodb://user:password@localhost:27017/dbname', // user, password and port optional
|
79
|
+
|
80
|
+
/***************************************************************************
|
81
|
+
* *
|
82
|
+
* Optional Values: *
|
83
|
+
* *
|
84
|
+
* See https://github.com/kcbanner/connect-mongo for more *
|
85
|
+
* information about connect-mongo options. *
|
86
|
+
* *
|
87
|
+
* See http://bit.ly/mongooptions for more information about options *
|
88
|
+
* available in `mongoOptions` *
|
89
|
+
* *
|
90
|
+
***************************************************************************/
|
91
|
+
|
92
|
+
// collection: 'sessions',
|
93
|
+
// stringify: true,
|
94
|
+
// mongoOptions: {
|
95
|
+
// server: {
|
96
|
+
// ssl: true
|
97
|
+
// }
|
98
|
+
// }
|
99
|
+
|
100
|
+
};
|
@@ -0,0 +1,141 @@
|
|
1
|
+
/**
|
2
|
+
* WebSocket Server Settings
|
3
|
+
* (sails.config.sockets)
|
4
|
+
*
|
5
|
+
* These settings provide transparent access to the options for Sails'
|
6
|
+
* encapsulated WebSocket server, as well as some additional Sails-specific
|
7
|
+
* configuration layered on top.
|
8
|
+
*
|
9
|
+
* For more information on sockets configuration, including advanced config options, see:
|
10
|
+
* http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.sockets.html
|
11
|
+
*/
|
12
|
+
|
13
|
+
module.exports.sockets = {
|
14
|
+
|
15
|
+
|
16
|
+
/***************************************************************************
|
17
|
+
* *
|
18
|
+
* Node.js (and consequently Sails.js) apps scale horizontally. It's a *
|
19
|
+
* powerful, efficient approach, but it involves a tiny bit of planning. At *
|
20
|
+
* scale, you'll want to be able to copy your app onto multiple Sails.js *
|
21
|
+
* servers and throw them behind a load balancer. *
|
22
|
+
* *
|
23
|
+
* One of the big challenges of scaling an application is that these sorts *
|
24
|
+
* of clustered deployments cannot share memory, since they are on *
|
25
|
+
* physically different machines. On top of that, there is no guarantee *
|
26
|
+
* that a user will "stick" with the same server between requests (whether *
|
27
|
+
* HTTP or sockets), since the load balancer will route each request to the *
|
28
|
+
* Sails server with the most available resources. However that means that *
|
29
|
+
* all room/pubsub/socket processing and shared memory has to be offloaded *
|
30
|
+
* to a shared, remote messaging queue (usually Redis) *
|
31
|
+
* *
|
32
|
+
* Luckily, Socket.io (and consequently Sails.js) apps support Redis for *
|
33
|
+
* sockets by default. To enable a remote redis pubsub server, uncomment *
|
34
|
+
* the config below. *
|
35
|
+
* *
|
36
|
+
* Worth mentioning is that, if `adapter` config is `redis`, but host/port *
|
37
|
+
* is left unset, Sails will try to connect to redis running on localhost *
|
38
|
+
* via port 6379 *
|
39
|
+
* *
|
40
|
+
***************************************************************************/
|
41
|
+
// adapter: 'memory',
|
42
|
+
|
43
|
+
//
|
44
|
+
// -OR-
|
45
|
+
//
|
46
|
+
|
47
|
+
// adapter: 'socket.io-redis',
|
48
|
+
// host: '127.0.0.1',
|
49
|
+
// port: 6379,
|
50
|
+
// db: 0,
|
51
|
+
// pass: '<redis auth password>',
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
/***************************************************************************
|
56
|
+
* *
|
57
|
+
* Whether to expose a 'get /__getcookie' route with CORS support that sets *
|
58
|
+
* a cookie (this is used by the sails.io.js socket client to get access to *
|
59
|
+
* a 3rd party cookie and to enable sessions). *
|
60
|
+
* *
|
61
|
+
* Warning: Currently in this scenario, CORS settings apply to interpreted *
|
62
|
+
* requests sent via a socket.io connection that used this cookie to *
|
63
|
+
* connect, even for non-browser clients! (e.g. iOS apps, toasters, node.js *
|
64
|
+
* unit tests) *
|
65
|
+
* *
|
66
|
+
***************************************************************************/
|
67
|
+
|
68
|
+
// grant3rdPartyCookie: true,
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
/***************************************************************************
|
73
|
+
* *
|
74
|
+
* `beforeConnect` *
|
75
|
+
* *
|
76
|
+
* This custom beforeConnect function will be run each time BEFORE a new *
|
77
|
+
* socket is allowed to connect, when the initial socket.io handshake is *
|
78
|
+
* performed with the server. *
|
79
|
+
* *
|
80
|
+
* By default, when a socket tries to connect, Sails allows it, every time. *
|
81
|
+
* (much in the same way any HTTP request is allowed to reach your routes. *
|
82
|
+
* If no valid cookie was sent, a temporary session will be created for the *
|
83
|
+
* connecting socket. *
|
84
|
+
* *
|
85
|
+
* If the cookie sent as part of the connection request doesn't match any *
|
86
|
+
* known user session, a new user session is created for it. *
|
87
|
+
* *
|
88
|
+
* In most cases, the user would already have a cookie since they loaded *
|
89
|
+
* the socket.io client and the initial HTML page you're building. *
|
90
|
+
* *
|
91
|
+
* However, in the case of cross-domain requests, it is possible to receive *
|
92
|
+
* a connection upgrade request WITHOUT A COOKIE (for certain transports) *
|
93
|
+
* In this case, there is no way to keep track of the requesting user *
|
94
|
+
* between requests, since there is no identifying information to link *
|
95
|
+
* him/her with a session. The sails.io.js client solves this by connecting *
|
96
|
+
* to a CORS/jsonp endpoint first to get a 3rd party cookie(fortunately this*
|
97
|
+
* works, even in Safari), then opening the connection. *
|
98
|
+
* *
|
99
|
+
* You can also pass along a ?cookie query parameter to the upgrade url, *
|
100
|
+
* which Sails will use in the absence of a proper cookie e.g. (when *
|
101
|
+
* connecting from the client): *
|
102
|
+
* io.sails.connect('http://localhost:1337?cookie=smokeybear') *
|
103
|
+
* *
|
104
|
+
* Finally note that the user's cookie is NOT (and will never be) accessible*
|
105
|
+
* from client-side javascript. Using HTTP-only cookies is crucial for your *
|
106
|
+
* app's security. *
|
107
|
+
* *
|
108
|
+
***************************************************************************/
|
109
|
+
// beforeConnect: function(handshake, cb) {
|
110
|
+
// // `true` allows the connection
|
111
|
+
// return cb(null, true);
|
112
|
+
//
|
113
|
+
// // (`false` would reject the connection)
|
114
|
+
// },
|
115
|
+
|
116
|
+
|
117
|
+
/***************************************************************************
|
118
|
+
* *
|
119
|
+
* `afterDisconnect` *
|
120
|
+
* *
|
121
|
+
* This custom afterDisconnect function will be run each time a socket *
|
122
|
+
* disconnects *
|
123
|
+
* *
|
124
|
+
***************************************************************************/
|
125
|
+
// afterDisconnect: function(session, socket, cb) {
|
126
|
+
// // By default: do nothing.
|
127
|
+
// return cb();
|
128
|
+
// },
|
129
|
+
|
130
|
+
/***************************************************************************
|
131
|
+
* *
|
132
|
+
* `transports` *
|
133
|
+
* *
|
134
|
+
* A array of allowed transport methods which the clients will try to use. *
|
135
|
+
* On server environments that don't support sticky sessions, the "polling" *
|
136
|
+
* transport should be disabled. *
|
137
|
+
* *
|
138
|
+
***************************************************************************/
|
139
|
+
// transports: ["polling", "websocket"]
|
140
|
+
|
141
|
+
};
|
@@ -0,0 +1,95 @@
|
|
1
|
+
/**
|
2
|
+
* View Engine Configuration
|
3
|
+
* (sails.config.views)
|
4
|
+
*
|
5
|
+
* Server-sent views are a classic and effective way to get your app up
|
6
|
+
* and running. Views are normally served from controllers. Below, you can
|
7
|
+
* configure your templating language/framework of choice and configure
|
8
|
+
* Sails' layout support.
|
9
|
+
*
|
10
|
+
* For more information on views and layouts, check out:
|
11
|
+
* http://sailsjs.org/#!/documentation/concepts/Views
|
12
|
+
*/
|
13
|
+
|
14
|
+
module.exports.views = {
|
15
|
+
|
16
|
+
/****************************************************************************
|
17
|
+
* *
|
18
|
+
* View engine (aka template language) to use for your app's *server-side* *
|
19
|
+
* views *
|
20
|
+
* *
|
21
|
+
* Sails+Express supports all view engines which implement TJ Holowaychuk's *
|
22
|
+
* `consolidate.js`, including, but not limited to: *
|
23
|
+
* *
|
24
|
+
* ejs, jade, handlebars, mustache underscore, hogan, haml, haml-coffee, *
|
25
|
+
* dust atpl, eco, ect, jazz, jqtpl, JUST, liquor, QEJS, swig, templayed, *
|
26
|
+
* toffee, walrus, & whiskers *
|
27
|
+
* *
|
28
|
+
* For more options, check out the docs: *
|
29
|
+
* https://github.com/balderdashy/sails-wiki/blob/0.9/config.views.md#engine *
|
30
|
+
* *
|
31
|
+
****************************************************************************/
|
32
|
+
|
33
|
+
engine: 'ejs',
|
34
|
+
|
35
|
+
|
36
|
+
/****************************************************************************
|
37
|
+
* *
|
38
|
+
* Layouts are simply top-level HTML templates you can use as wrappers for *
|
39
|
+
* your server-side views. If you're using ejs or jade, you can take *
|
40
|
+
* advantage of Sails' built-in `layout` support. *
|
41
|
+
* *
|
42
|
+
* When using a layout, when one of your views is served, it is injected *
|
43
|
+
* into the `body` partial defined in the layout. This lets you reuse header *
|
44
|
+
* and footer logic between views. *
|
45
|
+
* *
|
46
|
+
* NOTE: Layout support is only implemented for the `ejs` view engine! *
|
47
|
+
* For most other engines, it is not necessary, since they implement *
|
48
|
+
* partials/layouts themselves. In those cases, this config will be *
|
49
|
+
* silently ignored. *
|
50
|
+
* *
|
51
|
+
* The `layout` setting may be set to one of the following: *
|
52
|
+
* *
|
53
|
+
* If `false`, layouts will be disabled. Otherwise, if a string is *
|
54
|
+
* specified, it will be interpreted as the relative path to your layout *
|
55
|
+
* file from `views/` folder. (the file extension, ".ejs", should be *
|
56
|
+
* omitted) *
|
57
|
+
* *
|
58
|
+
****************************************************************************/
|
59
|
+
|
60
|
+
/****************************************************************************
|
61
|
+
* *
|
62
|
+
* Using Multiple Layouts *
|
63
|
+
* *
|
64
|
+
* If you're using the default `ejs` or `handlebars` Sails supports the use *
|
65
|
+
* of multiple `layout` files. To take advantage of this, before rendering a *
|
66
|
+
* view, override the `layout` local in your controller by setting *
|
67
|
+
* `res.locals.layout`. (this is handy if you parts of your app's UI look *
|
68
|
+
* completely different from each other) *
|
69
|
+
* *
|
70
|
+
* e.g. your default might be *
|
71
|
+
* layout: 'layouts/public' *
|
72
|
+
* *
|
73
|
+
* But you might override that in some of your controllers with: *
|
74
|
+
* layout: 'layouts/internal' *
|
75
|
+
* *
|
76
|
+
****************************************************************************/
|
77
|
+
|
78
|
+
layout: 'layout',
|
79
|
+
|
80
|
+
/****************************************************************************
|
81
|
+
* *
|
82
|
+
* Partials are simply top-level snippets you can leverage to reuse template *
|
83
|
+
* for your server-side views. If you're using handlebars, you can take *
|
84
|
+
* advantage of Sails' built-in `partials` support. *
|
85
|
+
* *
|
86
|
+
* If `false` or empty partials will be located in the same folder as views. *
|
87
|
+
* Otherwise, if a string is specified, it will be interpreted as the *
|
88
|
+
* relative path to your partial files from `views/` folder. *
|
89
|
+
* *
|
90
|
+
****************************************************************************/
|
91
|
+
|
92
|
+
partials: false
|
93
|
+
|
94
|
+
|
95
|
+
};
|
@@ -0,0 +1,34 @@
|
|
1
|
+
{
|
2
|
+
"name": "app",
|
3
|
+
"private": true,
|
4
|
+
"version": "0.0.0",
|
5
|
+
"description": "a Sails application",
|
6
|
+
"keywords": [],
|
7
|
+
"dependencies": {
|
8
|
+
"@webresto/core": "git+https://github.com/webresto/core.git#staging",
|
9
|
+
"@webresto/graphql": "file:../../..",
|
10
|
+
"ejs": "^2.3.4",
|
11
|
+
"include-all": "^1.0.8",
|
12
|
+
"jade": "^1.11.0",
|
13
|
+
"rc": "^1.0.1",
|
14
|
+
"request": "^2.88.2",
|
15
|
+
"request-promise": "^4.2.4",
|
16
|
+
"sails": "^0.12.14",
|
17
|
+
"sails-hook-orm": "^1.0.9",
|
18
|
+
"sails-hook-slugs": "^2.1.0",
|
19
|
+
"sails-hook-stateflow": "git+https://github.com/pub42/sails-hook-stateflow.git",
|
20
|
+
"sails-memory": "^0.10.7",
|
21
|
+
"sails-postgresql": "^0.12.2"
|
22
|
+
},
|
23
|
+
"scripts": {
|
24
|
+
"debug": "node debug app.js",
|
25
|
+
"start": "node app.js"
|
26
|
+
},
|
27
|
+
"main": "app.js",
|
28
|
+
"repository": {
|
29
|
+
"type": "git",
|
30
|
+
"url": "git://github.com/webresto/app.git"
|
31
|
+
},
|
32
|
+
"author": "webresto",
|
33
|
+
"license": ""
|
34
|
+
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
<!--
|
2
|
+
|
3
|
+
|
4
|
+
444444444 000000000 333333333333333
|
5
|
+
4::::::::4 00:::::::::00 3:::::::::::::::33
|
6
|
+
4:::::::::4 00:::::::::::::00 3::::::33333::::::3
|
7
|
+
4::::44::::4 0:::::::000:::::::03333333 3:::::3
|
8
|
+
4::::4 4::::4 0::::::0 0::::::0 3:::::3
|
9
|
+
4::::4 4::::4 0:::::0 0:::::0 3:::::3
|
10
|
+
4::::4 4::::4 0:::::0 0:::::0 33333333:::::3
|
11
|
+
4::::444444::::4440:::::0 000 0:::::0 3:::::::::::3
|
12
|
+
4::::::::::::::::40:::::0 000 0:::::0 33333333:::::3
|
13
|
+
4444444444:::::4440:::::0 0:::::0 3:::::3
|
14
|
+
4::::4 0:::::0 0:::::0 3:::::3
|
15
|
+
4::::4 0::::::0 0::::::0 3:::::3
|
16
|
+
4::::4 0:::::::000:::::::03333333 3:::::3
|
17
|
+
44::::::44 00:::::::::::::00 3::::::33333::::::3
|
18
|
+
4::::::::4 00:::::::::00 3:::::::::::::::33
|
19
|
+
4444444444 000000000 333333333333333
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
This is the default "403: Forbidden" page.
|
24
|
+
User agents that don't "Accept" HTML will see a JSON version instead.
|
25
|
+
You can customize the control logic for your needs in `config/403.js`
|
26
|
+
|
27
|
+
You can trigger this response from one of your controllers or policies with:
|
28
|
+
`return res.forbidden( msg );`
|
29
|
+
(where `msg` is an optional error message to include in the response)
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
-->
|
35
|
+
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,600' rel='stylesheet' type='text/css'>
|
36
|
+
<style>
|
37
|
+
/* Styles included inline since you'll probably be deleting or replacing this page anyway */
|
38
|
+
html,body{text-align:left;font-size:1em}html,body,img,form,textarea,input,fieldset,div,p,div,ul,li,ol,dl,dt,dd,h1,h2,h3,h4,h5,h6,pre,code{margin:0;padding:0}ul,li{list-style:none}img{display:block}a img{border:0}a{text-decoration:none;font-weight:normal;font-family:inherit}*:active,*:focus{outline:0;-moz-outline-style:none}h1,h2,h3,h4,h5,h6,h7{font-weight:normal;font-size:1em}.clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden}.page .ocean{background:url('http://sailsjs.com/images/waves.png') #0c8da0 no-repeat center 282px;height:315px}.page .ocean img{margin-right:auto;margin-left:auto}.page .waves{display:block;padding-top:25px;margin-right:auto;margin-left:auto}.page .main{display:block;margin-top:90px}.page .logo{width:150px;margin-top:3.5em;margin-left:auto;margin-right:auto}.page .fishy{display:block;padding-top:100px}.page .help{padding-top:2em}.page h1{font-family:"Open Sans","Myriad Pro",Arial,sans-serif;font-weight:bold;font-size:1.7em;color:#001c20;text-align:center}.page h2{font-family:"Open Sans","Myriad Pro",Arial,sans-serif;font-weight:300;font-size:1.5em;color:#001c20;text-align:center}.page p{font-family:"Open Sans","Myriad Pro",Arial,sans-serif;font-size:1.25em;color:#001c20;text-align:center}.page a{color:#118798}.page a:hover{color:#b1eef7}
|
39
|
+
</style>
|
40
|
+
|
41
|
+
<div class="page">
|
42
|
+
<div class="ocean">
|
43
|
+
<img class="fishy" src="http://sailsjs.com/images/image_devInTub.png">
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div class="main">
|
47
|
+
<h1>
|
48
|
+
Forbidden
|
49
|
+
</h1>
|
50
|
+
<h2>
|
51
|
+
<% if (typeof data !== 'undefined') { %>
|
52
|
+
<%= data %>
|
53
|
+
<% } else { %>
|
54
|
+
You don't have permission to see the page you're trying to reach.
|
55
|
+
<% } %>
|
56
|
+
</h2>
|
57
|
+
<p class="help">
|
58
|
+
<a href="http://en.wikipedia.org/wiki/HTTP_403">Why</a> might this be happening?
|
59
|
+
</p>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div class="logo">
|
63
|
+
<a href="http://sailsjs.org">
|
64
|
+
<img src="http://sailsjs.org/images/logo.png">
|
65
|
+
</a>
|
66
|
+
</div>
|
67
|
+
</div>
|
68
|
+
|
@@ -0,0 +1,68 @@
|
|
1
|
+
<!--
|
2
|
+
|
3
|
+
|
4
|
+
444444444 000000000 444444444
|
5
|
+
4::::::::4 00:::::::::00 4::::::::4
|
6
|
+
4:::::::::4 00:::::::::::::00 4:::::::::4
|
7
|
+
4::::44::::4 0:::::::000:::::::0 4::::44::::4
|
8
|
+
4::::4 4::::4 0::::::0 0::::::0 4::::4 4::::4
|
9
|
+
4::::4 4::::4 0:::::0 0:::::0 4::::4 4::::4
|
10
|
+
4::::4 4::::4 0:::::0 0:::::0 4::::4 4::::4
|
11
|
+
4::::444444::::4440:::::0 000 0:::::04::::444444::::444
|
12
|
+
4::::::::::::::::40:::::0 000 0:::::04::::::::::::::::4
|
13
|
+
4444444444:::::4440:::::0 0:::::04444444444:::::444
|
14
|
+
4::::4 0:::::0 0:::::0 4::::4
|
15
|
+
4::::4 0::::::0 0::::::0 4::::4
|
16
|
+
4::::4 0:::::::000:::::::0 4::::4
|
17
|
+
44::::::44 00:::::::::::::00 44::::::44
|
18
|
+
4::::::::4 00:::::::::00 4::::::::4
|
19
|
+
4444444444 000000000 4444444444
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
This is the default "404: Not Found" page.
|
24
|
+
User agents that don't "Accept" HTML will see a JSON version instead.
|
25
|
+
You can customize the control logic for your needs in `config/404.js`
|
26
|
+
|
27
|
+
Sails considers a request to be in a "404: Not Found" state when a user
|
28
|
+
requests a URL which doesn't match any of your app's routes or blueprints.
|
29
|
+
|
30
|
+
You can also trigger this response from one of your controllers or policies with:
|
31
|
+
`return res.notFound();`
|
32
|
+
|
33
|
+
|
34
|
+
-->
|
35
|
+
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,600' rel='stylesheet' type='text/css'>
|
36
|
+
<style>
|
37
|
+
/* Styles included inline since you'll probably be deleting this page anyway */
|
38
|
+
html,body{text-align:left;font-size:1em}html,body,img,form,textarea,input,fieldset,div,p,div,ul,li,ol,dl,dt,dd,h1,h2,h3,h4,h5,h6,pre,code{margin:0;padding:0}ul,li{list-style:none}img{display:block}a img{border:0}a{text-decoration:none;font-weight:normal;font-family:inherit}*:active,*:focus{outline:0;-moz-outline-style:none}h1,h2,h3,h4,h5,h6,h7{font-weight:normal;font-size:1em}.clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden}.fourohfour .ocean{background:url('http://sailsjs.com/images/waves.png') #0c8da0 no-repeat center 282px;height:315px}.fourohfour .ocean img{margin-right:auto;margin-left:auto}.fourohfour .waves{display:block;padding-top:25px;margin-right:auto;margin-left:auto}.fourohfour .main{display:block;margin-top:90px}.fourohfour .logo{width:150px;margin-top:3.5em;margin-left:auto;margin-right:auto}.fourohfour .fishy{display:block;padding-top:27px}.fourohfour .help{padding-top:2em}.fourohfour h1{font-family:"Open Sans","Myriad Pro",Arial,sans-serif;font-weight:bold;font-size:1.7em;color:#001c20;text-align:center}.fourohfour h2{font-family:"Open Sans","Myriad Pro",Arial,sans-serif;font-weight:300;font-size:1.5em;color:#001c20;text-align:center}.fourohfour p{font-family:"Open Sans","Myriad Pro",Arial,sans-serif;font-size:1.25em;color:#001c20;text-align:center}.fourohfour a{color:#118798}.fourohfour a:hover{color:#b1eef7}
|
39
|
+
</style>
|
40
|
+
|
41
|
+
<div class="fourohfour">
|
42
|
+
<div class="ocean">
|
43
|
+
<img class="fishy" src="http://sailsjs.org/images/fishy4.png">
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div class="main">
|
47
|
+
<h1>
|
48
|
+
Something's fishy here.
|
49
|
+
</h1>
|
50
|
+
<h2>
|
51
|
+
<% if (typeof data!== 'undefined') { %>
|
52
|
+
<%= data %>
|
53
|
+
<% } else { %>
|
54
|
+
The page you were trying to reach doesn't exist.
|
55
|
+
<% } %>
|
56
|
+
</h2>
|
57
|
+
<p class="help">
|
58
|
+
<a href="http://en.wikipedia.org/wiki/HTTP_404">Why</a> might this be happening?
|
59
|
+
</p>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div class="logo">
|
63
|
+
<a href="http://sailsjs.org">
|
64
|
+
<img src="http://sailsjs.org/images/logo.png">
|
65
|
+
</a>
|
66
|
+
</div>
|
67
|
+
</div>
|
68
|
+
|