diff --git a/.github/workflows/buildService.yml b/.github/workflows/buildService.yml index 73f32a7..b9ddf67 100644 --- a/.github/workflows/buildService.yml +++ b/.github/workflows/buildService.yml @@ -3,11 +3,11 @@ name: Build Service on: workflow_dispatch: pull_request: - paths-ignore: ['*.md'] - branches: ['master', 'next'] + paths-ignore: ["*.md"] + branches: ["master", "next"] push: - paths-ignore: ['*.md'] - branches: ['master', 'next'] + paths-ignore: ["*.md"] + branches: ["master", "next"] jobs: BuildPackage: @@ -22,7 +22,7 @@ jobs: with: toolchain: stable - name: Get StartOS Hash - run: echo "STARTOSHASH=$(git ls-remote https://github.com/Start9Labs/start-os --branch latest | awk '{ print $1}')" >> $GITHUB_ENV + run: echo "STARTOSHASH=$(git ls-remote https://github.com/Start9Labs/start-os --branch sdk | awk '{ print $1}')" >> $GITHUB_ENV - name: Cache Packages uses: buildjet/cache@v3 id: packageCache @@ -44,7 +44,7 @@ jobs: id: packageManager if: steps.packageCache.outputs.cache-hit != 'true' run: | - cd ~/ && git clone https://github.com/Start9Labs/start-os.git --branch latest; + cd ~/ && git clone https://github.com/Start9Labs/start-os.git --branch sdk; cd start-os; git submodule update --init --recursive cd backend; @@ -54,7 +54,7 @@ jobs: - name: Build the service package run: | git submodule update --init --recursive - embassy-sdk init + start-sdk init make mv ghost*s9pk ~/ - name: Upload .s9pk diff --git a/.github/workflows/releaseService.yml b/.github/workflows/releaseService.yml index 47c4db9..11c28c9 100644 --- a/.github/workflows/releaseService.yml +++ b/.github/workflows/releaseService.yml @@ -4,7 +4,7 @@ on: workflow_dispatch: push: tags: - - 'v*.*' + - "v*.*" jobs: ReleasePackage: @@ -19,7 +19,7 @@ jobs: with: toolchain: stable - name: Get StartOS Hash - run: echo "STARTOSHASH=$(git ls-remote https://github.com/Start9Labs/start-os --branch latest | awk '{ print $1}')" >> $GITHUB_ENV + run: echo "STARTOSHASH=$(git ls-remote https://github.com/Start9Labs/start-os --branch sdk | awk '{ print $1}')" >> $GITHUB_ENV - name: Cache Packages uses: buildjet/cache@v3 id: packageCache @@ -41,7 +41,7 @@ jobs: id: packageManager if: steps.packageCache.outputs.cache-hit != 'true' run: | - cd ~/ && git clone https://github.com/Start9Labs/start-os.git --branch latest; + cd ~/ && git clone https://github.com/Start9Labs/start-os.git --branch sdk; cd start-os; git submodule update --init --recursive cd backend; @@ -51,7 +51,7 @@ jobs: - name: Build the service package run: | git submodule update --init --recursive - embassy-sdk init + start-sdk init make - name: Generate sha256 checksum run: | @@ -60,6 +60,10 @@ jobs: run: | echo "## What's Changed" > change-log.txt yq e '.release-notes' manifest.yaml >> change-log.txt + echo "## SHA256 Hash" >> change-log.txt + echo '```' >> change-log.txt + sha256sum ghost.s9pk >> change-log.txt + echo '```' >> change-log.txt - name: Create Release uses: softprops/action-gh-release@v1 env: @@ -67,6 +71,7 @@ jobs: with: tag_name: ${{ github.ref_name }} name: Ghost ${{ github.ref_name }} + prerelease: true body_path: change-log.txt files: | ghost.s9pk diff --git a/.gitignore b/.gitignore index e48d2f4..3b97384 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ ghost.s9pk -image.tar scripts/embassy.js docker-images .DS_Store diff --git a/Dockerfile b/Dockerfile index 51be326..647ed4a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,133 +1,25 @@ -FROM node:16-bullseye-slim +FROM ghost:5.65.1 -# grab gosu for easy step-down from root -# https://github.com/tianon/gosu/releases -ENV GOSU_VERSION 1.16 -# grab yq for easy parsing -# https://github.com/mikefarah/yq/releases ENV YQ_VERSION v4.25.1 RUN set -eux; \ -# save list of currently installed packages for later so we can clean up - savedAptMark="$(apt-mark showmanual)"; \ apt-get update; \ + savedAptMark="$(apt-mark showmanual)"; \ apt-get install -y --no-install-recommends ca-certificates gnupg wget; \ rm -rf /var/lib/apt/lists/*; \ \ dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ wget -O /usr/local/bin/yq "https://github.com/mikefarah/yq/releases/download/$YQ_VERSION/yq_linux_$dpkgArch"; \ - wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ - wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ chmod +x /usr/local/bin/yq; \ - \ -# verify the signature - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ - gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ - gpgconf --kill all; \ - rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \ - \ -# clean up fetch dependencies - apt-mark auto '.*' > /dev/null; \ + apt-get remove --purge -y ca-certificates gnupg wget; \ + apt-mark auto '.*' > /dev/null; \ [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - \ - chmod +x /usr/local/bin/gosu; \ -# verify that the binary works - gosu --version; \ - gosu nobody true - -ENV NODE_ENV production + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; -ENV GHOST_CLI_VERSION 1.24.2 -RUN set -eux; \ - npm install -g "ghost-cli@$GHOST_CLI_VERSION"; \ - npm cache clean --force - -ENV GHOST_INSTALL /var/lib/ghost -ENV GHOST_CONTENT /var/lib/ghost/content - -ENV GHOST_VERSION 5.54.0 - -RUN set -eux; \ - mkdir -p "$GHOST_INSTALL"; \ - chown node:node "$GHOST_INSTALL"; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - aptPurge=; \ - \ - installCmd='gosu node ghost install "$GHOST_VERSION" --db mysql --dbhost mysql --no-prompt --no-stack --no-setup --dir "$GHOST_INSTALL"'; \ - if ! eval "$installCmd"; then \ - aptPurge=1; \ - apt-get update; \ - apt-get install -y --no-install-recommends g++ make python3; \ - eval "$installCmd"; \ - fi; \ - \ -# Tell Ghost to listen on all ips and not prompt for additional configuration - cd "$GHOST_INSTALL"; \ - gosu node ghost config --no-prompt --ip '::' --port 2368 --url 'http://localhost:2368'; \ - gosu node ghost config paths.contentPath "$GHOST_CONTENT"; \ - \ -# make a config.json symlink for NODE_ENV=development (and sanity check that it's correct) - gosu node ln -s config.production.json "$GHOST_INSTALL/config.development.json"; \ - readlink -f "$GHOST_INSTALL/config.development.json"; \ - \ -# need to save initial content for pre-seeding empty volumes - mv "$GHOST_CONTENT" "$GHOST_INSTALL/content.orig"; \ - mkdir -p "$GHOST_CONTENT"; \ - chown node:node "$GHOST_CONTENT"; \ - chmod 1777 "$GHOST_CONTENT"; \ - \ -# force install a few extra packages manually since they're "optional" dependencies -# (which means that if it fails to install, like on ARM/ppc64le/s390x, the failure will be silently ignored and thus turn into a runtime error instead) -# see https://github.com/TryGhost/Ghost/pull/7677 for more details - cd "$GHOST_INSTALL/current"; \ -# scrape the expected versions directly from Ghost/dependencies - packages="$(node -p ' \ - var ghost = require("./package.json"); \ - var transform = require("./node_modules/@tryghost/image-transform/package.json"); \ - [ \ - "sharp@" + transform.optionalDependencies["sharp"], \ - ].join(" ") \ - ')"; \ - if echo "$packages" | grep 'undefined'; then exit 1; fi; \ - for package in $packages; do \ - installCmd='gosu node yarn add "$package" --force'; \ - if ! eval "$installCmd"; then \ -# must be some non-amd64 architecture pre-built binaries aren't published for, so let's install some build deps and do-it-all-over-again - aptPurge=1; \ - apt-get update; \ - apt-get install -y --no-install-recommends g++ make python3; \ - case "$package" in \ - # TODO sharp@*) apt-get install -y --no-install-recommends libvips-dev ;; \ - sharp@*) echo >&2 "sorry: libvips 8.10 in Debian bullseye is not new enough (8.12.2+) for sharp 0.30 😞"; continue ;; \ - esac; \ - \ - eval "$installCmd --build-from-source"; \ - fi; \ - done; \ - \ - if [ -n "$aptPurge" ]; then \ - apt-mark showmanual | xargs apt-mark auto > /dev/null; \ - [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ - apt-get purge -y --auto-remove; \ - rm -rf /var/lib/apt/lists/*; \ - fi; \ - \ - gosu node yarn cache clean; \ - gosu node npm cache clean --force; \ - npm cache clean --force; \ - rm -rv /tmp/yarn* /tmp/v8* RUN set -eux; \ apt-get update; \ apt-get install -y --no-install-recommends mariadb-server mariadb-client; \ rm /etc/mysql/mariadb.conf.d/50-server.cnf; \ rm -rf /var/lib/apt/lists/*; -WORKDIR $GHOST_INSTALL -VOLUME $GHOST_CONTENT - -COPY start-ghost.sh /usr/local/bin -COPY docker_entrypoint.sh /usr/local/bin -RUN chmod a+x /usr/local/bin/*.sh +COPY --chmod=a+x docker_entrypoint.sh /usr/local/bin COPY scripts/local /var/lib/ghost/current/core/built/admin/assets/local diff --git a/LICENSE b/LICENSE index 1dc9a46..b99f777 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2013-2022 Ghost Foundation +Copyright (c) 2023 Start9 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation diff --git a/Makefile b/Makefile index 81d0704..0251dd3 100644 --- a/Makefile +++ b/Makefile @@ -9,9 +9,9 @@ all: verify install: ifeq (,$(wildcard ~/.embassy/config.yaml)) - @echo; echo "You must define \"host: http://embassy-server-name.local\" in ~/.embassy/config.yaml config file first"; echo + @echo; echo "You must define \"host: http://server-name.local\" in ~/.embassy/config.yaml config file first"; echo else - embassy-cli package install $(PKG_ID).s9pk + start-cli package install $(PKG_ID).s9pk endif arm: @@ -23,7 +23,7 @@ x86: ARCH=x86_64 $(MAKE) verify: $(PKG_ID).s9pk - @embassy-sdk verify s9pk $(PKG_ID).s9pk + @start-sdk verify s9pk $(PKG_ID).s9pk @echo " Done!" @echo " Filesize: $(shell du -h $(PKG_ID).s9pk) is ready" @@ -43,13 +43,13 @@ update: $(PKG_ID).s9pk: manifest.yaml instructions.md icon.png LICENSE scripts/embassy.js docker-images/aarch64.tar docker-images/x86_64.tar ifeq ($(ARCH),aarch64) - @echo "embassy-sdk: Preparing aarch64 package ..." + @echo "start-sdk: Preparing aarch64 package ..." else ifeq ($(ARCH),x86_64) - @echo "embassy-sdk: Preparing x86_64 package ..." + @echo "start-sdk: Preparing x86_64 package ..." else - @echo "embassy-sdk: Preparing Universal Package ..." + @echo "start-sdk: Preparing Universal Package ..." endif - @embassy-sdk pack + @start-sdk pack docker-images/aarch64.tar: Dockerfile docker_entrypoint.sh ifeq ($(ARCH),x86_64) diff --git a/README.md b/README.md index 60dcd5f..fefd057 100644 --- a/README.md +++ b/README.md @@ -9,56 +9,73 @@ - [yq](https://mikefarah.gitbook.io/yq) - [deno](https://deno.land/) - [make](https://www.gnu.org/software/make/) -- [embassy-sdk](https://github.com/Start9Labs/embassy-os/tree/master/backend) +- [start-sdk](https://github.com/Start9Labs/start-os/tree/sdk/backend) ## Build environment -Prepare your embassyOS build environment. In this example we are using Ubuntu 20.04. + +Prepare your StartOS build environment. In this example we are using Ubuntu 20.04. 1. Install docker + ``` curl -fsSL https://get.docker.com -o- | bash sudo usermod -aG docker "$USER" exec sudo su -l $USER ``` + 2. Set buildx as the default builder + ``` docker buildx install docker buildx create --use ``` + 3. Enable cross-arch emulated builds in docker + ``` docker run --privileged --rm linuxkit/binfmt:v0.8 ``` + 4. Install yq + ``` sudo snap install yq ``` + 5. Install deno + ``` sudo snap install deno ``` + 6. Install essentials build packages + ``` sudo apt-get install -y build-essential openssl libssl-dev libc6-dev clang libclang-dev ca-certificates ``` + 7. Install Rust + ``` curl https://sh.rustup.rs -sSf | sh # Choose nr 1 (default install) source $HOME/.cargo/env ``` -8. Build and install embassy-sdk + +8. Build and install start-sdk + ``` -cd ~/ && git clone --recursive https://github.com/Start9Labs/embassy-os.git -cd embassy-os/backend/ +cd ~/ && git clone --recursive https://github.com/Start9Labs/start-os.git +cd start-os/backend/ ./install-sdk.sh -embassy-sdk init +start-sdk init ``` + Now you are ready to build your **ghost** service ## Cloning -Clone the project locally. +Clone the project locally. ``` git clone https://github.com/Start9Labs/ghost-wrapper.git @@ -73,19 +90,22 @@ To build the **Ghost** service, run the following command: make ``` -## Installing (on Embassy) +## Installing (on StartOS) Run the following commands to determine successful install: -> :information_source: Change embassy-server-name.local to your Embassy address + +> :information_source: Change server-name.local to your Start9 server address ``` -embassy-cli auth login -#Enter your embassy password -embassy-cli --host https://embassy-server-name.local package install ghost.s9pk +start-cli auth login +#Enter your StartOS password +start-cli --host https://server-name.local package install ghost.s9pk ``` -**Tip:** You can also install the ghost.s9pk using **Sideload Service** under the **System > MANAGE** section. + +**Tip:** You can also install the `ghost.s9pk` using **Sideload Service** under the **System > MANAGE** section. + ## Verify Install -Go to your Embassy Services page, select **Ghost**, configure and start the service. +Go to your StartOS Services page, select **Ghost**, configure and start the service. -**Done!** +**Done!** diff --git a/docker_entrypoint.sh b/docker_entrypoint.sh index d7cb603..aee335c 100755 --- a/docker_entrypoint.sh +++ b/docker_entrypoint.sh @@ -2,45 +2,45 @@ set -ea -_term() { - echo "Caught TERM signal!" - kill -TERM "$db_process" 2>/dev/null - kill -TERM "$ghost_process" 2>/dev/null +_term() { + echo "Caught TERM signal!" + kill -TERM "$db_process" 2>/dev/null + kill -TERM "$ghost_process" 2>/dev/null } if [ -d "/run/mysqld" ]; then - echo "[i] mysqld already present, skipping creation" - chown -R node:node /run/mysqld + echo "[i] mysqld already present, skipping creation" + chown -R node:node /run/mysqld else - echo "[i] mysqld not found, creating...." - mkdir -p /run/mysqld - chown -R node:node /run/mysqld + echo "[i] mysqld not found, creating...." + mkdir -p /run/mysqld + chown -R node:node /run/mysqld fi if [ -d /var/lib/ghost/content/mysql/mysql ]; then - echo "[i] MariaDB directory already present, skipping creation" - chown -R node:node /var/lib/ghost/content/mysql + echo "[i] MariaDB directory already present, skipping creation" + chown -R node:node /var/lib/ghost/content/mysql else - echo "[i] MariaDB data directory not found, creating initial DBs" + echo "[i] MariaDB data directory not found, creating initial DBs" - mkdir -p /var/lib/ghost/content/mysql + mkdir -p /var/lib/ghost/content/mysql chown -R node:node /var/lib/ghost/content/mysql - mysql_install_db --user=node --ldata=/var/lib/ghost/content/mysql > /dev/null + mysql_install_db --user=node --ldata=/var/lib/ghost/content/mysql >/dev/null - if [ "$MYSQL_ROOT_PASSWORD" = "" ]; then - MYSQL_ROOT_PASSWORD=$(cat /dev/urandom | base64 | head -c 16) - echo "[i] MariaDB root Password: $MYSQL_ROOT_PASSWORD" - fi + if [ "$MYSQL_ROOT_PASSWORD" = "" ]; then + MYSQL_ROOT_PASSWORD=$(cat /dev/urandom | base64 | head -c 16) + echo "[i] MariaDB root Password: $MYSQL_ROOT_PASSWORD" + fi - MYSQL_PASSWORD=${MYSQL_PASSWORD:-""} + MYSQL_PASSWORD=${MYSQL_PASSWORD:-""} tfile=$(mktemp) if [ ! -f "$tfile" ]; then return 1 fi - cat << EOF > $tfile + cat <$tfile USE mysql; FLUSH PRIVILEGES ; GRANT ALL ON *.* TO 'root'@'%' identified by '$MYSQL_ROOT_PASSWORD' WITH GRANT OPTION ; @@ -49,8 +49,8 @@ SET PASSWORD FOR 'root'@'localhost'=PASSWORD('${MYSQL_ROOT_PASSWORD}') ; DROP DATABASE IF EXISTS test ; FLUSH PRIVILEGES ; EOF - mkdir -p /var/lib/ghost/content/start9 - cat << EOF > /var/lib/ghost/content/start9/stats.yaml + mkdir -p /var/lib/ghost/content/start9 + cat </var/lib/ghost/content/start9/stats.yaml data: MariaDB root password: copyable: true @@ -61,13 +61,13 @@ data: value: $MYSQL_ROOT_PASSWORD version: 2 EOF - - /usr/sbin/mysqld --user=node --datadir='/var/lib/ghost/content/mysql' --bootstrap --verbose=0 --skip-name-resolve --skip-networking=0 < $tfile + + /usr/sbin/mysqld --user=node --datadir='/var/lib/ghost/content/mysql' --bootstrap --verbose=0 --skip-name-resolve --skip-networking=0 <$tfile rm -f $tfile - echo - echo 'MariaDB init process done. Ready for Ghost.' - echo + echo + echo 'MariaDB init process done. Ready for Ghost.' + echo fi /usr/sbin/mysqld --user=node --datadir='/var/lib/ghost/content/mysql' --console --skip-name-resolve --skip-networking=0 & @@ -78,7 +78,6 @@ LAN_ADDRESS=$(echo "$TOR_ADDRESS" | sed -r 's/(.+)\.onion/\1.local/g') TOR_ADDR="http://$TOR_ADDRESS" LAN_ADDR="https://$LAN_ADDRESS" - export url=$TOR_ADDR export database__client=mysql export database__connection__host=localhost @@ -89,6 +88,7 @@ export sodoSearch__url="/ghost/assets/local/sodo-search.min.js" export sodoSearch__styles="/ghost/assets/local/sodo-main.css" export comments__url="/ghost/assets/local/comments-ui.min.js" export comments__styles="/ghost/assets/local/comments-main.css" +export privacy__useUpdateCheck=false if [ "$(yq e .useTinfoil /var/lib/ghost/content/start9/config.yaml)" = "true" ]; then export privacy__useTinfoil=true @@ -102,8 +102,9 @@ sed -i 's#https://static.ghost.org/v5.0.0/images/publication-cover.jpg#'$LAN_ADD sed -i 's#https://static.ghost.org/v4.0.0/images/feature-image.jpg#'$LAN_ADDR'/ghost/assets/local/feature-image.jpg#g' /var/lib/ghost/current/core/server/data/schema/fixtures/fixtures.json sed -i 's#https://static.ghost.org/v4.0.0/images/ghost-orb-1.png#/ghost/assets/local/ghost-orb-1.png#g' /var/lib/ghost/current/core/built/admin/assets/ghost-*.js sed -i 's#https://static.ghost.org/v4.0.0/images/ghost-orb-2.png#/ghost/assets/local/ghost-orb-2.png#g' /var/lib/ghost/current/core/built/admin/assets/ghost-*.js +sed -i 's#gh-env-error#gh-env-error hidden#g; s#gh-upgrade-notification#gh-upgrade-notification hidden#g; s#gh-btn-notification-dot#gh-btn-notification-dot hidden#g; s@,\[24,"data-tooltip","Update available!"\],@,@g' /var/lib/ghost/current/core/built/admin/assets/ghost-*.js -start-ghost.sh node current/index.js & +docker-entrypoint.sh node current/index.js & ghost_process=$! trap _term TERM diff --git a/instructions.md b/instructions.md index 389ba04..50295f3 100644 --- a/instructions.md +++ b/instructions.md @@ -1,7 +1,9 @@ # Welcome to Ghost + **Your own blogging platform!** The moment you start Ghost, it is ready to run and waiting for you to finish some basic site setup in **Ghost Admin** at: + > `http:///ghost` Alternatively, you can copy your unique address from the **Services > Ghost > Properties** section. @@ -10,9 +12,9 @@ After simple site setup and account creation, make sure to store your password s Further admin registrations are closed. You can now start blogging! ->📧 Direct transactional and bulk e-mail delivery is not supported. If you need full e-mail support in Ghost, you have to use [Mailgun](https://ghost.org/docs/faq/mailgun-newsletters/). +> 📧 Direct transactional and bulk e-mail delivery is not supported. If you need full e-mail support in Ghost, you have to use [Mailgun](https://ghost.org/docs/faq/mailgun-newsletters/). ->⚠️ Ghost is expected to work **only on one domain** address. In this case, it is operating on a `.onion` address and that will give you a fully-fledged Ghost experience. For your convenience, a `.local` (LAN) address has been enabled for uploading larger files and making maintenance changes locally (for example, if Tor is overloaded), but be advised that some preview features might not work as expected when working on the LAN address. +> ⚠️ Ghost is expected to work **only on one domain** address. In this case, it is operating on a `.onion` address and that will give you a fully-fledged Ghost experience. For your convenience, a `.local` (LAN) address has been enabled for uploading larger files and making maintenance changes locally (for example, if Tor is overloaded), but be advised that some preview features might not work as expected when working on the LAN address. We recommend visiting the [Ghost resources page](https://ghost.org/resources) to learn more about using Ghost. diff --git a/manifest.yaml b/manifest.yaml index 417c1c4..d77bebf 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -1,12 +1,11 @@ -id: ghost +id: ghost title: "Ghost" -version: 5.54.0 +version: 5.65.1 release-notes: | - * New Announcement bar - * New Labs Beta Features (Ghost editor, Substack migrator and Portal translation) + * Added new enhanced Header Card in Beta Editor * Code cleanup * Latest version of localy hosted scripts - * Latest upstream update - full changelog available [here](https://github.com/TryGhost/Ghost/compare/v5.24.2...v5.54.0) + * Latest upstream update - full changelog available [here](https://github.com/TryGhost/Ghost/compare/v5.54.0...v5.65.1) license: MIT wrapper-repo: "https://github.com/Start9Labs/ghost-wrapper" upstream-repo: "https://github.com/TryGhost/ghost" @@ -53,9 +52,9 @@ interfaces: port-mapping: 80: "2368" lan-config: - 443: - ssl: true - internal: 2368 + 443: + ssl: true + internal: 2368 ui: true protocols: - tcp diff --git a/scripts/local/comments-ui.min.js b/scripts/local/comments-ui.min.js index b50091a..e582342 100644 --- a/scripts/local/comments-ui.min.js +++ b/scripts/local/comments-ui.min.js @@ -1,3 +1,139 @@ -/*! For license information please see comments-ui.min.js.LICENSE.txt */ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=12)}([function(e,t,n){"use strict";e.exports=n(11)},function(e,t,n){"use strict";e.exports=n(7)},function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(8)},,function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,t){for(var n,s,u=a(e),l=1;l