etincidunt 1.0.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.
- package/.prettierignore +2 -0
- package/.travis.yml +29 -0
- package/.vscode/launch.json +24 -0
- package/.vscode/settings.json +3 -0
- package/demos/ago-node-cli/README.md +29 -0
- package/demos/ago-node-cli/ago.js +32 -0
- package/demos/ago-node-cli/index.js +11 -0
- package/demos/ago-node-cli/lib/item-export-command.js +48 -0
- package/demos/ago-node-cli/lib/item-search-command.js +35 -0
- package/demos/ago-node-cli/package-lock.json +172 -0
- package/demos/ago-node-cli/package.json +30 -0
- package/demos/attachments/README.md +5 -0
- package/demos/attachments/index.html +164 -0
- package/demos/attachments/package-lock.json +182 -0
- package/demos/attachments/package.json +18 -0
- package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
- package/demos/batch-geocoder-node/README.md +14 -0
- package/demos/batch-geocoder-node/batch-geocode.js +112 -0
- package/demos/batch-geocoder-node/config-template.js +18 -0
- package/demos/batch-geocoder-node/package-lock.json +109 -0
- package/demos/batch-geocoder-node/package.json +37 -0
- package/demos/express/README.md +10 -0
- package/demos/express/config.json.template +3 -0
- package/demos/express/package-lock.json +388 -0
- package/demos/express/package.json +18 -0
- package/demos/express/server.js +28 -0
- package/demos/feature-service-browser/README.md +6 -0
- package/demos/feature-service-browser/index.html +122 -0
- package/demos/feature-service-browser/package-lock.json +182 -0
- package/demos/feature-service-browser/package.json +18 -0
- package/demos/geocoder-browser/README.md +10 -0
- package/demos/geocoder-browser/config.js.template +1 -0
- package/demos/geocoder-browser/index.html +131 -0
- package/demos/geocoder-browser/package-lock.json +163 -0
- package/demos/geocoder-browser/package.json +19 -0
- package/demos/geocoder-browser/post-sign-in.html +25 -0
- package/demos/jsapi-integration/README.md +8 -0
- package/demos/jsapi-integration/config.js +6 -0
- package/demos/jsapi-integration/index.html +79 -0
- package/demos/jsapi-integration/package-lock.json +184 -0
- package/demos/jsapi-integration/package.json +19 -0
- package/demos/oauth2-browser/README.md +12 -0
- package/demos/oauth2-browser/authenticate.html +32 -0
- package/demos/oauth2-browser/config.js.template +6 -0
- package/demos/oauth2-browser/index.html +202 -0
- package/demos/oauth2-browser/logo.svg +4 -0
- package/demos/oauth2-browser/package-lock.json +163 -0
- package/demos/oauth2-browser/package.json +18 -0
- package/demos/oauth2-browser/style.css +36 -0
- package/demos/vue/.babelrc +6 -0
- package/demos/vue/.env.example +8 -0
- package/demos/vue/README.md +17 -0
- package/demos/vue/index.html +21 -0
- package/demos/vue/package-lock.json +7236 -0
- package/demos/vue/package.json +39 -0
- package/demos/vue/src/assets/logo.svg +29 -0
- package/demos/vue/src/components/App.vue +302 -0
- package/demos/vue/src/components/Authenticate.vue +68 -0
- package/demos/vue/src/components/Loader.vue +216 -0
- package/demos/vue/src/main.js +75 -0
- package/demos/vue/webpack.config.js +84 -0
- package/docs/FAQ.md +28 -0
- package/docs/HISTORY.md +62 -0
- package/docs/acetate.config.js +214 -0
- package/docs/build-typedoc.js +301 -0
- package/docs/src/_layout.html +82 -0
- package/docs/src/api/_declaration.html +496 -0
- package/docs/src/api/_layout.html +127 -0
- package/docs/src/api/_package.html +13 -0
- package/docs/src/api/index.html +23 -0
- package/docs/src/guides/_layout.html +24 -0
- package/docs/src/guides/amd-requirejs-dojo.md +40 -0
- package/docs/src/guides/babel-and-rollup.md +30 -0
- package/docs/src/guides/babel-and-webpack.md +30 -0
- package/docs/src/guides/browser-authentication.md +9 -0
- package/docs/src/guides/browserify.md +9 -0
- package/docs/src/guides/cli-authentication.md +9 -0
- package/docs/src/guides/client-server-authentication.md +9 -0
- package/docs/src/guides/from-a-cdn.md +36 -0
- package/docs/src/guides/index.md +52 -0
- package/docs/src/guides/node.md +30 -0
- package/docs/src/guides/package-overview.md +8 -0
- package/docs/src/guides/server-authentication.md +9 -0
- package/docs/src/guides/typescript-and-webpack.md +9 -0
- package/docs/src/img/icons.png +0 -0
- package/docs/src/img/icons@2x.png +0 -0
- package/docs/src/index.html +12 -0
- package/docs/src/js/api-search.js +113 -0
- package/docs/src/js/index.js +1 -0
- package/docs/src/js/nav-toggle.js +41 -0
- package/docs/src/sass/_highlight.scss +96 -0
- package/docs/src/sass/_icons.scss +157 -0
- package/docs/src/sass/style.scss +169 -0
- package/jasmine.json +7 -0
- package/karma.conf.js +100 -0
- package/lerna.json +8 -0
- package/notes/README.md +88 -0
- package/package.json +91 -0
- package/packages/arcgis-rest-auth/README.md +64 -0
- package/packages/arcgis-rest-auth/package-lock.json +11 -0
- package/packages/arcgis-rest-auth/package.json +51 -0
- package/packages/arcgis-rest-auth/src/ApplicationSession.ts +91 -0
- package/packages/arcgis-rest-auth/src/UserSession.ts +829 -0
- package/packages/arcgis-rest-auth/src/authenticated-request-options.ts +21 -0
- package/packages/arcgis-rest-auth/src/fetch-token.ts +55 -0
- package/packages/arcgis-rest-auth/src/generate-token.ts +36 -0
- package/packages/arcgis-rest-auth/src/index.ts +5 -0
- package/packages/arcgis-rest-auth/test/ApplicationSession.test.ts +121 -0
- package/packages/arcgis-rest-auth/test/UserSession.test.ts +883 -0
- package/packages/arcgis-rest-auth/test/fetchToken.test.ts +76 -0
- package/packages/arcgis-rest-auth/test/generateToken.test.ts +36 -0
- package/packages/arcgis-rest-auth/test/utils.ts +11 -0
- package/packages/arcgis-rest-auth/tsconfig.json +6 -0
- package/packages/arcgis-rest-common-types/README.md +61 -0
- package/packages/arcgis-rest-common-types/package.json +38 -0
- package/packages/arcgis-rest-common-types/src/group.ts +51 -0
- package/packages/arcgis-rest-common-types/src/index.ts +467 -0
- package/packages/arcgis-rest-common-types/src/item.ts +45 -0
- package/packages/arcgis-rest-common-types/src/webmap.ts +1225 -0
- package/packages/arcgis-rest-common-types/tsconfig.json +11 -0
- package/packages/arcgis-rest-feature-service/README.md +70 -0
- package/packages/arcgis-rest-feature-service/package-lock.json +11 -0
- package/packages/arcgis-rest-feature-service/package.json +50 -0
- package/packages/arcgis-rest-feature-service/src/add.ts +82 -0
- package/packages/arcgis-rest-feature-service/src/addAttachment.ts +65 -0
- package/packages/arcgis-rest-feature-service/src/delete.ts +85 -0
- package/packages/arcgis-rest-feature-service/src/deleteAttachments.ts +68 -0
- package/packages/arcgis-rest-feature-service/src/getAttachments.ts +64 -0
- package/packages/arcgis-rest-feature-service/src/helpers.ts +77 -0
- package/packages/arcgis-rest-feature-service/src/index.ts +8 -0
- package/packages/arcgis-rest-feature-service/src/query.ts +174 -0
- package/packages/arcgis-rest-feature-service/src/update.ts +81 -0
- package/packages/arcgis-rest-feature-service/src/updateAttachment.ts +74 -0
- package/packages/arcgis-rest-feature-service/test/attachments.test.ts +179 -0
- package/packages/arcgis-rest-feature-service/test/features.test.ts +172 -0
- package/packages/arcgis-rest-feature-service/test/mocks/feature.ts +220 -0
- package/packages/arcgis-rest-feature-service/test/mocks/foo.txt +1 -0
- package/packages/arcgis-rest-feature-service/tsconfig.json +6 -0
- package/packages/arcgis-rest-geocoder/README.md +73 -0
- package/packages/arcgis-rest-geocoder/package-lock.json +11 -0
- package/packages/arcgis-rest-geocoder/package.json +52 -0
- package/packages/arcgis-rest-geocoder/src/bulk.ts +102 -0
- package/packages/arcgis-rest-geocoder/src/geocode.ts +117 -0
- package/packages/arcgis-rest-geocoder/src/helpers.ts +81 -0
- package/packages/arcgis-rest-geocoder/src/index.ts +4 -0
- package/packages/arcgis-rest-geocoder/src/reverse.ts +84 -0
- package/packages/arcgis-rest-geocoder/src/suggest.ts +72 -0
- package/packages/arcgis-rest-geocoder/test/geocoder.test.ts +510 -0
- package/packages/arcgis-rest-geocoder/test/mocks/responses.ts +588 -0
- package/packages/arcgis-rest-geocoder/tsconfig.json +6 -0
- package/packages/arcgis-rest-groups/README.md +64 -0
- package/packages/arcgis-rest-groups/package-lock.json +11 -0
- package/packages/arcgis-rest-groups/package.json +52 -0
- package/packages/arcgis-rest-groups/src/groups.ts +272 -0
- package/packages/arcgis-rest-groups/src/index.ts +1 -0
- package/packages/arcgis-rest-groups/test/groups.test.ts +280 -0
- package/packages/arcgis-rest-groups/test/mocks/responses.ts +137 -0
- package/packages/arcgis-rest-groups/tsconfig.json +6 -0
- package/packages/arcgis-rest-items/README.md +66 -0
- package/packages/arcgis-rest-items/package-lock.json +11 -0
- package/packages/arcgis-rest-items/package.json +52 -0
- package/packages/arcgis-rest-items/src/index.ts +1 -0
- package/packages/arcgis-rest-items/src/items.ts +498 -0
- package/packages/arcgis-rest-items/test/items.test.ts +1153 -0
- package/packages/arcgis-rest-items/test/mocks/foo.zip +0 -0
- package/packages/arcgis-rest-items/test/mocks/item.ts +30 -0
- package/packages/arcgis-rest-items/test/mocks/resources.ts +28 -0
- package/packages/arcgis-rest-items/test/mocks/search.ts +60 -0
- package/packages/arcgis-rest-items/tsconfig.json +6 -0
- package/packages/arcgis-rest-request/README.md +65 -0
- package/packages/arcgis-rest-request/package-lock.json +11 -0
- package/packages/arcgis-rest-request/package.json +42 -0
- package/packages/arcgis-rest-request/src/index.ts +10 -0
- package/packages/arcgis-rest-request/src/request.ts +259 -0
- package/packages/arcgis-rest-request/src/utils/ArcGISAuthError.ts +67 -0
- package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +73 -0
- package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
- package/packages/arcgis-rest-request/src/utils/check-for-errors.ts +65 -0
- package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +29 -0
- package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +23 -0
- package/packages/arcgis-rest-request/src/utils/get-portal-url.ts +25 -0
- package/packages/arcgis-rest-request/src/utils/get-portal.ts +45 -0
- package/packages/arcgis-rest-request/src/utils/process-params.ts +99 -0
- package/packages/arcgis-rest-request/test/mocks/errors.ts +59 -0
- package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +10 -0
- package/packages/arcgis-rest-request/test/mocks/portal.ts +109 -0
- package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +38 -0
- package/packages/arcgis-rest-request/test/mocks/webmap.ts +38 -0
- package/packages/arcgis-rest-request/test/request.test.ts +296 -0
- package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +167 -0
- package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +40 -0
- package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +101 -0
- package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +112 -0
- package/packages/arcgis-rest-request/test/utils/get-portal-url.test.ts +34 -0
- package/packages/arcgis-rest-request/test/utils/portal.test.ts +94 -0
- package/packages/arcgis-rest-request/test/utils/process-params.test.ts +190 -0
- package/packages/arcgis-rest-request/tsconfig.json +6 -0
- package/packages/arcgis-rest-sharing/README.md +67 -0
- package/packages/arcgis-rest-sharing/package-lock.json +11 -0
- package/packages/arcgis-rest-sharing/package.json +55 -0
- package/packages/arcgis-rest-sharing/src/access.ts +91 -0
- package/packages/arcgis-rest-sharing/src/group-sharing.ts +212 -0
- package/packages/arcgis-rest-sharing/src/helpers.ts +92 -0
- package/packages/arcgis-rest-sharing/src/index.ts +2 -0
- package/packages/arcgis-rest-sharing/test/access.test.ts +153 -0
- package/packages/arcgis-rest-sharing/test/group-sharing.test.ts +436 -0
- package/packages/arcgis-rest-sharing/test/mocks/sharing.ts +15 -0
- package/packages/arcgis-rest-sharing/tsconfig.json +6 -0
- package/packages/arcgis-rest-users/README.md +71 -0
- package/packages/arcgis-rest-users/package-lock.json +11 -0
- package/packages/arcgis-rest-users/package.json +51 -0
- package/packages/arcgis-rest-users/src/index.ts +1 -0
- package/packages/arcgis-rest-users/src/users.ts +70 -0
- package/packages/arcgis-rest-users/test/mocks/responses.ts +170 -0
- package/packages/arcgis-rest-users/test/users.test.ts +97 -0
- package/packages/arcgis-rest-users/tsconfig.json +6 -0
- package/support/FormData.d.ts +1 -0
- package/support/changelog.js +388 -0
- package/support/commit-template.txt +19 -0
- package/support/deploy-doc-site.js +16 -0
- package/support/publish.sh +40 -0
- package/support/test-helpers.js +8 -0
- package/tsconfig.json +69 -0
- package/tslint.json +14 -0
- package/umd-base-profile.js +82 -0
- package/umd-production-profile.js +13 -0
package/.prettierignore
ADDED
package/.travis.yml
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
language: node_js
|
2
|
+
sudo: false
|
3
|
+
notifications:
|
4
|
+
email: false
|
5
|
+
node_js:
|
6
|
+
- "8"
|
7
|
+
- "10"
|
8
|
+
cache:
|
9
|
+
directories: # Cache dependencies
|
10
|
+
- node_modules
|
11
|
+
before_script:
|
12
|
+
- npm run bootstrap
|
13
|
+
script:
|
14
|
+
- npm run test:ci
|
15
|
+
deploy:
|
16
|
+
provider: pages
|
17
|
+
skip_cleanup: true
|
18
|
+
github_token: $GITHUB_TOKEN # Set in travis-ci.org dashboard
|
19
|
+
on:
|
20
|
+
branch: master
|
21
|
+
local-dir: docs/build
|
22
|
+
target_branch: gh-pages
|
23
|
+
before_deploy:
|
24
|
+
- npm run docs:build
|
25
|
+
env:
|
26
|
+
- MOZ_HEADLESS=1
|
27
|
+
addons:
|
28
|
+
chrome: stable
|
29
|
+
firefox: latest
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
// Use IntelliSense to learn about possible Node.js debug attributes.
|
3
|
+
// Hover to view descriptions of existing attributes.
|
4
|
+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
5
|
+
"version": "0.2.0",
|
6
|
+
"configurations": [
|
7
|
+
{
|
8
|
+
"type": "node",
|
9
|
+
"request": "launch",
|
10
|
+
"name": "Debug Node Tests",
|
11
|
+
"program": "${workspaceRoot}/node_modules/.bin/jasmine",
|
12
|
+
"args": [
|
13
|
+
"--config=jasmine.json"
|
14
|
+
]
|
15
|
+
},
|
16
|
+
{
|
17
|
+
"type": "node",
|
18
|
+
"request": "launch",
|
19
|
+
"name": "Debug Changelog Script",
|
20
|
+
"program": "${workspaceRoot}/support/changelog.js",
|
21
|
+
"args": ["--config=jasmine.json"]
|
22
|
+
}
|
23
|
+
]
|
24
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Node CLI Examples
|
2
|
+
|
3
|
+
This demo shows how to create a command-line application that interacts with the ArcGIS Online API.
|
4
|
+
|
5
|
+
At this point, the commands are very simple and intended to demonstrate how to build up tooling.
|
6
|
+
|
7
|
+
This project uses the `commander` module, which streamlines the creation of node cli applications. Check out the [README](https://github.com/tj/commander.js/blob/master/Readme.md) for more details.
|
8
|
+
|
9
|
+
### Installing
|
10
|
+
|
11
|
+
Like all the other demo apps, run `npm run bootstrap` from the root.
|
12
|
+
|
13
|
+
### Running
|
14
|
+
If you use this demo as a starting point for your own command line package, you would publish it to npm, then on the target systems run `npm install <your-cli-package>`, and it would be available as a command.
|
15
|
+
|
16
|
+
But, this is demo code, and thus the package is not "installed" via `npm install ...`, before we can call it as `ago <command> <query>` we need to run `npm link` in the `/demos/ago-node-cli` folder. After you do that, the command should work.
|
17
|
+
|
18
|
+
Here is a post with information on creating node command line tools: [A Guide to Creating a NodeJs Command](https://x-team.com/blog/a-guide-to-creating-a-nodejs-command/)
|
19
|
+
|
20
|
+
### Commands
|
21
|
+
|
22
|
+
| command | description | example |
|
23
|
+
| --- | --- | --- |
|
24
|
+
| `ago search <query>` | search for items | `ago search water` |
|
25
|
+
| `ago export <id> <file>` | export an item to a json file | `ago export a62cb9d894f145cc89531c096d0012b1 pa.json` |
|
26
|
+
|
27
|
+
## Building your own tooling
|
28
|
+
|
29
|
+
If you want to build out some commands of your own, you can also clone a stand-alone version of this repo from https://github.com/dbouwman/arcgis-rest-js-commands
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env node
|
2
|
+
require('isomorphic-fetch');
|
3
|
+
require('isomorphic-form-data');
|
4
|
+
/**
|
5
|
+
* This demo uses the commander module, which streamlines the creation of command-line-applications
|
6
|
+
*/
|
7
|
+
const program = require('commander');
|
8
|
+
|
9
|
+
program
|
10
|
+
.version('0.0.1');
|
11
|
+
|
12
|
+
/**
|
13
|
+
* Bring in the search command...
|
14
|
+
*/
|
15
|
+
const itemSearchCommand = require('./lib/item-search-command');
|
16
|
+
|
17
|
+
program
|
18
|
+
.command('search <query>')
|
19
|
+
.description('Search for items')
|
20
|
+
.action(function (query) {
|
21
|
+
itemSearchCommand.execute(query);
|
22
|
+
});
|
23
|
+
|
24
|
+
const itemExportCommand = require('./lib/item-export-command');
|
25
|
+
program
|
26
|
+
.command('export <itemId> <filename>')
|
27
|
+
.description('Export an item to a json file')
|
28
|
+
.action(function (id, filename) {
|
29
|
+
itemExportCommand.execute(id, filename);
|
30
|
+
});
|
31
|
+
|
32
|
+
program.parse(process.argv);
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/**
|
2
|
+
* Re-export the commands so they can be used in other contexts
|
3
|
+
*/
|
4
|
+
const itemSearchCommand = require('./lib/item-search-command');
|
5
|
+
const itemExportCommand = require('./lib/item-export-command');
|
6
|
+
|
7
|
+
// just re-export the commands so they can be run in another scropt
|
8
|
+
module.exports = {
|
9
|
+
search: itemSearchCommand,
|
10
|
+
export: itemExportCommand
|
11
|
+
};
|
@@ -0,0 +1,48 @@
|
|
1
|
+
const { getItem, getItemData } = require("@esri/arcgis-rest-items");
|
2
|
+
const jsonfile = require('jsonfile');
|
3
|
+
|
4
|
+
module.exports = {
|
5
|
+
/**
|
6
|
+
* Execute the command
|
7
|
+
*/
|
8
|
+
execute: function (id, fileName) {
|
9
|
+
console.info(`Exporting item ${id} to file ${fileName}`);
|
10
|
+
// construct the search call..
|
11
|
+
let model = {};
|
12
|
+
return getItem(id)
|
13
|
+
.then((item) => {
|
14
|
+
model.item = item;
|
15
|
+
if (this.shouldFetchData(item.type)){
|
16
|
+
console.info(`...Fetching ./data for item of type ${item.type}`);
|
17
|
+
return getItemData(id);
|
18
|
+
} else {
|
19
|
+
console.info(`...Items of type ${item.type} do not have json ./data - skipping`);
|
20
|
+
return Promise.resolve();
|
21
|
+
}
|
22
|
+
})
|
23
|
+
.then((maybeData) => {
|
24
|
+
if (maybeData) {
|
25
|
+
model.data = maybeData;
|
26
|
+
}
|
27
|
+
// now write out the file...
|
28
|
+
jsonfile.writeFileSync(fileName, model, {spaces: 2});
|
29
|
+
console.info(`Done. Exported "${model.item.title}" to ${fileName}`);
|
30
|
+
})
|
31
|
+
.catch((err) => {
|
32
|
+
console.error(err);
|
33
|
+
});
|
34
|
+
},
|
35
|
+
|
36
|
+
/**
|
37
|
+
* Not all item types have json /data
|
38
|
+
*/
|
39
|
+
shouldFetchData (type) {
|
40
|
+
let result = false;
|
41
|
+
let exportables = ['Web Map', 'Web Mapping Application', 'Hub Page', 'Hub Initiative', 'Hub Site Application'];
|
42
|
+
// if the type is in this list, we can export it...
|
43
|
+
if (exportables.indexOf(type) > -1) {
|
44
|
+
result = true;
|
45
|
+
}
|
46
|
+
return result;
|
47
|
+
}
|
48
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
|
2
|
+
/**
|
3
|
+
* Bring in searchItems fn
|
4
|
+
*/
|
5
|
+
const { searchItems } = require("@esri/arcgis-rest-items");
|
6
|
+
|
7
|
+
module.exports = {
|
8
|
+
/**
|
9
|
+
* Execute the command
|
10
|
+
*/
|
11
|
+
execute: function (query) {
|
12
|
+
// construct the search call..
|
13
|
+
return searchItems({
|
14
|
+
searchForm: {
|
15
|
+
q: query,
|
16
|
+
start: 1,
|
17
|
+
num: 10
|
18
|
+
}
|
19
|
+
})
|
20
|
+
.then((response) => {
|
21
|
+
// if we got results
|
22
|
+
if (Array.isArray(response.results) && response.results.length) {
|
23
|
+
console.info(`${response.total} items found for "${query}".`);
|
24
|
+
response.results.forEach((entry) => {
|
25
|
+
console.info(`${entry.id} | ${entry.title}`);
|
26
|
+
})
|
27
|
+
} else {
|
28
|
+
console.info(`No results found for "${query}".`);
|
29
|
+
}
|
30
|
+
})
|
31
|
+
.catch((err) => {
|
32
|
+
console.error(err);
|
33
|
+
});
|
34
|
+
}
|
35
|
+
}
|
@@ -0,0 +1,172 @@
|
|
1
|
+
{
|
2
|
+
"requires": true,
|
3
|
+
"lockfileVersion": 1,
|
4
|
+
"dependencies": {
|
5
|
+
"ansi-styles": {
|
6
|
+
"version": "3.2.0",
|
7
|
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
|
8
|
+
"integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
|
9
|
+
"requires": {
|
10
|
+
"color-convert": "^1.9.0"
|
11
|
+
}
|
12
|
+
},
|
13
|
+
"async": {
|
14
|
+
"version": "2.6.0",
|
15
|
+
"resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
|
16
|
+
"integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
|
17
|
+
"requires": {
|
18
|
+
"lodash": "^4.14.0"
|
19
|
+
}
|
20
|
+
},
|
21
|
+
"chalk": {
|
22
|
+
"version": "2.3.1",
|
23
|
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz",
|
24
|
+
"integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==",
|
25
|
+
"requires": {
|
26
|
+
"ansi-styles": "^3.2.0",
|
27
|
+
"escape-string-regexp": "^1.0.5",
|
28
|
+
"supports-color": "^5.2.0"
|
29
|
+
}
|
30
|
+
},
|
31
|
+
"color-convert": {
|
32
|
+
"version": "1.9.1",
|
33
|
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
|
34
|
+
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
|
35
|
+
"requires": {
|
36
|
+
"color-name": "^1.1.1"
|
37
|
+
}
|
38
|
+
},
|
39
|
+
"color-name": {
|
40
|
+
"version": "1.1.3",
|
41
|
+
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
42
|
+
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
43
|
+
},
|
44
|
+
"combined-stream": {
|
45
|
+
"version": "1.0.6",
|
46
|
+
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
|
47
|
+
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
|
48
|
+
"requires": {
|
49
|
+
"delayed-stream": "~1.0.0"
|
50
|
+
}
|
51
|
+
},
|
52
|
+
"commander": {
|
53
|
+
"version": "2.14.1",
|
54
|
+
"resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
|
55
|
+
"integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="
|
56
|
+
},
|
57
|
+
"delayed-stream": {
|
58
|
+
"version": "1.0.0",
|
59
|
+
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
60
|
+
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
|
61
|
+
},
|
62
|
+
"encoding": {
|
63
|
+
"version": "0.1.12",
|
64
|
+
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
|
65
|
+
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
|
66
|
+
"requires": {
|
67
|
+
"iconv-lite": "~0.4.13"
|
68
|
+
}
|
69
|
+
},
|
70
|
+
"escape-string-regexp": {
|
71
|
+
"version": "1.0.5",
|
72
|
+
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
73
|
+
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
|
74
|
+
},
|
75
|
+
"form-data": {
|
76
|
+
"version": "1.0.1",
|
77
|
+
"resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz",
|
78
|
+
"integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=",
|
79
|
+
"requires": {
|
80
|
+
"async": "^2.0.1",
|
81
|
+
"combined-stream": "^1.0.5",
|
82
|
+
"mime-types": "^2.1.11"
|
83
|
+
}
|
84
|
+
},
|
85
|
+
"graceful-fs": {
|
86
|
+
"version": "4.1.11",
|
87
|
+
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
|
88
|
+
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
|
89
|
+
"optional": true
|
90
|
+
},
|
91
|
+
"has-flag": {
|
92
|
+
"version": "3.0.0",
|
93
|
+
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
94
|
+
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
95
|
+
},
|
96
|
+
"iconv-lite": {
|
97
|
+
"version": "0.4.19",
|
98
|
+
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
|
99
|
+
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
|
100
|
+
},
|
101
|
+
"is-stream": {
|
102
|
+
"version": "1.1.0",
|
103
|
+
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
|
104
|
+
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
|
105
|
+
},
|
106
|
+
"isomorphic-fetch": {
|
107
|
+
"version": "2.2.1",
|
108
|
+
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
|
109
|
+
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
|
110
|
+
"requires": {
|
111
|
+
"node-fetch": "^1.0.1",
|
112
|
+
"whatwg-fetch": ">=0.10.0"
|
113
|
+
}
|
114
|
+
},
|
115
|
+
"isomorphic-form-data": {
|
116
|
+
"version": "1.0.0",
|
117
|
+
"resolved": "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-1.0.0.tgz",
|
118
|
+
"integrity": "sha1-BEe+fg9rht7z05MDbPdmSpiRkQA=",
|
119
|
+
"requires": {
|
120
|
+
"form-data": "^1.0.0-rc3"
|
121
|
+
}
|
122
|
+
},
|
123
|
+
"jsonfile": {
|
124
|
+
"version": "4.0.0",
|
125
|
+
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
126
|
+
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
|
127
|
+
"requires": {
|
128
|
+
"graceful-fs": "^4.1.6"
|
129
|
+
}
|
130
|
+
},
|
131
|
+
"lodash": {
|
132
|
+
"version": "4.17.5",
|
133
|
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
|
134
|
+
"integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
|
135
|
+
},
|
136
|
+
"mime-db": {
|
137
|
+
"version": "1.30.0",
|
138
|
+
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
|
139
|
+
"integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
|
140
|
+
},
|
141
|
+
"mime-types": {
|
142
|
+
"version": "2.1.17",
|
143
|
+
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
|
144
|
+
"integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
|
145
|
+
"requires": {
|
146
|
+
"mime-db": "~1.30.0"
|
147
|
+
}
|
148
|
+
},
|
149
|
+
"node-fetch": {
|
150
|
+
"version": "1.7.3",
|
151
|
+
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
|
152
|
+
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
|
153
|
+
"requires": {
|
154
|
+
"encoding": "^0.1.11",
|
155
|
+
"is-stream": "^1.0.1"
|
156
|
+
}
|
157
|
+
},
|
158
|
+
"supports-color": {
|
159
|
+
"version": "5.2.0",
|
160
|
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz",
|
161
|
+
"integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==",
|
162
|
+
"requires": {
|
163
|
+
"has-flag": "^3.0.0"
|
164
|
+
}
|
165
|
+
},
|
166
|
+
"whatwg-fetch": {
|
167
|
+
"version": "2.0.3",
|
168
|
+
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz",
|
169
|
+
"integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ="
|
170
|
+
}
|
171
|
+
}
|
172
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"name": "node-cli",
|
3
|
+
"version": "1.6.0",
|
4
|
+
"description": "arcgis-rest-js node command-line item search example",
|
5
|
+
"main": "ago.js",
|
6
|
+
"scripts": {
|
7
|
+
"start": "echo \"CLI - node index.js <search>\" && exit 1"
|
8
|
+
},
|
9
|
+
"bin": {
|
10
|
+
"ago": "./ago.js"
|
11
|
+
},
|
12
|
+
"private": true,
|
13
|
+
"keywords": [
|
14
|
+
"arcgis",
|
15
|
+
"node",
|
16
|
+
"arcgis-rest-js"
|
17
|
+
],
|
18
|
+
"author": "Dave Bouwman <dbouwman@esri.com>",
|
19
|
+
"license": "Apache-2.0",
|
20
|
+
"dependencies": {
|
21
|
+
"@esri/arcgis-rest-auth": "^1.6.0",
|
22
|
+
"@esri/arcgis-rest-items": "^1.6.0",
|
23
|
+
"@esri/arcgis-rest-request": "^1.6.0",
|
24
|
+
"chalk": "^2.3.0",
|
25
|
+
"commander": "^2.12.2",
|
26
|
+
"isomorphic-fetch": "^2.2.1",
|
27
|
+
"isomorphic-form-data": "^1.0.0",
|
28
|
+
"jsonfile": "^4.0.0"
|
29
|
+
}
|
30
|
+
}
|
@@ -0,0 +1,164 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<title>Attachments</title>
|
4
|
+
|
5
|
+
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
6
|
+
|
7
|
+
<script src="https://cdn.polyfill.io/v2/polyfill.js?features=es5,Promise,fetch"></script>
|
8
|
+
|
9
|
+
<div class="container-fluid">
|
10
|
+
<div class="row">
|
11
|
+
<div class="col-md-12">
|
12
|
+
<h3>Attachments</h3>
|
13
|
+
<form id="getForm">
|
14
|
+
<div class="form-group">
|
15
|
+
<label for="serviceUrl">Service URL</label>
|
16
|
+
<input type="text" id="serviceUrl" name="serviceUrl" class="form-control" value="http://sampleserver6.arcgisonline.com/arcgis/rest/services/SF311/FeatureServer/0/" required>
|
17
|
+
</div>
|
18
|
+
<div class="form-group">
|
19
|
+
<label for="featureId">Feature ID</label>
|
20
|
+
<input type="number" min="0" step="1" id="featureId" name="featureId" class="form-control" value="3339970" required>
|
21
|
+
</div>
|
22
|
+
<div class="form-group">
|
23
|
+
<button type="submit" class="btn"><span class="glyphicon glyphicon-paperclip" aria-hidden="true"></span> Get Attachments</button>
|
24
|
+
</div>
|
25
|
+
</form>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
<div class="row">
|
29
|
+
<div class="col-md-12">
|
30
|
+
<form id="addForm">
|
31
|
+
<div class="form-group">
|
32
|
+
<label for="attachFile">File</label>
|
33
|
+
<input type="file" id="attachFile" name="attachFile" required>
|
34
|
+
</div>
|
35
|
+
<div class="form-group">
|
36
|
+
<button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add Attachment</button>
|
37
|
+
</div>
|
38
|
+
</form>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
<div class="row">
|
42
|
+
<div class="col-md-12">
|
43
|
+
<p id="resultMessage"></p>
|
44
|
+
<table class="table table-striped">
|
45
|
+
<thead>
|
46
|
+
<th>Attachment ID</th>
|
47
|
+
<th>Content Type</th>
|
48
|
+
<th>Size</th>
|
49
|
+
<th>Attachment</th>
|
50
|
+
<th>Delete</th>
|
51
|
+
</thead>
|
52
|
+
<tbody id="result"></tbody>
|
53
|
+
</table>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
|
58
|
+
<script src="https://rawgit.com/kriszyp/put-selector/master/put.js"></script>
|
59
|
+
<script src="node_modules/@esri/arcgis-rest-request/dist/umd/request.umd.js"></script>
|
60
|
+
<script src="node_modules/@esri/arcgis-rest-feature-service/dist/umd/feature-service.umd.js"></script>
|
61
|
+
|
62
|
+
<script>
|
63
|
+
let serviceUrl, featureId;
|
64
|
+
|
65
|
+
let validService = false;
|
66
|
+
|
67
|
+
// ref some nodes
|
68
|
+
const getForm = document.getElementById('getForm');
|
69
|
+
const addForm = document.getElementById('addForm');
|
70
|
+
const resultMessage = document.getElementById('resultMessage');
|
71
|
+
const result = document.getElementById('result');
|
72
|
+
|
73
|
+
// delete attachment and get again to update table rows
|
74
|
+
const deleteAttachment = attachmentId => {
|
75
|
+
arcgisRest.deleteAttachments({
|
76
|
+
url: serviceUrl,
|
77
|
+
featureId: featureId,
|
78
|
+
attachmentIds: [attachmentId]
|
79
|
+
}).then(res => {
|
80
|
+
console.log(res);
|
81
|
+
arcgisRest.getAttachments({
|
82
|
+
url: serviceUrl,
|
83
|
+
featureId: featureId
|
84
|
+
}).then(getResponse).catch(getError);
|
85
|
+
}).catch(err => {
|
86
|
+
console.log(err);
|
87
|
+
alert(err.message + ' Check the console for more details.');
|
88
|
+
});
|
89
|
+
}
|
90
|
+
|
91
|
+
// handle get attachments response and create table rows
|
92
|
+
const getResponse = res => {
|
93
|
+
console.log(res);
|
94
|
+
const infos = res.attachmentInfos;
|
95
|
+
validService = true;
|
96
|
+
resultMessage.innerHTML = 'Feature has ' + infos.length + ' attachments.';
|
97
|
+
result.innerHTML = '';
|
98
|
+
if (infos.length) {
|
99
|
+
infos.forEach(info => {
|
100
|
+
const tr = put(result, 'tr');
|
101
|
+
put(tr, 'td', info.id);
|
102
|
+
put(tr, 'td', info.contentType);
|
103
|
+
put(tr, 'td', info.size);
|
104
|
+
put(tr, 'td a.btn.btn-primary', {
|
105
|
+
target: '_blank',
|
106
|
+
href: serviceUrl + '/' + featureId + '/attachments/' + info.id,
|
107
|
+
innerHTML: '<span class="glyphicon glyphicon-file" aria-hidden="true"></span> ' + info.name
|
108
|
+
});
|
109
|
+
put(tr, 'td a.btn.btn-danger', {
|
110
|
+
href: '#',
|
111
|
+
innerHTML: '<span class="glyphicon glyphicon-remove" aria-hidden="true"></span> ' + info.name,
|
112
|
+
onclick: evt => {
|
113
|
+
evt.preventDefault();
|
114
|
+
deleteAttachment(info.id);
|
115
|
+
}
|
116
|
+
});
|
117
|
+
});
|
118
|
+
}
|
119
|
+
};
|
120
|
+
|
121
|
+
// handle get attachments error
|
122
|
+
const getError = err => {
|
123
|
+
console.log(err);
|
124
|
+
validService = false;
|
125
|
+
resultMessage.innerHTML = err.message + ' Check the console for more details.';
|
126
|
+
result.innerHTML = '';
|
127
|
+
}
|
128
|
+
|
129
|
+
// handle get attachments form submit
|
130
|
+
getForm.addEventListener('submit', function (evt) {
|
131
|
+
evt.preventDefault();
|
132
|
+
arcgisRest.getAttachments({
|
133
|
+
url: serviceUrl = getForm.serviceUrl.value,
|
134
|
+
featureId: featureId = getForm.featureId.value
|
135
|
+
}).then(getResponse).catch(getError);
|
136
|
+
});
|
137
|
+
|
138
|
+
// handle add attachment form submit and get again to update table rows
|
139
|
+
addForm.addEventListener('submit', function (evt) {
|
140
|
+
evt.preventDefault();
|
141
|
+
if (!validService) {
|
142
|
+
alert('Not so fast. Start by getting a feature\'s attachments first.');
|
143
|
+
return;
|
144
|
+
}
|
145
|
+
arcgisRest.addAttachment({
|
146
|
+
url: serviceUrl,
|
147
|
+
featureId: featureId,
|
148
|
+
attachment: evt.target.attachFile.files[0],
|
149
|
+
params: {
|
150
|
+
returnEditMoment: true
|
151
|
+
}
|
152
|
+
}).then(res => {
|
153
|
+
console.log(res);
|
154
|
+
arcgisRest.getAttachments({
|
155
|
+
url: serviceUrl,
|
156
|
+
featureId: featureId
|
157
|
+
}).then(getResponse).catch(getError);
|
158
|
+
}).catch(err => {
|
159
|
+
console.log(err);
|
160
|
+
alert(err.message + ' Check the console for more details.');
|
161
|
+
});
|
162
|
+
});
|
163
|
+
</script>
|
164
|
+
</html>
|