zapier / zapier-platform-cli Goto Github PK
View Code? Open in Web Editor NEW:computer: Build Zapier integrations and test locally using the JavaScript tools you already know.
Home Page: https://zapier.github.io/zapier-platform-cli/
:computer: Build Zapier integrations and test locally using the JavaScript tools you already know.
Home Page: https://zapier.github.io/zapier-platform-cli/
I'm trying to implement OAuth2 and it's failing after the redirect stage.
I have put a z.console.log
in the getAccessToken
function and it is never being called. Any ideas what the problem could be?
To clarify, it is hitting the authorize endpoint fine, and redirecting to redirect_uri
with a code generated by our server.
Hi I'm just trying to build and publish a sample app and with any app i try I always get these issue
`zapier validate
Validating project locally.
┌─────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Property │ App.creates.recipe │
│ Message │ additionalProperty "sample" exists in instance when not allowed │
│ Links │ https://github.com/zapier/zapier-platform-schema/blob/v1.0.10/docs/build/schema.md#createschema │
│ │
│ Property │ App.creates.recipe │
│ Message │ additionalProperty "outputFields" exists in instance when not allowed │
│ Links │ https://github.com/zapier/zapier-platform-schema/blob/v1.0.10/docs/build/schema.md#createschema │
└─────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────`
Right now we print partial information, I'd like to do:
redirect_uri
which is currently omitted)I noticed this when making a validation-related fix. zapier build
says it validates your project. It uses _appCommandZapierWrapper
, which in turn wraps core's schemaTools.validateApp
(source).
This is mostly fine, but that means any extra validation that happens as part of the validate
command (in this case, running style checks), only happens when validate
is called directly, but not during build
.
Resolution would be to wrap the validate
command in cli
rather than going straight to core
.
See discussion for reasoning behind changing this to a FR to support build numbers
I was able to publish an updated app without bumping its version.
I'd think publish would fail, telling me to bump the version to publish an update.
Like the README says:
An App Version is related to a specific App but is an "immutable" implementation of your app.
Maybe we should also consider following semver here? If an update is a patch or minor bump we should be able to migrate zaps without breaking them. If it is a major bump then we can't.
Version:
zapier-platform-cli/0.9.9
node/v4.3.2
I was trying to add a trigger to my app and got the following. search
and action
work fine
zapier scaffold trigger "Game" --debug
Adding trigger scaffold to your project.
ReferenceError: INPUT_FIELDS is not defined
at eval (lodash.templateSources[5]:23:11)
at /Users/david/projects/zapier-platform-cli/lib/commands/scaffold.js:53:69
at run (/Users/david/projects/zapier-platform-cli/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:87:22)
at /Users/david/projects/zapier-platform-cli/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:100:28
at flush (/Users/david/projects/zapier-platform-cli/node_modules/babel-polyfill/node_modules/core-js/modules/_microtask.js:18:9)
at nextTickCallbackWith0Args (node.js:415:9)
at process._tickDomainCallback (node.js:385:13)
Error!
When validating app with a resource that have list, search and create app tries to add searchOrCreate based on that resource, on validation it throws an error:
[ { "Property": "App.searchOrCreates.contactSearchOrCreate.display.description", "Message": "does not meet minimum length of 12", "Links": "" }, { "Property": "App.searchOrCreates.contactSearchOrCreate.key", "Message": "must match a \"key\" from a search (options: contactSearch)", "Links": "https://github.com/zapier/zapier-platform-schema/blob/v1.0.3/docs/build/schema.md#searchorcreateschema" } ]
I've tried to work it arround by manualy adding this searchOrCreate but I still got error
[ { "Property": "App.searchOrCreates.contactSearchOrCreate.key", "Message": "must match a \"key\" from a search (options: contactSearch)", "Links": "https://github.com/zapier/zapier-platform-schema/blob/v1.0.3/docs/build/schema.md#searchorcreateschema" } ]
It appears even if I add that key manualy with contactSearch value
After using scaffold to create a new resource, I get the following validation errors:
┌─────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Property │ App.searchOrCreates.clientSearchOrCreate.display.description │
│ Message │ does not meet minimum length of 12 │
│ Links │ │
│ │
│ Property │ App.searchOrCreates.clientSearchOrCreate.key │
│ Message │ must match a "key" from a search (options: clientSearch) │
│ Links │ https://github.com/zapier/zapier-platform-schema/blob/v1.0.3/docs/build/schema.md#searchorcreateschema │
└─────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┘
The only way I can get the app to pass validation is to remove the search method from the client resource export. I don't see a way to specify the required description.
Hey there! I'd like to use block-scoped declarations without manually specifying "use strict"
at the top of every javascript file. An alternate way of doing this is to pass the --use_strict
flag to node
or npm
when the app is run.
I've figured out how to do so so that zapier test
runs (added it to the "test" command in package.json), but I'm unsure of how to do so for zapier validate
. Is there a way I can pass build flags to commands such as that?
It's nice to conditionally require()
modules like so:
if (process.env.NODE_ENV !== 'production' && !process.env.RIOT_API_KEY) {
require('dotenv').load()
}
produces the following error:
Error: Cannot find module 'dotenv' from '/private/var/folders/dg/c2gwj6zx2n9_9zxsb4typ63m0000gn/T/zapier-a5d3418b'
at /Users/david/.nvm/versions/node/v6.6.0/lib/node_modules/zapier-platform-cli/node_modules/resolve/lib/async.js:46:17
at process (/Users/david/.nvm/versions/node/v6.6.0/lib/node_modules/zapier-platform-cli/node_modules/resolve/lib/async.js:173:43)
at ondir (/Users/david/.nvm/versions/node/v6.6.0/lib/node_modules/zapier-platform-cli/node_modules/resolve/lib/async.js:188:17)
at load (/Users/david/.nvm/versions/node/v6.6.0/lib/node_modules/zapier-platform-cli/node_modules/resolve/lib/async.js:69:43)
at onex (/Users/david/.nvm/versions/node/v6.6.0/lib/node_modules/zapier-platform-cli/node_modules/resolve/lib/async.js:92:31)
at /Users/david/.nvm/versions/node/v6.6.0/lib/node_modules/zapier-platform-cli/node_modules/resolve/lib/async.js:22:47
at FSReqWrap.oncomplete (fs.js:123:15)
I realize this specific action can use zapier.tools.env.inject()
, but it's still sometimes a useful pattern for testing
I've been using what I think is a much less magical way to test methods:
const App = require('../index');
const appTester = zapier.createAppTester(App);
// prefer:
appTester(App.authentication.test);
// instead of:
appTester('authentication.test');
// prefer:
appTester(App.resources.member.list.operation.perform);
// instead of:
appTester('member.list');
Missing zap details via bundle.zap (like in web interface version)
Spec.
https://zapier.com/developer/documentation/v2/built-functions-tools/
The tests for https://github.com/zapier/zapier-platform-example-app-files fail on:
3) hydrators uploadFile should download files:
only absolute urls are supported
We need to make sure the "tutorial" section works fine on Windows 7 as a part of QA'ing releases.
Some partners have reported an issue where inputFields
with altersDynamicFields: true
not being properly refreshed in the Zapier editor unless the "Refresh fields" button is clicked.
Some sample code:
const objectField = (z, bundle) => {
const appId = bundle.inputData.application_id;
if (!appId) return [];
return z.request('someUrl')
.then(res => {
return [{
key: 'object_id',
required: true,
label: 'Object',
choices: jsonArrayToChoices(res.json.data),
}];
});
};
...
inputFields: [
{
key: 'application_id',
required: true,
label: 'Application',
dynamic: 'applicationList.id.name',
altersDynamicFields: true
},
objectField,
],
...
This is has been confirmed and a solution is being investigated.
Found while using "zapier init appname --template=minimal"
Issue: Instead of replacing the start of the path by Home or UserProfile, FixHome function replace just the '~' and broke the path.
Here's an exemple:
Path before replace : "C:\Users\USERUS~1\AppData\Local\Temp\tmp-14492zVmPdO8Gh1LA"
Path after : "C:\Users\USERRGC:\Users\useruserus1\AppData\Local\Temp\tmp-26552m3v9enWUHF3D\zapier-template.zip"
Path after (with indication) : C:\Users\USERRG [[[C:\Users\useruserus]]] 1\AppData\Local\Temp\tmp-26552m3v9enWUHF3D\zapier-template.zip
Sugestion: Make a substring of the start of the path (between start and first index of '~')
I have an App using Zapier CLI 1.0.x and today I decided to upgrade to the latest version, and suddenly all integration tests working with appTester
are not working anymore.
After the App is deployed, everything is still working on Zapier.com, the problem occurs only with AppTester while running the mocha tests.
These are the steps I executed for the upgrade:
Now, if I try to execute any test with appTester, for example like this one which is working fine on Zapier 1.0.1, I get an odd error from the Zapier Core Framework:
it.('should authenticate service account', (done) => {
const bundle = {
authData: {
username: process.env.DEMO_USERNAME,
password: process.env.DEMO_PASSWORD,
tenant_id: process.env.DEMO_TENANT
}
};
appTester(Auth.authentication.sessionConfig.perform, bundle)
.then((result) => {
result.access_token.should.not.be.null();
result.refresh_token.should.not.be.null();
result.username.should.not.be.null();
result.user_id.should.not.be.null();
result.appUserId.should.not.be.null();
done();
})
.catch(done);
});
I get a very strange exception which I don't understand where is coming from:
Unhandled rejection SyntaxError: Invalid regular expression: /C:\Program Files\Microsoft MPI\Bin\/: \ at end of pattern
at RegExp (native)
at Object.keys.forEach (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\zapier-platform-core\src\tools\cleaner.js:38:18)
at Array.forEach (native)
at replacer (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\zapier-platform-core\src\tools\cleaner.js:36:23)
at recurseReplace (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\zapier-platform-core\src\tools\data.js:99:11)
at Object.recurseReplaceBank (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\zapier-platform-core\src\tools\cleaner.js:43:10)
at sendLog (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\zapier-platform-core\src\tools\create-logger.js:89:30)
at logErrorAndCallbackOnce (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\zapier-platform-core\src\tools\create-lambda-handler.js:60:7)
at Object.app.then.catch (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\zapier-platform-core\src\tools\create-lambda-handler.js:93:11)
at bound (domain.js:280:14)
at Object.runBound (domain.js:293:12)
at Object.tryCatcher (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\bluebird\js\release\promise.js:512:31)
at Promise._settlePromise (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\bluebird\js\release\promise.js:569:18)
at Promise._settlePromise0 (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\bluebird\js\release\promise.js:614:10)
at Promise._settlePromises (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\bluebird\js\release\promise.js:689:18)
at Async._drainQueue (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\bluebird\js\release\async.js:133:16)
at Async._drainQueues (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\bluebird\js\release\async.js:143:10)
at Immediate.Async.drainQueues (C:\DEV\GITHUB\ServiceHubCore\src\Mp.Sh.Zapier\node_modules\bluebird\js\release\async.js:17:14)
at runCallback (timers.js:666:20)
at tryOnImmediate (timers.js:639:5)
at processImmediate [as _immediateCallback] (timers.js:611:5)
The RESTHook example is fine to get started, but I think it could have some extra information.
For instance, I'm working with a legacy codebase. When you create a webhook, all events go to the URL you've provided. You can't subscribe to just one event.
With this in mind, I've created a RESTHook-style controller in our app. You can preform CRUD actions on webhooks, but you still get subscribed to every event. However, each event has it's name in the response, like so:
{
"event": "user.create",
"id": 0,
// ...
}
In short, here's what I'm wondering:
order.create
trigger firing on user.update
.bubdle.targetUrl
? If my webhook broadcasts on any event, it would be best to subscribe a trigger to an existing webhook instead of making a new, redundant webhook each time. I guess I'm looking to create an upsert
-style function for bundle.targtUrl
I've looked in the examples and the docs, but I couldn't find anything that touches on this. Any advice or links are appreciated! I'd also be happy to make a PR with updated docs if I sort this out.
Thank you!
There's still a lot of Oauth 1.0a apps which are poorly supported by the Web UI. A template based on oauth2 to accelerate development would be super helpful.
The tutorial has readers bounce back and forth between app/index.js
and test/index.js
. To make reading easier, it might be helpful to rename the test file to test/tests.js
so there is more of a distinction when we reference each.
When absentmindedly executing zapier [whatever]
from the wrong folder, the returned error message is:
Looks like your package.json is missing zapier-platform-core or you haven't run npm install yet!
Potentially something like the following might help:
Could not find your Zapier CLI app. Hint: Are you in the same folder as your `index.js` file?
It would be helpful to have an example app that shows how to read files. Key points to cover:
z.stashFile()
patternzapier convert XXX
is producing Sample Data like so:
module.exports = {
key: 'new_completed_ride',
noun: 'Completed Ride',
display: {
label: 'New Completed Ride',
description: 'Triggers when you complete a ride.'
},
operation: {
inputFields: [
],
sample: {
destination__address: {
type: 'string',
label: 'undefined'
},
destination__eta_seconds: {
type: 'string',
label: 'undefined'
},
destination__lat: {
type: 'string',
label: 'undefined'
},
destination__lng: {
type: 'string',
label: 'undefined'
},
driver__first_name: {
type: 'string',
label: 'undefined'
}
},
perform: triggerNewcompletedride
}
};
This should not be the case but instead something along the lines of {vehicle__model: 'example text'}
When Zapier turns a resource into corresponding triggers/searches/creates, we auto-compute a key for those generated operations. For example, if an app has a resource called "contact", the key for that action/create would be "contactCreate".
What happens if there's already an action defined with that key? We should have validate raise an error so the dev knows to give the standalone action a new key.
I was following along to the Zapier CLI Tutorial and ran into an error with zapier push
.
Peeling back the onion, found that is just an alias for zapier build
and zapier upload
. Turns out there was an error if the build
folder doesn't exist.
It would be good if either:
a) the default project template just included an empty build
folder
b) zapier build
would create the build folder if it doesn't exist
Moved to private repo.
When you do zapier help env
, the docs do not mention that you can use --remove
to delete an environment variable.
Also show an example, and create an example app.
Even though the resource
and babel
examples will now have it, it's implicit, not explicit.
I've been trying to link an app using zapier link
and all I'm getting is this:
zapier link
Which app number do you want to link? (Ctrl-C to cancel) 58305
Which app number do you want to link? (Ctrl-C to cancel) 58305
Which app number do you want to link? (Ctrl-C to cancel) 58305
Which app number do you want to link? (Ctrl-C to cancel)
It doesn't do anything and just keeps asking for the number.
UI navigation bug for CLI apps:
BUILD VISIBILITY USAGE ISSUES
When clicking on ISSUES it goes to blank-content screen (with Zapier site header and footer though) and I noticed that the link is formatted like so for USAGE:
https://zapier.com/developer/builder/cli-app/###/usage
But it is forwarding to Web Builder usage screen when clicking on ISSUES for a CLI app, like so:
https://zapier.com/developer/builder/app/###/issues
We're missing quite a few documentation sections:
z.errors
and their effectsdynamic
in inputFields
search
in inputFields
dict
in inputFields
~~~ Can circle back to this when we decide if we want to give detailed docs for every option/
or a (
does not follow the anchor.We are missing either example app https://github.com/zapier?q=example-app.
The CHANGELOG
seems to be out of date.
Can you keep this in sync with any changes to make it easier to review for potential issues when updating?
In https://zapier.github.io/zapier-platform-cli/#dynamic-dropdowns we say:
Dynamic dropdowns are one of the few fields that automatically invalidate Zapier's field cache, so it is not necessary to set
altersDynamicFields
to true for these fields.
That's true only for non-custom fields, so we should make that clearer.
Basically, if your static field is a dynamic dropdown but doesn't have altersDynamicFields
, and it alters custom fields, it needs to be set regardless.
Moved to private repo.
A couple of tweaks could be cool:
zapier env 1.0.0
gives an error before 1.0.0
is registered- this makes sense. However, it seems counterintuitive to push a version before required variables are set (say, an API key). Not sure what the best course here is, maybe encouraging to publish right away? Or register
pushes a 0.0.0
just to push against?Considering that #3 was closed, I think raising an issue would do.
Here https://github.com/zapier/zapier-platform-cli/blob/master/README-source.md#adding-authentication, I think required
parameter is required in {key: 'apiKey', type: 'string'}
for the input field to be displayed while trying to connect a new account.
Node.js had a severe vulnerability patched recently. It involves bumping versions on v4 and v6. We have code that explicitly checks the versions of node used. Wondering if we should update those checks to the new versions.
Bit tricky, as it would be good for us to patch the CLI tool to support the updated versions. However, we've pegged cli and core to the node versions that AWS Lambda supports. At this point, our options are:
It obscures the error message:
$ zapier init
Initializes a new Zapier app in a directory.
Usage: `zapier init path`
Initializes a new Zapier app. If you specify a template, will download and install the app from that template.
After running this, you'll have a new example app in your directory. If you re-run this command on an existing directory it will leave existing files alone and not clobber them.
> Note: this doesn't register or deploy the app with Zapier - try zapier register "Example" and zapier push for that!
**Arguments**
* location [value] -- **required**,
* --template={minimal,resource,trigger,create,search,middleware,basic-auth,custom-auth,oauth2,session-auth,babel} -- _optional_, select a starting app template. Default is minimal
$ zapier init example-app --template=minimal
# Let's initialize your app!
#
# Downloading zapier/zapier-platform-example-app-minimal starter app - done!
# Copy /users/username/code/example-app/.gitignore - done!
# Copy /users/username/code/example-app/index.js - done!
# Copy /users/username/code/example-app/package.json - done!
# Copy /users/username/code/example-app/test/index.js - done!
#
# Finished! You might need to npm install then try zapier test!
Errors running command `zapier init`:
!!! Missing required positional argument 1/location
Probably better would be:
$ zapier init
Errors running command `zapier init`. Try `zapier help init` for more information.
!!! Missing required positional argument 1/location
When an error occurs during zapier test
the paths in the backtrace are unusable because fragments of it are replaced with :censored:....
:
Unhandled error: TypeError: Cannot read property 'access_token' of undefined
What happened:
Starting POST request to :censored:47:3d9c3163dc:/access-token
Cannot read property 'access_token' of undefined
TypeError: Cannot read property 'access_token' of undefined
at includeBearerToken (/Users/:censored:7:7a4bc07188:/git/:censored:34:c5fb744411:/:censored:8:b54be9c67e::11:22)
at Object.<anonymous> (/Users/:censored:7:7a4bc07188:/git/:censored:34:c5fb744411:/node_modules/zapier-platform-core/src/middleware.js:66:23)
at bound (domain.js:287:14)
at Object.runBound (domain.js:300:12)
at Object.tryCatcher (/Users/:censored:7:7a4bc07188:/git/:censored:34:c5fb744411:/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/Users/:censored:7:7a4bc07188:/git/:censored:34:c5fb744411:/node_modules/bluebird/js/release/promise.js:510:31)
at Promise._settlePromise (/Users/:censored:7:7a4bc07188:/git/:censored:34:c5fb744411:/node_modules/bluebird/js/release/promise.js:567:18)
at Promise._settlePromise0 (/Users/:censored:7:7a4bc07188:/git/:censored:34:c5fb744411:/node_modules/bluebird/js/release/promise.js:612:10)
at Promise._settlePromises (/Users/:censored:7:7a4bc07188:/git/:censored:34:c5fb744411:/node_modules/bluebird/js/release/promise.js:691:18)
at Async._drainQueue (/Users/:censored:7:7a4bc07188:/git/:censored:34:c5fb744411:/node_modules/bluebird/js/release/async.js:138:16)
at Async._drainQueues (/Users/:censored:7:7a4bc07188:/git/:censored:34:c5fb744411:/node_modules/bluebird/js/release/async.js:148:10)
at Immediate.Async.drainQueues [as _onImmediate] (/Users/:censored:7:7a4bc07188:/git/:censored:34:c5fb744411:/node_modules/bluebird/js/release/async.js:17:14)
at processImmediate [as _immediateCallback] (timers.js:383:17)
1) can fetch an access token
In particular, the version of zapier-platform-core
is pegged to 0.3.10, which predates a lot of goodies like zapier.tools.*
.
Currently if you leave out the path it neither refuses to run nor complete successfully. It should do either, and my suggestion is to default to the current working directory, like npm init
does.
MacBook-Pro-van-Fokke:swagger fokkezb$ zapier init
Initializes a new Zapier app in a directory.
Usage: `zapier init path`
Initializes a new Zapier app. If you specify a template, will download and install the app from that template.
After running this, you'll have a new example app in your directory. If you re-run this command on an existing directory it will leave existing files alone and not clobber them.
> Note: this doesn't register or deploy the app with Zapier - try zapier register "Example" and zapier push for that!
**Arguments**
* location [value] -- **required**,
* --template={minimal,resource,trigger,create,search,middleware,basic-auth,custom-auth,oauth2,session-auth,babel} -- _optional_, select a starting app template. Default is minimal
$ zapier init example-app --template=minimal
# Let's initialize your app!
#
# Downloading zapier/zapier-platform-example-app-minimal starter app - done!
# Copy /users/username/code/example-app/.gitignore - done!
# Copy /users/username/code/example-app/index.js - done!
# Copy /users/username/code/example-app/package.json - done!
# Copy /users/username/code/example-app/test/index.js - done!
#
# Finished! You might need to npm install then try zapier test!
Errors running command `zapier init`:
!!! Missing required positional argument 1/location
MacBook-Pro-van-Fokke:swagger fokkezb$ zapier init .
Welcome to the Zapier Platform! :-D
zzzzzzzz
zzz zzzzzzzz zzz
zzzzzzz zzzzzzzz zzzzzzz
zzzzzzzzzz zzzzzzzz zzzzzzzzzz
zzzzzzzzz zzzzzzzz zzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzz zzzzzzzzzzzzzzz
zzzzzzzzzzzzzzz zzzzzzzzzzzzzzz
zzzzzzzzzzzzzzz zzzzzzzzzzzzzzz
zzzzzzzzzzzzzzz zzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzz zzzzzzzz zzzzzzzzz
zzzzzzzzzz zzzzzzzz zzzzzzzzzz
zzzzzzz zzzzzzzz zzzzzzz
zzz zzzzzzzz zzz
zzzzzzzz
Let's initialize your app!
Downloading zapier/zapier-platform-example-app-minimal starter app - done!
Copy /Users/fokkezb/Documents/Zapier/Code/swagger/.gitignore - done!
Copy /Users/fokkezb/Documents/Zapier/Code/swagger/index.js - done!
Copy /Users/fokkezb/Documents/Zapier/Code/swagger/package.json - done!
Copy /Users/fokkezb/Documents/Zapier/Code/swagger/test/index.js - done!
Finished! You might need to `npm install` then try `zapier test`!
node version: 4.3.2
cli version: 0.9.9
os: OSX El Capitan 10.11.12
--
I cannot see my app on https://testing.zapier.com/app/editor after a successful zapier push
.
Reproduction:
Follow the tutorial and run zapier push
as instructed here.
Go to https://testing.zapier.com/app/editor as instructed in the success message.
The page redirects to 'Edit Step' page (https://testing.zapier.com/app/editor/13728700/nodes/13728700/app).
C:\Program Files\nodejs\node_modules\npm\zapier-example>zapier push --debug
Preparing to build and upload your app.
>> GET https://zapier.com/api/platform/cli/check
<< 200
<< {"success": true}
Copying project to temp directory done!
Installing project dependencies .
Running npm.cmd install --production command in C:\Users\allen\AppData\Local\Te
p\zapier-536ab35f:
..
done!
Applying entry point file ...
Error: : File C:\Users\allen\AppData\Local\Temp\zapier-536ab35f/node_modules/za
ier-platform-core/include/zapierwrapper.js not found.
at C:\Users\allen\AppData\Roaming\npm\node_modules\zapier-platform-cli\lib\
tils\files.js:31:11
Error!
C:\Program Files\nodejs\node_modules\npm\zapier-example>npm version
{ 'zapier-platform-example-app-trigger': '1.0.0',
npm: '4.6.1',
ares: '1.10.1-DEV',
http_parser: '2.7.0',
icu: '57.1',
modules: '48',
node: '6.9.1',
openssl: '1.0.2j',
uv: '1.9.1',
v8: '5.1.281.84',
zlib: '1.2.8' }
The characters for the spinner break on Powershell if you don't have a font that supports those codepoints.
Should be easy to have it fallback to another set.
Just as we allow skipping on zapier validate
, we should allow --skip-validate
on zapier test
.
Right now commands like zapier convert
and zapier push
are hard-coded to print messages that refer to zapier.com
. Would be helpful for local development and also beta testing if it correctly checked ZAPIER_BASE_ENDPOINT.
Running the command zapier logs —type=http
outputs the HTTP requests, but they do not seem to include PATCH requests made by the app.
Patch requests should also be listed
None at the moment
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.