@webresto/graphql 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
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
+