@minnovate/shadow-publisher 0.16.0 → 0.17.1

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "git-publisher",
3
3
  "displayName": "Git Publisher",
4
- "version": "0.16.0",
4
+ "version": "0.17.1",
5
5
  "description": "Publish an app folder's Git history to the serverless Git publishing backend and keep it updated (\"publish my app\", \"update my app\", \"fetch the engineered version\").",
6
6
  "author": { "name": "git-publisher project" },
7
7
  "keywords": ["git", "publish", "deploy", "serverless"]
@@ -28,7 +28,7 @@ Every command accepts `--json` and prints exactly one JSON object on stdout. Exi
28
28
  publisher --version
29
29
  ```
30
30
 
31
- If the command is not found, or the version is older than 0.11.0, install it:
31
+ If the command is not found, or the version is older than 0.16.0, install it:
32
32
  `npm install -g @minnovate/shadow-publisher@latest` (it needs Node.js 22.12 or a later 22). In a Claude Cowork task
33
33
  this is normal: the sandbox starts empty every time, so install it without asking. On the person's
34
34
  own computer, say in one line that you are installing the publisher. If `npm` itself is missing,
@@ -179,7 +179,7 @@ following, for when the person asks not to wait.
179
179
  `recorded.excluded` is not empty, what was left out and why. Then read `progress` (null with
180
180
  `--no-wait`) and pass on its `hint`:
181
181
  - `kind: "settled"` with `ending` `"live"`: the app is live. `"not-deployed"`: published and
182
- checked, and this organisation does not deploy automatically. `"failed"` with `findings`: it
182
+ checked, and this organization does not deploy automatically. `"failed"` with `findings`: it
183
183
  did not pass its checks, and `findings` says why — fix them as "When the checks find something"
184
184
  below says. `"failed"` without `findings`: it stopped at `failedAt`; the portal says why — do
185
185
  not guess the reason. A fault on our side can be tried again: to find out, run `publisher
@@ -215,13 +215,13 @@ following, for when the person asks not to wait.
215
215
 
216
216
  ### When the app moved
217
217
 
