@webresto/graphql 1.3.0

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.
Files changed (105) hide show
  1. package/.editorconfig +10 -0
  2. package/index.d.ts +3 -0
  3. package/index.js +22 -0
  4. package/index.ts +14 -0
  5. package/lib/afterHook.d.ts +1 -0
  6. package/lib/afterHook.js +24 -0
  7. package/lib/afterHook.ts +26 -0
  8. package/lib/afterHook.ts___graphql-transport-ws +138 -0
  9. package/lib/afterHook.ts___graphql-ws +133 -0
  10. package/lib/defaults.js +12 -0
  11. package/lib/errorWrapper.d.ts +4 -0
  12. package/lib/errorWrapper.js +13 -0
  13. package/lib/errorWrapper.ts +12 -0
  14. package/lib/eventHelper.d.ts +21 -0
  15. package/lib/eventHelper.js +32 -0
  16. package/lib/eventHelper.ts +35 -0
  17. package/lib/graphqlHelper.d.ts +115 -0
  18. package/lib/graphqlHelper.js +596 -0
  19. package/lib/graphqlHelper.ts +692 -0
  20. package/lib/initialize.d.ts +1 -0
  21. package/lib/initialize.js +22 -0
  22. package/lib/initialize.ts +21 -0
  23. package/notes.md +1976 -0
  24. package/package.json +47 -0
  25. package/readme.md +258 -0
  26. package/restApi.http +11 -0
  27. package/src/additionalResolvers.d.ts +19 -0
  28. package/src/additionalResolvers.js +114 -0
  29. package/src/additionalResolvers.ts +111 -0
  30. package/src/graphql.d.ts +7 -0
  31. package/src/graphql.js +144 -0
  32. package/src/graphql.ts +160 -0
  33. package/src/resolvers/cart.d.ts +123 -0
  34. package/src/resolvers/cart.js +176 -0
  35. package/src/resolvers/cart.ts +256 -0
  36. package/src/resolvers/checkout.d.ts +30 -0
  37. package/src/resolvers/checkout.js +226 -0
  38. package/src/resolvers/checkout.ts +242 -0
  39. package/src/resolvers/dishAndModifier.d.ts +2 -0
  40. package/src/resolvers/dishAndModifier.js +35 -0
  41. package/src/resolvers/dishAndModifier.ts +38 -0
  42. package/src/resolvers/maintenance.d.ts +9 -0
  43. package/src/resolvers/maintenance.js +12 -0
  44. package/src/resolvers/maintenance.ts +11 -0
  45. package/src/resolvers/paymentMethod.d.ts +9 -0
  46. package/src/resolvers/paymentMethod.js +22 -0
  47. package/src/resolvers/paymentMethod.ts +20 -0
  48. package/src/resolvers/restrictions.d.ts +9 -0
  49. package/src/resolvers/restrictions.js +24 -0
  50. package/src/resolvers/restrictions.ts +22 -0
  51. package/src/resolvers/streets.d.ts +9 -0
  52. package/src/resolvers/streets.js +16 -0
  53. package/src/resolvers/streets.ts +13 -0
  54. package/src/resolvers/subscriptions.d.ts +33 -0
  55. package/src/resolvers/subscriptions.js +52 -0
  56. package/src/resolvers/subscriptions.ts +63 -0
  57. package/test/.eslintrc +8 -0
  58. package/test/_bootstrap.js +29 -0
  59. package/test/fixtures/v0.12-app/.gitignore +11 -0
  60. package/test/fixtures/v0.12-app/.sailsrc +11 -0
  61. package/test/fixtures/v0.12-app/api/controllers/.gitkeep +0 -0
  62. package/test/fixtures/v0.12-app/api/models/.gitkeep +0 -0
  63. package/test/fixtures/v0.12-app/api/models/TestModel.js +22 -0
  64. package/test/fixtures/v0.12-app/api/responses/badRequest.js +76 -0
  65. package/test/fixtures/v0.12-app/api/responses/created.js +60 -0
  66. package/test/fixtures/v0.12-app/api/responses/forbidden.js +89 -0
  67. package/test/fixtures/v0.12-app/api/responses/notFound.js +94 -0
  68. package/test/fixtures/v0.12-app/api/responses/ok.js +60 -0
  69. package/test/fixtures/v0.12-app/api/responses/serverError.js +89 -0
  70. package/test/fixtures/v0.12-app/api/services/.gitkeep +0 -0
  71. package/test/fixtures/v0.12-app/app.js +73 -0
  72. package/test/fixtures/v0.12-app/config/bootstrap.js +6 -0
  73. package/test/fixtures/v0.12-app/config/connections.js +5 -0
  74. package/test/fixtures/v0.12-app/config/cors.js +78 -0
  75. package/test/fixtures/v0.12-app/config/csrf.js +64 -0
  76. package/test/fixtures/v0.12-app/config/env/development.js +10 -0
  77. package/test/fixtures/v0.12-app/config/env/production.js +16 -0
  78. package/test/fixtures/v0.12-app/config/globals.js +63 -0
  79. package/test/fixtures/v0.12-app/config/hookTimeout.js +8 -0
  80. package/test/fixtures/v0.12-app/config/http.js +93 -0
  81. package/test/fixtures/v0.12-app/config/i18n.js +57 -0
  82. package/test/fixtures/v0.12-app/config/log.js +29 -0
  83. package/test/fixtures/v0.12-app/config/models.js +3 -0
  84. package/test/fixtures/v0.12-app/config/policies.js +51 -0
  85. package/test/fixtures/v0.12-app/config/restoapi.js +3 -0
  86. package/test/fixtures/v0.12-app/config/restocore.js +39 -0
  87. package/test/fixtures/v0.12-app/config/routes.js +49 -0
  88. package/test/fixtures/v0.12-app/config/session.js +100 -0
  89. package/test/fixtures/v0.12-app/config/sockets.js +141 -0
  90. package/test/fixtures/v0.12-app/config/stateflow.js +4 -0
  91. package/test/fixtures/v0.12-app/config/views.js +95 -0
  92. package/test/fixtures/v0.12-app/package.json +34 -0
  93. package/test/fixtures/v0.12-app/views/403.ejs +68 -0
  94. package/test/fixtures/v0.12-app/views/404.ejs +68 -0
  95. package/test/fixtures/v0.12-app/views/500.ejs +73 -0
  96. package/test/fixtures/v0.12-app/views/homepage.ejs +74 -0
  97. package/test/fixtures/v0.12-app/views/layout.ejs +91 -0
  98. package/test/mocha.opts +2 -0
  99. package/test/readme.md +0 -0
  100. package/test/todo +0 -0
  101. package/test/tslint.json +18 -0
  102. package/test/unit/first.test.js +11 -0
  103. package/test/unit/sails_not_crash.test.js +3 -0
  104. package/todo.md +1 -0
  105. 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,4 @@
1
+ module.exports.stateflow = {
2
+ model: 'Order',
3
+ stateField: 'state'
4
+ };
@@ -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
+