Skip to content

Commit

Permalink
Initial Commit
Browse files Browse the repository at this point in the history
  • Loading branch information
harana-bot committed Mar 6, 2024
1 parent c3da94a commit 0c73105
Show file tree
Hide file tree
Showing 571 changed files with 90,587 additions and 2 deletions.
26 changes: 26 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
.DS_Store
.bloop
.bsp
.bsp/
.history
.metals
.vscode/
/*.iml
/.classpath
/.idea
/.idea_modules
/.project
/.settings
/RUNNING_PID
/bin/
/out
conf/felix-cache
dist
felix-cache
js/node_modules
logs
project/target
shared/.js
shared/.jvm
target
tmp
26 changes: 24 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,24 @@
# modules
Description
# Development

## IntelliJ

Open Build Tools -> sbt and make sure to enable sbt shell for project reloads/builds.

## Build Javascript Libraries

```
fastOptJS::webpack
```

## Run WebServer

```
python -m SimpleHTTPServer
```

## Compile Cycle

```
~compile
```

35 changes: 35 additions & 0 deletions airbyte.jq
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
def p($p): "<p>\($p)</p>";

# input: array of arrays
def row2html:
reduce .[] as $value ("<tr>"; . + "<td>\($value)</td>") + "</tr>";

# with style
def row2html($style):
reduce .[] as $value ("<tr>";
. + "<td style=\($style)><strong>\($value)</strong></td>") + "</tr>";

# input: an array of arrays, the first being treated as a header row
def table2html($tablestyle; $headerstyle):
"<table style=\($tablestyle)>",
"<tbody>",
(.[0] | row2html($headerstyle)),
(.[1:][] | row2html),
"</tbody>",
"</table>" ;

def atomicKeys2arrays:
# emit an array of atomic keys
def atomicKeys: to_entries | map( select(.value|scalars) | .key);
(.[0] | atomicKeys) as $keys
| $keys,
(.[] | [ .[$keys[]]]);

def tableStyle: "\"border-collapse: collapse; width: 100%;\" border=\"1\"" ;
def headerStyle: "\"text-align: center;\"" ;

def table2html: table2html(tableStyle; headerStyle);

def airbyteParameters:
.connectionSpecification.properties | .[] | [.title,(.type | ./"" | first |= ascii_upcase | add),.description] | join("|");

105 changes: 105 additions & 0 deletions airbyte.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
#!/bin/bash
WEBFLOW_URL="https://api.webflow.com/collections/631aeff93e54dc14b555344a/items"
WEBFLOW_AUTHOR="Person_5e22e90adaefb87e2849af40"
RES="jvm/src/main/resources/airbyte"
CONNECTORS="/tmp/airbyte/airbyte-integrations/connectors"

# rm -fr $RES
# mkdir -p $RES
# rm -fr /tmp/airbyte
# git clone --depth=1 https://github.com/airbytehq/airbyte.git /tmp/airbyte

# # Remove unneeded integrations
# rm -fr $CONNECTORS/*scaffold*
# rm -fr $CONNECTORS/*test*
# rm -fr $CONNECTORS/*tutorial*
rm -fr /tmp/connectors*

# Cache list of existing Webflow connectors
x=0
while [ $x -le 5 ]
do
OFFSET=$(( $x * 100))
echo "Caching connectors at offset $OFFSET"
curl -o /tmp/connectors_$x -s --request GET \
--url "$WEBFLOW_URL?live=true&offset=$OFFSET" \
--header "Accept-Version: 1.0.0" \
--header "Authorization: Bearer $WEBFLOW_TOKEN"
x=$(( $x + 1 ))
done

cat /tmp/connectors* | jq -n '{ items: [ inputs.items ] | add }' > /tmp/connectors

# For each of the connectors
for dir in $CONNECTORS/*; do
SPEC_PATH=$(find $dir -name spec.json)
if [[ "$SPEC_PATH" == *airbyte* ]]; then

# Get connector info
SPEC_NAME=$(echo "$SPEC_PATH" | cut -d/ -f6)
DIRECTION=(${SPEC_NAME//-/ }[1])
TITLE=$(cat $SPEC_PATH | jq -r '.connectionSpecification.title' | sed -e 's/ Spec//g' | sed -e 's/ Destination//g' | sed -e 's/Destination //g' | sed -e 's/ Source//g' | sed -e 's/Source //g')
TITLE=$(echo $TITLE | sed -e 's/ Connection Configuration//g' | sed -e 's/ Configuration//g')
REQUIRED=$(cat $SPEC_PATH | jq -r '.connectionSpecification.required')
PARAMETERS="$(cat $SPEC_PATH | jq -r 'include "airbyte"; airbyteParameters')"
PARAMETERS_TABLE="<table class='parameters'><tr><th style="width:25%">Name</th><th>Type</th><th>Description</th></tr>"$(echo "$PARAMETERS" | sed -e 's#|#</td><td>#g' | sed -e 's#^#</td></tr><tr><td>#g' | sed -e 's#"#\\"#g' )"</td></tr></table>"

WEBFLOW_DATA="{
\"fields\": {
\"name\": \"$TITLE\",
\"slug\": \"$SPEC_NAME\",
\"direction\": \"$DIRECTION\",
\"parameters\": \"$PARAMETERS_TABLE\",
\"_archived\": false,
\"_draft\": false
}
}"

echo $WEBFLOW_DATA > /tmp/connector_data

# Create or update connector in Webflow
WEBFLOW_ITEM=$(cat /tmp/connectors | jq ".items | map(select(.slug == \"$SPEC_NAME\"))[0]")
if [[ $WEBFLOW_ITEM == "null" ]]; then
echo "Creating $SPEC_NAME"
curl -s --request POST \
--url "$WEBFLOW_URL?live=true" \
--header "Accept-Version: 1.0.0" \
--header "Authorization: Bearer $WEBFLOW_TOKEN" \
--header "Content-Type: application/json" \
--data-binary "@/tmp/connector_data"
else
ITEM_ID=$(echo $WEBFLOW_ITEM | jq -r "._id")
echo "Updating $SPEC_NAME with id: $ITEM_ID"

curl -s --request PUT \
--url "$WEBFLOW_URL/$ITEM_ID?live=true" \
--header "Accept-Version: 1.0.0" \
--header "Authorization: Bearer $WEBFLOW_TOKEN" \
--header "Content-Type: application/json" \
--data-binary "@/tmp/connector_data"
fi

# Copy JSON file
cp $SPEC_PATH $RES/$SPEC_NAME.json

# Add to localisation file
KEYS=$(jq -r '[. as $in | (paths(scalars), paths((. | length == 0)?)) | join(".") as $key | $key + "=" + ($in | getpath($key | split(".") | map((. | tonumber)? // .)) | tostring) ] | sort | .[]' $SPEC_PATH)

TITLES=$(echo "$KEYS" | grep "title=" | grep properties | sed -e "s/connectionSpecification.properties/$SPEC_NAME/g")
S_TITLES=$(echo "$TITLES" | sed -e "s/source-/datasources.section.source-/g")
D_TITLES=$(echo "$S_TITLES" | sed -e "s/destination-/datasources.section.destination-/g")
echo "$D_TITLES" | grep -v "connectionSpecification" | grep -v "scaffold-" | sed -e '/^$/d' >> "$RES/messages_airbyte_en"

DESCRIPTIONS=$(echo "$KEYS" | grep "description=" | grep properties | sed -e "s/connectionSpecification.properties/$SPEC_NAME/g")
S_DESCRIPTIONS=$(echo "$DESCRIPTIONS" | sed -e "s/source-/datasources.section.source-/g")
D_DESCRIPTIONS=$(echo "$S_DESCRIPTIONS" | sed -e "s/destination-/datasources.section.destination-/g")
echo "$D_DESCRIPTIONS" | grep -v "connectionSpecification" | grep -v "scaffold-" | sed -e '/^$/d' >> "$RES/messages_airbyte_en"
fi
done

# echo "Removing references to Airbyte .."
# sed -i '' 's/airbyte.io/harana.com/g' "$RES/messages_airbyte_en"
# sed -i '' 's/airbyte/harana/g' "$RES/messages_airbyte_en"
# sed -i '' 's/airbytehq/harana/g' "$RES/messages_airbyte_en"
# sed -i '' 's/Airbyte/harana/g' "$RES/messages_airbyte_en"
# sed -i '' 's/ (Optional)//g' "$RES/messages_airbyte_en"
75 changes: 75 additions & 0 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import sbt._
import com.harana.sbt.common._

val modules = haranaCrossProject("modules").in(file("."))
.settings(
libraryDependencies ++=
Library.circe.value
)
.jvmSettings(
unmanagedBase := baseDirectory.value / "lib",
libraryDependencies ++=
Library.airbyte.value ++
Library.alluxio.value ++
Library.awsS3v2.value ++
Library.dockerJava.value ++
Library.googleServiceApi.value ++
Library.jackson.value ++
Library.jgrapht.value ++
Library.json4s.value ++
Library.netty.value ++
Library.pac4j.value ++
Library.scala.value ++
Library.testing.value ++
Library.vertx.value ++
Library.vfs.value ++
Library.zio2.value :+
Library.airtable.value :+
Library.avro4s.value :+
Library.awsJavaSes.value :+
Library.awsScalaIam.value :+
Library.awsScalaS3.value :+
Library.auth0.value :+
Library.betterFiles.value :+
Library.calciteCore.value :+
Library.chargebee.value :+
Library.chimney.value :+
Library.commonsEmail.value :+
Library.deepstream.value :+
Library.facebook.value :+
Library.kryo.value :+
Library.handlebars.value :+
Library.jasyncfio.value :+
Library.javaWebsocket.value :+
Library.jbrowserDriver.value :+
Library.jgit.value :+
Library.jsch.value :+
Library.jsoup.value :+
Library.kubernetesClient.value :+
Library.meilisearch.value :+
Library.mixpanel.value :+
Library.ognl.value :+
Library.ohc.value :+
Library.playJsonExtensions.value :+
Library.pureCsv.value :+
Library.redisson.value :+
Library.segment.value :+
Library.sentry.value :+
Library.shopify.value :+
Library.skuber.value :+
Library.sshj.value :+
Library.siteCrawler.value :+
Library.snappy.value :+
Library.slack.value :+
Library.stripe.value :+
Library.sundial.value :+
Library.thumbnailator.value :+
Library.unboundid.value :+
Library.youiClient.value :+
Library.zendeskClient.value :+
Library.zip4j.value :+
Library.zstd.value :+
Library.ztZip.value :+
"com.harana" %%% "modules-core" % "1.0.0" :+
"com.harana" %%% "sdk" % "1.0.0"
)
26 changes: 26 additions & 0 deletions js/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions js/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "id-jwt",
"type": "module",
"private": true,
"scripts": {
"dev": "vite",
"build": "vite build"
},
"devDependencies": {
"typescript": "^5.1.6"
}
}
18 changes: 18 additions & 0 deletions js/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions js/yarn.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


typescript@^5.1.6:
version "5.1.6"
resolved "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz"
integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==
Binary file added jvm/lib/io.airbyte-airbyte-api-0.39.41-alpha.jar
Binary file not shown.
Binary file not shown.
Binary file added jvm/lib/scala-stripe_2.13-1.1.30.jar
Binary file not shown.
Loading

0 comments on commit 0c73105

Please sign in to comment.