extension-create 4.1.35 → 4.1.36

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.
@@ -113,6 +113,7 @@ export declare const CODES: {
113
113
  readonly E_LOCALES_LAYOUT: 'E_LOCALES_LAYOUT';
114
114
  readonly E_WAR_INVALID: 'E_WAR_INVALID';
115
115
  readonly E_DEV_SESSION_DIST_SHARED: 'E_DEV_SESSION_DIST_SHARED';
116
+ readonly E_PROD_LOOPBACK_ORIGIN: 'E_PROD_LOOPBACK_ORIGIN';
116
117
  readonly E_BACKGROUND_REQUIRED: 'E_BACKGROUND_REQUIRED';
117
118
  readonly E_CONTENT_SCRIPT_SYNTAX: 'E_CONTENT_SCRIPT_SYNTAX';
118
119
  readonly E_NO_ENTRYPOINTS: 'E_NO_ENTRYPOINTS';
package/dist/module.cjs CHANGED
@@ -789,7 +789,7 @@ const NETWORK_TIMEOUT_MS = (()=>{
789
789
  return Number.isFinite(raw) && raw > 0 ? raw : 60000;
790
790
  })();
791
791
  const CODELOAD_BASE = 'https://codeload.github.com/extension-js/examples/zip';
792
- const DEFAULT_TEMPLATES_REF = '4753cbd121dac8784f4cb5c515b773f87ebff3b4';
792
+ const DEFAULT_TEMPLATES_REF = '6443985200d0a27526662fc7be5d13fe66a0fa2b';
793
793
  const BUNDLED_TEMPLATES = [
794
794
  "javascript"
795
795
  ];
@@ -1,4 +1,4 @@
1
- export declare const DEFAULT_TEMPLATES_REF = "4753cbd121dac8784f4cb5c515b773f87ebff3b4";
1
+ export declare const DEFAULT_TEMPLATES_REF = "6443985200d0a27526662fc7be5d13fe66a0fa2b";
2
2
  export declare const BUNDLED_TEMPLATES: readonly string[];
3
3
  export declare const DEFAULT_TEMPLATE_NAME = "typescript";
4
4
  export declare const OFFLINE_FALLBACK_TEMPLATE = "javascript";
@@ -1,5 +1,5 @@
1
1
  {
2
- "createdWith": "extension-create@4.1.34",
2
+ "createdWith": "extension-create@4.1.35",
3
3
  "template": "typescript",
4
- "source": "http://127.0.0.1:41329/examples.zip"
4
+ "source": "http://127.0.0.1:43375/examples.zip"
5
5
  }
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "dependencies": {},
16
16
  "devDependencies": {
17
- "extension": "^4.1.34"
17
+ "extension": "^4.1.35"
18
18
  },
19
19
  "packageManager": "pnpm@10.28.0",
20
20
  "pnpm": {
package/package.json CHANGED
@@ -25,7 +25,7 @@
25
25
  "templates"
26
26
  ],
27
27
  "name": "extension-create",
28
- "version": "4.1.35",
28
+ "version": "4.1.36",
29
29
  "description": "The standalone extension creation engine for Extension.js",
30
30
  "author": {
31
31
  "name": "Cezar Augusto",
@@ -1,41 +1,82 @@
1
1
  # Store metadata
2
2
 
3
- Starter file generated from this template's manifest. Every store asks
4
- for this material at submission time; keep it current as the code
5
- changes instead of rewriting it at the end. Replace the placeholder
6
- lines marked TODO before you submit. The Privacy and data use section
7
- is listing copy; set the Privacy policy URL row under Listing to your
8
- own address once you host a policy.
9
-
10
- Last updated: 2026-10-19
3
+ Starter file generated from this template's manifest. STORE.md is what
4
+ `extension_submit sync-listing` reads to fill the Chrome Web Store, Firefox
5
+ Add-ons, Edge Add-ons and Mac App Store listings, and what the store
6
+ preflights check. Every store asks for this material at submission time, so
7
+ keep it current as the code changes instead of rewriting it at the end. A
8
+ line marked TODO is a fact only the owner can supply: the file shows what is
9
+ missing and never invents listing copy, and a value that still starts with
10
+ TODO is skipped, not sent. Items a store takes only on its own dashboard
11
+ (Chrome promo tiles and data-use answers, Edge logo, tiles and properties,
12
+ Apple's App Privacy and age rating) stay by hand and are listed under each
13
+ store below. The HTML comments carry each field's format and limits, and the
14
+ readers ignore them.
15
+
16
+ Last updated: 2026-10-24
11
17
 
12
18
  ## Listing
13
19
 
14
20
  - Name: JavaScript Sidebar Example
21
+ <!-- The store title, 100 characters at most on every store. -->
15
22
  - Summary: Adds a sidebar panel to the browser.
16
- - Description: TODO write two or three short paragraphs of user
17
- benefits. Describe what the user sees and gains, not how the code
18
- works.
19
- - Category: TODO pick one per store (for example Productivity).
20
- - Screenshots: TODO at least one 1280x800 screenshot per store.
23
+ <!-- Chrome's summary, 132 characters at most. It doubles as the Safari
24
+ subtitle only when it fits 30. -->
25
+ - Subtitle: TODO a 30 character App Store subtitle
26
+ <!-- App Store subtitle, 30 characters at most. Without it the Safari push
27
+ leaves the field empty. -->
28
+ - Description:
29
+
30
+ TODO two or three short paragraphs of user benefits. Describe what the
31
+ user sees and gains, not how the code works. Keep every paragraph indented
32
+ like this one so the readers take them as one field.
33
+
34
+ - Category: TODO one per store, for example Productivity (Chrome Web Store,
35
+ Firefox Add-ons, Edge Add-ons), Utilities (App Store)
36
+ <!-- One category per store, the store names in parentheses stay out of
37
+ the value. One of them must be an App Store category (Productivity or
38
+ Utilities): Apple refuses an upload without a primary category. -->
39
+ - Language: en
40
+ - License: MIT
41
+ <!-- A bare SPDX identifier with no trailing period: "MIT." once reached
42
+ AMO as the license. -->
43
+ - Support email: TODO the address users and reviewers write to
44
+ - Homepage: TODO the project or company site URL
45
+ - Search terms: TODO up to seven terms, comma separated
46
+ <!-- Comma list. Edge takes at most 7 terms and 21 words in all, and
47
+ Safari keywords are 100 characters in all. -->
48
+ - Screenshots:
49
+ 1. TODO screenshots/01.png
50
+ <!-- One PNG path per numbered line, relative to the project. Chrome takes
51
+ 1280x800 or 640x400, Edge 1280x800 or 640x480, the App Store exactly
52
+ 1280x800, 1440x900, 2560x1600 or 2880x1800 in RGB without alpha and
53
+ showing the extension in real Safari (a 2880x1800 capture of a Safari
54
+ window is the simplest way). Chrome and Edge also show 440x280 and
55
+ 1400x560 promo tiles. -->
21
56
 
22
57
  ## Privacy and data use
23
- - Collected: nothing. The extension sends no user data to any server, has
24
- no account or sign-in, and runs no analytics.
25
- - sidePanel (Chromium only): opens the extension's interface in the
26
- browser side panel; it reads no page data by itself.
27
- - tabs: reads the title and address of the open tab so the interface can
28
- say which page it refers to.
29
- - Host access <all_urls>: lets the extension's content script run on the
30
- pages the user visits so its interface can appear there.
31
- - Not collected: browsing history, page content, activity on websites,
32
- sign-in or account data, messages the user writes, location, search
33
- terms, bookmarks, payment details, health information, personal files,
34
- and usage analytics. Nothing leaves the browser.
35
- - Firefox data collection declaration: the manifest declares
36
- data_collection_permissions required: none, which matches the lines
37
- above. If you add data collection, update the declaration, this section,
38
- and your privacy policy in the same change.
58
+
59
+ - Privacy policy URL: TODO (Apple requires one on every app, Chrome and Edge
60
+ once any data is handled)
61
+ <!-- The only place this URL lives. The readers take the first http or
62
+ https address on this line, so leave no sample address here. -->
63
+ - Data collected: none
64
+ <!-- Every kind of data the extension collects, stores or sends, or none.
65
+ Chrome, Edge and Apple each ask it again on their dashboards. -->
66
+ - Firefox data collection: none
67
+ <!-- Mirrors browser_specific_settings.gecko.data_collection_permissions
68
+ in the manifest. AMO reads the manifest, so the two must agree. -->
69
+
70
+ Per store answer sheets, filled from the two lines above:
71
+
72
+ - Chrome Web Store: the data-usage checkboxes and the three certifications
73
+ on the Privacy practices tab, answered by hand on the developer dashboard.
74
+ - Firefox Add-ons: the manifest's data_collection_permissions is the
75
+ declaration, and AMO reads it from the package.
76
+ - Edge Add-ons: the nine data categories and the three certifications on the
77
+ Privacy page, typed once on Partner Center.
78
+ - App Store: App Privacy, "Data Not Collected" when the line above says
79
+ none, answered by hand in App Store Connect.
39
80
 
40
81
  ## Chrome Web Store
41
82
 
@@ -45,31 +86,116 @@ Adds a sidebar panel to the browser.
45
86
 
46
87
  ### Permissions justification
47
88
 
48
- - sidePanel (Chromium only): Renders the extension's main interface in the browser side panel.
49
- - Content script match <all_urls>: The content script runs on the pages the user visits to render the extension's on-page interface. Narrow this to the specific sites your extension needs before submitting.
89
+ <!-- One bullet per permission, host permission and content script match
90
+ the manifest requests, as the Chrome dashboard and the Edge Privacy page
91
+ ask them. A reason that still starts with TODO is not sent. "Needed for
92
+ the extension to work" fails review on every store. -->
93
+
94
+ - sidePanel: Renders the extension's main interface in the browser side
95
+ panel. Requested on Chromium only.
96
+ - tabs: TODO reason
97
+ - Content script match <all_urls>: The content script runs on the pages the
98
+ user visits to render the extension's on-page interface. Narrow this to
99
+ the specific sites your extension needs before submitting.
100
+
101
+ Remote code: none. Every script ships inside the package, which is the
102
+ answer to the remote code question on Chrome and Edge.
103
+
104
+ ### Test instructions
105
+
106
+ TODO the steps a reviewer follows to see the extension work, with test
107
+ credentials when sign-in is required. The Firefox reviewer notes and the
108
+ Edge certification notes below take the same steps.
50
109
 
51
110
  ## Firefox Add-ons
52
111
 
53
112
  ### Reviewer notes
54
113
 
55
- TODO steps a reviewer needs to exercise the extension, plus test
56
- credentials if sign-in is required. The build is bundled, so AMO
57
- requires a source zip; include build-from-source instructions:
58
- npm install, then npm run build. The dist output matches the upload.
114
+ TODO the steps a reviewer follows to exercise the extension, with test
115
+ credentials when sign-in is required. Keep the build paragraph below: AMO
116
+ wants a reproducible build for a bundled package.
117
+
118
+ Build from source with Node 22.12.0 and npm 10.9.0 (replace both with the
119
+ output of node --version and npm --version on the machine that built the
120
+ upload): run npm install, then npx extension build --browser firefox. The
121
+ upload is dist/firefox, byte for byte. With the Firefox source archive
122
+ setting on in extension.dev, the platform attaches the repository at the
123
+ built commit, so no separate source zip is uploaded.
59
124
 
60
125
  ### Release notes
61
126
 
62
- TODO user-facing notes for the version you are submitting.
127
+ TODO what changed for users in this version, in their words. Write the notes
128
+ here rather than pointing at another section: a pointer reaches AMO
129
+ verbatim.
63
130
 
64
131
  ## Edge Add-ons
65
132
 
133
+ The package may hold no compressed file: Partner Center refuses any .gz,
134
+ .zip or other archive inside it, so vendor such assets uncompressed. Logo,
135
+ promo tiles, screenshots, properties and privacy answers are typed once on
136
+ Partner Center, because the Publish API takes only packages.
137
+
66
138
  ### Certification notes
67
139
 
68
- TODO anything the certification team needs to test the extension,
69
- including test steps and credentials. Mirrors the Firefox reviewer
70
- notes in most cases.
140
+ TODO the steps the certification team follows to test the extension, with
141
+ test credentials when sign-in is required. The Firefox reviewer notes fit
142
+ here in most cases: paste them rather than pointing at them.
143
+
144
+ ### Dashboard checklist
145
+
146
+ What the Publish API cannot set, typed once on Partner Center:
147
+
148
+ - Store logo, 300x300 PNG.
149
+ - Promo tiles, 440x280 and 1400x560, shown on the store page.
150
+ - Properties page: the answers on personal information and mature content.
151
+ - Privacy page: the nine data categories and three certifications, the same
152
+ answers as the Privacy and data use section.
153
+ - Optional YouTube URL.
154
+
155
+ ## Safari (Mac App Store)
156
+
157
+ - Bundle identifier: TODO com.example.my-extension
158
+ <!-- Reverse DNS, permanent once the first build reaches App Store
159
+ Connect. -->
160
+ - Review contact name: TODO
161
+ - Review contact email: TODO
162
+ - Review contact phone: TODO
163
+
164
+ ### Reviewer notes
165
+
166
+ TODO how to turn the extension on: open Safari, choose Safari, Settings,
167
+ Extensions, tick the extension, then allow it on the sites it needs. Add
168
+ test credentials when sign-in is required.
169
+
170
+ ### Release notes
171
+
172
+ TODO what's new in this version, in the user's words. Required from the
173
+ second version on.
174
+
175
+ ### Age rating
176
+
177
+ Apple's questionnaire is answered in full on every push. None applies unless
178
+ a line below says otherwise.
179
+
180
+ - Violence, mature or suggestive themes, profanity, horror, medical or drug
181
+ references, gambling, contests: none
182
+ - Parental controls, age assurance: none
183
+ - Unrestricted web access: none
184
+ - User generated content, social media, messaging: none
185
+ - Advertising: none
186
+ - Loot boxes or similar in-app purchases: none
187
+
188
+ App Privacy, and today the age rating and the availability in all 175
189
+ territories as well, are confirmed by hand in App Store Connect. Run the
190
+ converted app locally with `npx extension build --browser safari --bundle-id
191
+ <id> --development-team <TEAM>`: an ad-hoc build without a team stops
192
+ answering after Safari relaunches.
71
193
 
72
194
  ## Version history
73
195
 
74
- - 1.0.0 (unreleased): initial version from the javascript template.
75
- Not yet submitted to any store.
196
+ One line per version and store attempt with its outcome, newest first, for
197
+ example "0.1.0: Chrome draft uploaded 2026-10-21, AMO upload refused 401 bad
198
+ key pair, Edge draft pending".
199
+
200
+ - 1.0.0 (unreleased): initial version from the javascript template. Not yet
201
+ submitted to any store.