218
- `REPOSITORY_MOVED` means the app moved to another organisation (the person's team adopted it).
218
+ `REPOSITORY_MOVED` means the app moved to another organization (the person's team adopted it).
219
219
  This folder can no longer publish; nothing was lost, and it can still be read. It comes as a
220
220
  `"rejected"` publication, or as `error.code` when the publish was refused before it started; both
221
221
  carry a `hint` and `details.movedTo` (in `publication.rejection.details` or `error.details`).
222
222
  Pass the `hint` on, then:
223
223
 
224
- 1. Tell the person to sign in again and choose the organisation the app moved to:
224
+ 1. Tell the person to sign in again and choose the organization the app moved to:
225
225
  `publisher login`. Never ask them for a token.
226
226
  2. Find the app there: `publisher checkout <new folder> --repo <details.movedTo> --json` when
227
227
  `details.movedTo` is set; otherwise `publisher list --json` and pick the app by its name.
@@ -280,7 +280,7 @@ folder. Never `init` or `sync` an empty new folder in its place: that makes a se
280
280
  In a sandbox (Claude Cowork, Claude Code on the web) a `NETWORK` error, or `CONNECT tunnel failed,
281
281
  response 403`, usually means the sandbox's network does not allow the platform. Tell the person that
282
282
  their Claude settings must allow the platform's domain and its storage (`*.s3.<region>.amazonaws.com`)
283
- under Settings → Capabilities, or that their organisation's owner must, on a Team or Enterprise plan.
283
+ under Settings → Capabilities, or that their organization's owner must, on a Team or Enterprise plan.
284
284
  Do not retry until they say it is done.
285
285
 
286
286
  ## 6. Interrupted earlier?
@@ -23,9 +23,9 @@ published elsewhere was brought in (`"fast-forward"` or `"merge"`); mention it w
23
23
  ## When the app moved
24
24
 
25
25
  A sync that ends with `REPOSITORY_MOVED` — `publication.rejection.code`, or `error.code` when it
26
- was refused before anything was sent — means the app moved to another organisation (the person's
26
+ was refused before anything was sent — means the app moved to another organization (the person's
27
27
  team adopted it). Pass on its `hint`, and do what the `publish-app` skill's "When the app moved"
28
- says: sign in again with `publisher login` and choose that organisation, then
28
+ says: sign in again with `publisher login` and choose that organization, then
29
29
  `publisher checkout <new folder> --repo <details.movedTo>` (or find the app with
30
30
  `publisher list --json` when `details.movedTo` is `null`), and publish from the new folder. Do not
31
31
  sync this folder again.
@@ -33,7 +33,7 @@ sync this folder again.
33
33
  ## When it waits for an answer
34
34
 
35
35
  Sometimes the app's preparation asks one business question before it can go on (for example
36
- whether to use the organisation's data). `follow` then stops with `kind: "waiting"` and
36
+ whether to use the organization's data). `follow` then stops with `kind: "waiting"` and
37
37
  `next.command`. Read the question:
38
38
 
39
39
  ```bash
@@ -98,10 +98,10 @@ var ERROR_CODES = [
98
98
  "UNAUTHORIZED",
99
99
  "FORBIDDEN",
100
100
  "REF_FORBIDDEN",
101
- // The credential names no organisation, so there is nothing to publish a repository FOR. Its own
102
- // code rather than FORBIDDEN: a caller can act on it (sign in again, choosing an organisation),
101
+ // The credential names no organization, so there is nothing to publish a repository FOR. Its own
102
+ // code rather than FORBIDDEN: a caller can act on it (sign in again, choosing an organization),
103
103
  // and a test that could not tell it from "you may not" would prove nothing about the check.
104
- "ORGANISATION_REQUIRED",
104
+ "ORGANIZATION_REQUIRED",
105
105
  // A repository is created only by the platform's application maker (the portal), for a person,
106
106
  // after it has made the application the repository will belong to. Its own code: a terminal that
107
107
  // meets it is an older client calling this route directly, and can say "upgrade" rather than
@@ -116,13 +116,13 @@ var ERROR_CODES = [
116
116
  "REPOSITORY_NOT_FOUND",
117
117
  "REPOSITORY_CONFLICT",
118
118
  "REPOSITORY_ARCHIVED",
119
- // The repository moved to another organisation (an adoption): it refuses every write and still
119
+ // The repository moved to another organization (an adoption): it refuses every write and still
120
120
  // admits reads. `details.movedTo` names the new repository only to a caller with a grant on it,
121
121
  // and is null for everybody else. A client that does not know the code reads it as its 409.
122
122
  "REPOSITORY_MOVED",
123
- // A copy for an adoption names the organisation it moves the application from, and the source
123
+ // A copy for an adoption names the organization it moves the application from, and the source
124
124
  // repository is in another one. Its own code: the portal tells it from a moved repository.
125
- "REPOSITORY_NOT_IN_ORGANISATION",
125
+ "REPOSITORY_NOT_IN_ORGANIZATION",
126
126
  "ACCESS_CONFLICT",
127
127
  // publications (begin / finalize / status)
128
128
  "PUBLICATION_NOT_FOUND",
@@ -152,7 +152,7 @@ var ERROR_CODES = [
152
152
  "INTERNAL",
153
153
  // client-side only
154
154
  "NETWORK",
155
- "CANCELLED",
155
+ "CANCELED",
156
156
  "OUTCOME_UNKNOWN",
157
157
  "LOCAL_STATE",
158
158
  "GIT"
@@ -166,14 +166,14 @@ var HTTP_STATUS_FOR_CODE = {
166
166
  UNAUTHORIZED: 401,
167
167
  FORBIDDEN: 403,
168
168
  REF_FORBIDDEN: 403,
169
- ORGANISATION_REQUIRED: 403,
169
+ ORGANIZATION_REQUIRED: 403,
170
170
  APPLICATION_REQUIRED: 403,
171
171
  ADMIN_REQUIRED: 403,
172
172
  REPOSITORY_NOT_FOUND: 404,
173
173
  REPOSITORY_CONFLICT: 409,
174
174
  REPOSITORY_ARCHIVED: 409,
175
175
  REPOSITORY_MOVED: 409,
176
- REPOSITORY_NOT_IN_ORGANISATION: 409,
176
+ REPOSITORY_NOT_IN_ORGANIZATION: 409,
177
177
  ACCESS_CONFLICT: 412,
178
178
  PUBLICATION_NOT_FOUND: 404,
179
179
  NOTHING_CHANGED: 409,
@@ -196,7 +196,7 @@ var HTTP_STATUS_FOR_CODE = {
196
196
  UNAVAILABLE: 503,
197
197
  INTERNAL: 500,
198
198
  NETWORK: 0,
199
- CANCELLED: 0,
199
+ CANCELED: 0,
200
200
  OUTCOME_UNKNOWN: 0,
201
201
  LOCAL_STATE: 0,
202
202
  GIT: 0
@@ -2689,14 +2689,14 @@ var LimitsSchema = object({
2689
2689
  maxTemporaryBytes: _default(positiveInt(), 3 * 512 * 1024 * 1024),
2690
2690
  /** wall-clock bound for a single validation git command */
2691
2691
  gitTimeoutMs: _default(positiveInt(), 3e5),
2692
- // ---- per-organisation bounds ----
2692
+ // ---- per-organization bounds ----
2693
2693
  /**
2694
- * ACTIVE repositories an organisation may hold when it sets no quota of its own in users
2695
- * (ADR-0014 A1); anyone may sign up and publish, so this bounds one account's organisation.
2694
+ * ACTIVE repositories an organization may hold when it sets no quota of its own in users
2695
+ * (ADR-0014 A1); anyone may sign up and publish, so this bounds one account's organization.
2696
2696
  * Named `maxRepositoriesPerPrincipal` before 0.9.0, when it counted a creator's repositories.
2697
2697
  * Defaulted so an older server reads as the default, not a failure.
2698
2698
  */
2699
- maxRepositoriesPerOrganisation: _default(positiveInt(), 25),
2699
+ maxRepositoriesPerOrganization: _default(positiveInt(), 25),
2700
2700
  // ---- a publication of files (ADR-0030) ----
2701
2701
  /** the UTF-8 bytes of the files one file publication writes; the commit builder is invoked with them, and Lambda takes 6 MB */
2702
2702
  maxFilePublicationBytes: _default(positiveInt(), 4 * 1024 * 1024),
@@ -2721,7 +2721,7 @@ var DEFAULT_LIMITS = {
2721
2721
  maxProcessMemoryBytes: 2 * 1024 * 1024 * 1024,
2722
2722
  maxTemporaryBytes: 3 * 512 * 1024 * 1024,
2723
2723
  gitTimeoutMs: 3e5,
2724
- maxRepositoriesPerOrganisation: 25,
2724
+ maxRepositoriesPerOrganization: 25,
2725
2725
  maxFilePublicationBytes: 4 * 1024 * 1024,
2726
2726
  maxFilePublicationPaths: 1e3,
2727
2727
  maxShownFileBytes: 512 * 1024
@@ -2802,7 +2802,7 @@ var IndexRecord = object({
2802
2802
  */
2803
2803
  archived: _default(nullable(IsoDate), null),
2804
2804
  /**
2805
- * The repository this one was copied into when its application moved to another organisation (an
2805
+ * The repository this one was copied into when its application moved to another organization (an
2806
2806
  * adoption, ADR-0034), or null. Set once, by the same compare-and-swap as `archived`, after the copy
2807
2807
  * holds every object. A moved repository refuses every publication and compaction with
2808
2808
  * `REPOSITORY_MOVED`, and still admits every read. Records written before this field read as null.
@@ -2815,7 +2815,7 @@ var OwnerMarker = object({
2815
2815
  repoId: RepoId,
2816
2816
  createdAt: IsoDate
2817
2817
  });
2818
- var RepositoryOrganisation = object({
2818
+ var RepositoryOrganization = object({
2819
2819
  schemaVersion: SchemaVersion,
2820
2820
  repoId: RepoId,
2821
2821
  org: OrgId
@@ -2829,15 +2829,15 @@ var MetaRecord = object({
2829
2829
  createdBy: PrincipalId,
2830
2830
  creationId: CreationId,
2831
2831
  /**
2832
- * The organisation that published this repository, and what `repoId` is derived from: "that
2833
- * organisation publishes a repository" is the product's sentence.
2832
+ * The organization that published this repository, and what `repoId` is derived from: "that
2833
+ * organization publishes a repository" is the product's sentence.
2834
2834
  *
2835
2835
  * `null` is what a record written BEFORE repositories were org-scoped reads as, and every such
2836
2836
  * record is still readable, cloneable and publishable — `tests/compat/fixtures/schema-v1` is one,
2837
2837
  * and the promise that it stays readable is why this field is not required. What `null` must
2838
2838
  * never do is default: the worker refuses to ANNOUNCE a publication it cannot attribute
2839
2839
  * (`packages/worker/src/publish.ts`), because a consumer that guessed would create an
2840
- * application in an organisation nobody chose. Every repository created since carries one.
2840
+ * application in an organization nobody chose. Every repository created since carries one.
2841
2841
  */
2842
2842
  org: _default(nullable(OrgId), null),
2843
2843
  /**
@@ -3019,7 +3019,7 @@ var RepositoryIdRequest = object({ creationId: CreationId });
3019
3019
  var RepositoryIdResponse = object({ repoId: RepoId });
3020
3020
  var CopyRepositoryRequest = object({
3021
3021
  creationId: CreationId,
3022
- fromOrganisation: OrgId,
3022
+ fromOrganization: OrgId,
3023
3023
  grants: _default(array(Grant).check(_maxLength(200)), [])
3024
3024
  });
3025
3025
  var CopyRepositoryResponse = object({ repoId: RepoId, movedFrom: RepoId });
@@ -3168,7 +3168,7 @@ var BundleBootstrapResponse = object({
3168
3168
  // ../protocol/src/keys.ts
3169
3169
  var PENDING_KEY_RE = new RegExp(`^pending/(${REPO_ID_RE.source.slice(1, -1)})/(${PUBLICATION_ID_RE.source.slice(1, -1)})$`);
3170
3170
  var OWNER_KEY_RE = new RegExp(`^owners/(${PRINCIPAL_ID_RE.source.slice(1, -1)})/(${REPO_ID_RE.source.slice(1, -1)})$`);
3171
- var REPOSITORY_ORGANISATION_KEY_RE = new RegExp(`^repository-organisations/(${REPO_ID_RE.source.slice(1, -1)})\\.json$`);
3171
+ var REPOSITORY_ORGANIZATION_KEY_RE = new RegExp(`^repository-organizations/(${REPO_ID_RE.source.slice(1, -1)})\\.json$`);
3172
3172
 
3173
3173
  // ../protocol/src/index.ts
3174
3174
  var MAX_WAIT_SECONDS = 5;
@@ -3484,8 +3484,8 @@ function feedStdin(child, input, onSourceError) {
3484
3484
  function killedError(reason, detail, args, timeoutMs, maxOut) {
3485
3485
  const what = `git ${args[0]}`;
3486
3486
  switch (reason) {
3487
- case "cancelled":
3488
- return new PublisherError("CANCELLED", `${what} cancelled`);
3487
+ case "canceled":
3488
+ return new PublisherError("CANCELED", `${what} canceled`);
3489
3489
  case "timeout":
3490
3490
  return new PublisherError("GIT", `${what} timed out after ${timeoutMs}ms`, { retryable: true });
3491
3491
  case "output-limit":
@@ -3522,7 +3522,7 @@ async function runGit(args, opts = {}) {
3522
3522
  terminate(child);
3523
3523
  };
3524
3524
  const timer = setTimeout(() => kill("timeout"), timeoutMs);
3525
- const onAbort = () => kill("cancelled");
3525
+ const onAbort = () => kill("canceled");
3526
3526
  if (opts.signal) {
3527
3527
  if (opts.signal.aborted) {
3528
3528
  onAbort();
@@ -4057,7 +4057,7 @@ async function packObjectsToFile(repoDir, extraArgs, stdinLines, opts) {
4057
4057
  throw startFailure("git pack-objects", ended.error, repoDir);
4058
4058
  }
4059
4059
  if (opts.signal?.aborted) {
4060
- throw new PublisherError("CANCELLED", "pack creation cancelled");
4060
+ throw new PublisherError("CANCELED", "pack creation canceled");
4061
4061
  }
4062
4062
  if (timedOut) {
4063
4063
  throw new PublisherError("GIT", `pack-objects timed out after ${timeoutMs}ms`, { retryable: true });
@@ -5212,7 +5212,7 @@ function isRecord(value) {
5212
5212
  }
5213
5213
  function mergedSay(body) {
5214
5214
  const error2 = isRecord(body) ? body["error"] : void 0;
5215
- if (!isRecord(error2) || error2["code"] !== "organisation-merged") {
5215
+ if (!isRecord(error2) || error2["code"] !== "organization-merged") {
5216
5216
  return null;
5217
5217
  }
5218
5218
  const details = error2["details"];
@@ -5333,7 +5333,7 @@ var Transport = class {
5333
5333
  const token = await this.opts.token();
5334
5334
  const controller = new AbortController();
5335
5335
  const timer = setTimeout(() => controller.abort(new PublisherError("NETWORK", "request timed out", { retryable: true })), this.opts.timeoutMs ?? 6e4);
5336
- const onAbort = () => controller.abort(new PublisherError("CANCELLED", "cancelled"));
5336
+ const onAbort = () => controller.abort(new PublisherError("CANCELED", "canceled"));
5337
5337
  ro.signal?.addEventListener("abort", onAbort, { once: true });
5338
5338
  if (ro.signal?.aborted) {
5339
5339
  onAbort();
@@ -5403,7 +5403,7 @@ function sleep(ms, signal) {
5403
5403
  "abort",
5404
5404
  () => {
5405
5405
  clearTimeout(t);
5406
- reject(new PublisherError("CANCELLED", "cancelled"));
5406
+ reject(new PublisherError("CANCELED", "canceled"));
5407
5407
  },
5408
5408
  { once: true }
5409
5409
  );
@@ -5582,7 +5582,7 @@ async function confirmPortal(portal, endpoint, fetchImpl = fetch) {
5582
5582
 
5583
5583
  // ../client/src/preparation.ts
5584
5584
  var PREPARATION = "preparation";
5585
- var STATUSES = ["queued", "running", "needs-choice", "ready", "blocked", "cancelled"];
5585
+ var STATUSES = ["queued", "running", "needs-choice", "ready", "blocked", "canceled"];
5586
5586
  var MAX_FINDINGS = 10;
5587
5587
  var MAX_TEXT = 500;
5588
5588
  function readPreparation(input, opts) {
@@ -5780,7 +5780,7 @@ async function onboardFolder(opts) {
5780
5780
  const walk = async (d) => {
5781
5781
  for (const e of await (0, import_promises6.readdir)(d, { withFileTypes: true })) {
5782
5782
  if (opts.signal?.aborted) {
5783
- throw new PublisherError("CANCELLED", "cancelled");
5783
+ throw new PublisherError("CANCELED", "canceled");
5784
5784
  }
5785
5785
  const full = (0, import_node_path5.join)(d, e.name);
5786
5786
  const rel = (0, import_node_path5.relative)(dir, full).split(import_node_path5.sep).join("/");
@@ -5971,7 +5971,7 @@ async function uploadPack(fetchImpl, upload, packPath, size, opts) {
5971
5971
  });
5972
5972
  } catch (e) {
5973
5973
  if (opts.signal?.aborted) {
5974
- throw new PublisherError("CANCELLED", "upload cancelled");
5974
+ throw new PublisherError("CANCELED", "upload canceled");
5975
5975
  }
5976
5976
  throw new PublisherError("NETWORK", `upload failed: ${e.message}`, { retryable: true, cause: e });
5977
5977
  }
@@ -7218,7 +7218,7 @@ function progressHint(r, portal, answerable = false) {
7218
7218
  case "live":
7219
7219
  return "Your app is live.";
7220
7220
  case "not-deployed":
7221
- return "Published and checked; this organisation does not deploy automatically.";
7221
+ return "Published and checked; this organization does not deploy automatically.";
7222
7222
  case "failed":
7223
7223
  return inPortal(portal, `It stopped at "${r.failedAt ?? "a step"}".${r.reason === null ? "" : ` ${r.reason}`}`, r.reason === null ? "See why" : "See it");
7224
7224
  case "stopped":
@@ -7798,7 +7798,7 @@ var Moved = class {
7798
7798
  }
7799
7799
  const movedTo = details?.["movedTo"];
7800
7800
  const next = typeof movedTo === "string" ? `then run publisher checkout <new folder> --repo ${movedTo}` : "then run publisher list to find it there";
7801
- return `This app moved to another organisation. Sign in again with publisher login, choose that organisation, ${next}.`;
7801
+ return `This app moved to another organization. Sign in again with publisher login, choose that organization, ${next}.`;
7802
7802
  }
7803
7803
  };
7804
7804
 
@@ -8002,7 +8002,7 @@ function shown(portal, r) {
8002
8002
  return { kind: "view", portal, preparation, questions, hint: hintFor(r.view) };
8003
8003
  }
8004
8004
  case "no-application":
8005
- throw new PublisherError("NOT_FOUND", "this repository has no application in your organisation yet; publish it first");
8005
+ throw new PublisherError("NOT_FOUND", "this repository has no application in your organization yet; publish it first");
8006
8006
  case "moved-on":
8007
8007
  throw new PublisherError("UNAVAILABLE", "the preparation moved on before the answer arrived; run publisher question again", { retryable: true });
8008
8008
  case "unauthorized":
@@ -8010,7 +8010,7 @@ function shown(portal, r) {
8010
8010
  case "forbidden":
8011
8011
  throw new PublisherError(
8012
8012
  "FORBIDDEN",
8013
- r.say ?? "the portal will not let this sign-in answer for this organisation (an owner or admin can, or the app's creator for the first preparation after an adoption)"
8013
+ r.say ?? "the portal will not let this sign-in answer for this organization (an owner or admin can, or the app's creator for the first preparation after an adoption)"
8014
8014
  );
8015
8015
  case "unavailable":
8016
8016
  throw new PublisherError("UNAVAILABLE", `the portal could not be asked: ${r.detail}`, { retryable: true });
@@ -8094,7 +8094,7 @@ async function creatorTool(p, endpoint, tool, args, opts = {}) {
8094
8094
  case "unauthorized":
8095
8095
  throw new PublisherError("UNAUTHORIZED", "the portal did not accept this sign-in; run publisher login");
8096
8096
  case "forbidden":
8097
- throw new PublisherError("FORBIDDEN", result.say ?? "the portal will not let this sign-in do that in this organisation");
8097
+ throw new PublisherError("FORBIDDEN", result.say ?? "the portal will not let this sign-in do that in this organization");
8098
8098
  case "unavailable":
8099
8099
  throw new PublisherError("UNAVAILABLE", `the portal could not be asked: ${result.detail}`, { retryable: true });
8100
8100
  case "malformed":
@@ -8182,7 +8182,7 @@ var share = {
8182
8182
  async run(inv) {
8183
8183
  const access2 = inv.cmd[1];
8184
8184
  if (access2 === void 0) {
8185
- throw new PublisherError("INVALID_REQUEST", "share takes organisation, invited or anyone-with-link");
8185
+ throw new PublisherError("INVALID_REQUEST", "share takes organization, invited or anyone-with-link");
8186
8186
  }
8187
8187
  const { dir, app } = await folderApp(inv);
8188
8188
  return run(inv, dir, "share_app", { app, access: access2, add: listFlag(inv, "add"), remove: listFlag(inv, "remove") });
@@ -8358,13 +8358,13 @@ var EXIT_CODE = {
8358
8358
  NOT_FOUND: 1,
8359
8359
  METHOD_NOT_ALLOWED: 1,
8360
8360
  REF_FORBIDDEN: 1,
8361
- ORGANISATION_REQUIRED: 1,
8361
+ ORGANIZATION_REQUIRED: 1,
8362
8362
  APPLICATION_REQUIRED: 1,
8363
8363
  REPOSITORY_NOT_FOUND: 1,
8364
8364
  REPOSITORY_CONFLICT: 1,
8365
8365
  REPOSITORY_ARCHIVED: 1,
8366
8366
  REPOSITORY_MOVED: 1,
8367
- REPOSITORY_NOT_IN_ORGANISATION: 1,
8367
+ REPOSITORY_NOT_IN_ORGANIZATION: 1,
8368
8368
  ACCESS_CONFLICT: 1,
8369
8369
  PUBLICATION_NOT_FOUND: 1,
8370
8370
  NOTHING_CHANGED: 1,
@@ -8385,7 +8385,7 @@ var EXIT_CODE = {
8385
8385
  INVALID_TARGET: 1,
8386
8386
  EXPIRED: 1,
8387
8387
  INTERNAL: 1,
8388
- CANCELLED: 1,
8388
+ CANCELED: 1,
8389
8389
  LOCAL_STATE: 1,
8390
8390
  GIT: 1
8391
8391
  };
@@ -8566,14 +8566,14 @@ Usage:
8566
8566
  (the data and who can open the app stay as they are)
8567
8567
  publisher suggestions what colleagues suggested for this folder's app, still open
8568
8568
  publisher suggestion done|decline <id> [--run <id>] close one; sync --answers <id> closes it with that publication
8569
- publisher share organisation|invited|anyone-with-link [--add <emails>] [--remove <emails>]
8569
+ publisher share organization|invited|anyone-with-link [--add <emails>] [--remove <emails>]
8570
8570
  who can open this folder's app; new invitees get the link by mail
8571
8571
  publisher columns [<id>] the column names of connected data, for the code that reads it;
8572
8572
  its first rows only to an owner or admin who allowed that
8573
8573
  publisher data add <sheet link> [--app <app>] [--name <name>]
8574
8574
  connect a Google sheet anyone with the link can view, and
8575
8575
  turn it on for that app (an app you made, or any as owner or admin)
8576
- publisher data remove <id> --app <app> that app stops using that data; the organisation keeps it
8576
+ publisher data remove <id> --app <app> that app stops using that data; the organization keeps it
8577
8577
  publisher merge-check [dir] --ours <ref> --theirs <ref> [--apply]
8578
8578
  publisher info [dir] repository state as seen by the server
8579
8579
  publisher doctor environment check (node, git, credentials, association)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minnovate/shadow-publisher",
3
- "version": "0.16.0",
3
+ "version": "0.17.1",
4
4
  "description": "publisher: publish an app's Git history to the serverless Git backend",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",